Я пытаюсь выполнить код ниже, чтобы выполнить sudo
команды, но я не знаю, как выполнять команды после sudo
входаЗапуск команды после SUDO входа
String[] commands = {"sudo su - myname;","id"};
JSch jsch = new JSch();
String username = "myuser";
com.jcraft.jsch.Session session =
jsch.getSession(username,"hostname", 22);
session.setPassword("[email protected]");
session.connect();
Channel channel=session.openChannel("exec");
for(int a=0;a<=commands.length;a++){
((ChannelExec)channel).setCommand("sudo su - myname;");
((ChannelExec)channel).setErrStream(System.err);
((ChannelExec) channel).setPty(true);
channel.connect();
System.out.println("id *******");
OutputStream out=channel.getOutputStream();
out.write(("[email protected]\n").getBytes());
out.flush();
InputStream in=channel.getInputStream();
byte[] tmp=new byte[1024];
while(true){
while(in.available()>0){
int i=in.read(tmp, 0, 1024);
if(i<0)break;
System.out.print(new String(tmp, 0, i));
}
if(channel.isClosed()){
System.out.println("exit-status: "+channel.getExitStatus());
break;
}
}
}
Я не вижу попытки выполнить комментарий в вашем коде. Так в чем проблема? –
Привет В этом проблема. Я не уверен, как передавать команды после входа в sudo. – Srinivas