运行 wildfly 中特定的 sudo 命令

Run specific sudo commands in wildfly

我想 运行 在我的 wildfly servlet 中使用 sudo 执行特定命令。

我知道我可以 运行 使用 tomcat 用户的特定命令:

tomcat ALL=(root) NOPASSWD: /home/jur/virt.sh, /home/jur/createdisk.sh

我尝试与用户 'widlfly' 联系,但这不起作用。 现在我不知道wildfly用户的名字是什么。我的 servlet 无法 运行 使用 sudo 命令。

在我的 servlet 中我有这个:

ProcessBuilder pb = new ProcessBuilder("sudo /home/jur/createdisk.sh " + parameter);

wildfly报错:"Java.io.IOExeption: Cannot run program "sudo /home/jur/createdisk.sh parameter": error=2, No such file or directory"

当我在终端中对用户 'jur' 执行相同的操作时,它工作得很好。

ProcessBuilder 的构造函数class 有多个参数,第一个需要是程序名,后面是程序的参数。

例如,调用 ProcessBuilder pb = new ProcessBuilder("ls -l") 会出现与您提到的相同的错误,但调用 ProcessBuilder pb = new ProcessBuilder("ls", "-l") 会成功。

你的情况下正确的语法应该是 ProcessBuilder pb = new ProcessBuilder("sudo", "/home/jur/createdisk.sh", parameter);