2016-06-13 8 views
-1

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コマンドでのみ役に立ちますので、私の場合は役に立ちませんでした。

+0

別にあなたは[]

String[] cmd = {"/bin/bash","-c","sudo", "fwt***app"}; 

CMDに文字列として各引数を提供する必要があり、複数のコマンドを持っている場合、あなたは、各コマンドを実行する必要があると思います上記のコードでは、sudoとsuコマンドを一緒に使う必要があるので、私のために働いた – pmbc

+0

それはどのように動作しないのですか? – tripleee

+0

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

答えて

0

rootや他のユーザーに切り替えることはできないと思います。

しかし、できることはsudoでプロセスを実行することです。私はそれがなかった私は、上記の溶液をチェックした

+0

あなたは私をもっと詳しく説明しています。それは助けになるでしょう – pmbc

+0

あなたはどのように認証を提供しますか? – ifly6

関連する問題