Javaで次のunixコマンドsudo su - fwt****app
を実行する必要があります。javaで特権を持つsudo suコマンドを実行する
は私のコードです:
Channel channel=session.openChannel("exec");
String[] cmd = {"/bin/bash","-c","echo password| sudo -S -p su - fwt***app; ls"};
((ChannelExec)channel).setCommand(cmd.toString());
InputStream in=channel.getInputStream();
OutputStream out=channel.getOutputStream();
((ChannelExec)channel).setErrStream(System.err);
channel.connect();
out.write(("Password"+"\n").getBytes());
out.flush();
が((ChannelExec)channel).setCommand(sudo -S -p su - fwt***app)
である、同様に他の方法を試してみましたが、それは働いていませんでした。
私はコマンド suコマンドを使用して、他のユーザーに切り替える試してみました - fwtveguiapp パスワード: をしかしとしての応答を得た - SU:それは両方のsudoを使用して実行する必要があるとのsuコマンド申し訳ありません 。 sudoとsuの両方のコマンドが必要です。sudoコマンドで構文エラーが発生します。他の参考文献はsudoコマンドでのみ役に立ちますので、私の場合は役に立ちませんでした。
別にあなたは[]
CMDに文字列として各引数を提供する必要があり、複数のコマンドを持っている場合、あなたは、各コマンドを実行する必要があると思います上記のコードでは、sudoとsuコマンドを一緒に使う必要があるので、私のために働いた – pmbc
それはどのように動作しないのですか? – tripleee
javaで次のコマンドを実行すると、以下のエラーが表示されます。sudo -S -p su - fwtveguiapp; エラー:sudo: ' - 'には引数が必要 用法:sudo -K | -L | -V | -h | -k | -l | -v 用法:sudo [-HPSb] [-pプロンプト] [-u username | #uid] [-g group | #gid] {-e file [...] | -i | -s |} –
pmbc