String command = "sudo service sshd start";
System.out.println(command);
Process pro = Runtime.getRuntime().exec(command);
BufferedReader br = new BufferedReader(new InputStreamReader(pro .getInputStream())); String msg = null;
while ((msg = br.readLine()) != null) {
System.out.println(msg);
}
pro.destroy();
System.out.println("success");
已经修改了sudoers文件,在程序中执行其他命令基本都可以了,在终端里也可以执行带有sudo的命令了,只是在java程序中不能成功执行,也得不到返回结果
是不是sudo需要密码的关系?
可以尝试设置sudo不需要密码,不过不推荐。
或者尝试下面的代码,mypassword是sudo密码,不过感觉也不是很好。。
String command = "echo mypassword | sudo -S service sshd start";密码加密以后保存到文件中可能好些。。
您好,这个问题我已经搞定了,在sudoers文件中把Default requiretty一句注释掉就可以了。再次感谢您的回答。
恩恩,好的,感谢您的回答。不过我感觉还是需要提高权限的时候再提高权限执行命令比较好。这样应该会感觉更安全一点吧