パスワードなしで次のように「foo」にSudoできるLinuxサーバーにアクセスできます。
Sudo su - foo
'foo'ユーザーになると、次のようなスクリプトを実行できます。
/dir/foo_user_script.sh
'foo_user_script'は、fooユーザーのみが実行可能であり、私のユーザーは実行できません。したがって、最初に「foo」ユーザーに変更してからスクリプトを実行することで、スクリプトを実行できます。
ただし、Java SSHクライアント ganymed を使用していくつかのプロセスを自動化しようとしています。Ganymedのよくある質問では、複数のコマンドを実行するには、次のような構造を使用する必要があります。
Session.execCommand("echo Hello && echo again")
このようなことを試しましたが、2番目のコマンド(foo_user_script)が実行されませんでした。
Session.execCommand("Sudo su - foo && /dir/foo_user_script.sh")
Suが新しいシェルを起動するため、これは機能しないと思います。
/dir/foo_user_script.shスクリプトを1つのコマンドで実行する方法はありますか?
注:
"Sudo -l"はこれを示しています:
(root) NOPASSWD: /bin/su - foo
助けてくれてありがとう!
Sudo -u foo /dir/foo_user_script.sh