【发布时间】:2016-06-15 15:58:09
【问题描述】:
这是一个 Ubuntu 系统,我需要 PHP 来执行一个具有特定用户名的程序,比如 userA。
我使用 php exec() 函数调用 sudo -Eu userA command_to_run_program,由于 Ubuntu 上缺少一些安全功能或环境变量,它没有工作。
所以我在想是否可以实现这种替代方式:
从后端,有一个带有固定 Pid 的 shell 脚本正在运行并等待信号。如果这个进程接收到一个特定的信号,它将执行程序。假设我使用 userA 手动启动了这个 shell 脚本。所以我假设当它接收到信号并执行程序时,程序是用userA执行的。
这台机器上有一个带有 PHP 的 apache 服务器。前端用户进入PHP页面,php程序将信号发送给正在运行的shell脚本,唤醒shell脚本,程序由userA执行。
如果可以实现,最好的做法是什么?
感谢您的帮助!
【问题讨论】:
-
最佳实践可能是解决环境变量或安全功能,而不是构建复杂的信号和助手!
标签: php linux bash shell ubuntu