以另一个用户身份在PHP脚本中执行.jar文件:权限问题

时间:2014-10-15 16:31:05

标签: php linux

我需要编写一个执行java程序的php脚本。 .jar文件调用另一个.jar文件并在命令行上执行一些命令。

我在Ubuntu 14.04上使用XAMPP。所有必需的文件都在htdocs中。这个命令没有缺陷:

myusername@null:/opt/lampp/htdocs# java -jar program.jar arg1 arg2 arg3

首先我尝试用php执行上面的命令:

echo shell_exec(java -jar program.jar arg1 arg2 arg3)

不幸的是我遇到了一些错误,因为无法创建文件夹,并且program.jar无法执行后台命令。 htdocs文件夹具有drwxrwxrwx权限。 由于php由用户 deamon 执行,我建议它根本没有所有必要的权限。

在更改整个系统之前,我想从用户 myusername 执行命令。

echo shell_exec(sudo -u myusername java -jar program.jar arg1 arg2 arg3)

这种轻微修改只返回无输出。

奇怪的是,这个命令也不起作用(以root身份执行):

root@null:/opt/lampp/htdocs# sudo -u myusername java -jar program.jar arg1 arg2 arg3

问题:

  1. 为什么我不能运行最后一个命令,尽管第一个命令有效。根据我的理解,它们是等价的。
  2. 我需要更改哪些内容才能成功运行第三个命令?

0 个答案:

没有答案