【问题标题】:How to set specific user to run processBuilder?如何设置特定用户来运行 processBuilder?
【发布时间】:2021-03-06 04:07:36
【问题描述】:

如何设置特定用户运行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();

当我尝试这不起作用

【问题讨论】:

    标签: java linux processbuilder


    【解决方案1】:

    始终指定路径,因此请使用/bin/su。但是,更一般地说,su 不能使用,除非您有一个完整的交互式终端,因为它会要求输入密码而您无法提供密码,因为这充满了安全问题,因此 su 通常不会允许它。

    建议的策略是改用sudo,并将您要运行的特定脚本标记为root拥有,并在您的sudoers文件中特别标记为“运行java进程的用户”可以在没有密码的情况下 sudo 这个特定的 shell 脚本,但没有别的。或者,在这种情况下,不是 root,而是 myUser

    【讨论】:

      猜你喜欢
      • 2011-12-09
      • 2020-07-14
      • 2012-01-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-26
      • 1970-01-01
      相关资源
      最近更新 更多