要求是在java中运行以下unix命令sudo su - fwt****app
。
以下是我的代码:
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 密码: 但得到回应 - 苏:抱歉 它需要使用sudo和su命令运行。 由于需要sudo和su命令,我在sudo命令中收到语法错误。其他引用仅对sudo命令有帮助,因此它们对我的情况没有帮助。
答案 0 :(得分:0)
我认为无法切换到root用户或其他用户。
但你可以做的是用sudo运行一个进程。我认为您需要在cmd []
中将每个参数提供为StringString[] cmd = {"/bin/bash","-c","sudo", "fwt***app"};
如果您有多个命令,则需要单独执行每个命令