【问题标题】:Running java process command using Tomcat-7使用 Tomcat-7 运行 java 进程命令
【发布时间】:2017-04-26 14:25:19
【问题描述】:

我正在使用 Java-7 和进程构建器来使用 Tomcat 7 运行 shell 脚本。

processBuilder =    new ProcessBuilder("/bin/bash", "/opt/script.sh");
processBuilder.start();

由于上面提到的代码是通过Tomcat7服务器托管的JSP页面调用的,所以命令运行但进程无法继续,因为它是由tomcat7用户(tomcat的默认用户)启动的我如何以root身份运行这个命令,假设我知道root密码?

【问题讨论】:

  • 我建议永远不要从 Jsp 页面运行进程。 ;)

标签: java tomcat processbuilder


【解决方案1】:

使用sudo运行命令:

实际上,sudo 允许用户以另一个用户身份运行程序(大多数 通常是 root 用户)。

ProcessBuilder b = new ProcessBuilder("/bin/sh", "-c", "echo <password> | sudo -S /opt/script.sh");
b.start();

【讨论】:

  • 从上面的代码中,提到了用户ID“root”。想知道是什么让流程构建器使用用户名 root 来获取给定的密码?
  • 正如我所说,您使用sudo 的事实使进程以超级用户(root)身份执行。
猜你喜欢
  • 1970-01-01
  • 2021-11-06
  • 2018-05-27
  • 1970-01-01
  • 1970-01-01
  • 2020-07-25
  • 2021-12-07
  • 1970-01-01
  • 2016-09-01
相关资源
最近更新 更多