如何设置特定用户运行processBuilder?
ProcessBuilder processBuilder = new ProcessBuilder();
String[] cmdStr = {"su", "-s", "/bin/bash", "myUser", "-c", "/home/myUser/sch.sh", "argumen"};
processBuilder.command(cmdStr);
Process process = processBuilder.start();
当我尝试这不起作用
最佳答案
总是指定路径,所以使用 /bin/su
。但是,更一般地说,除非您有一个完整的交互式终端,否则不能使用 su
,因为它会要求输入密码而您无法提供,因为这充满了安全问题,因此 su只是通常不允许这样做。
做这样的事情的建议策略是使用 sudo
代替,并将您要运行的特定脚本标记为 root 拥有,并特别在您的 sudoers 文件中标记为“用户”运行 java 进程的 sudo 可以在没有密码的情况下运行这个特定的 shell 脚本,但没有别的。或者,在这种情况下,不是 root,而是 myUser
。
关于java - 如何设置特定用户运行processBuilder?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66502257/