如何在PHP中以特定用户的身份运行外部命令

我想到了suPHP,但那不是我所需要的。 它不符合我的目的是以不同的用户身份运行整个PHP脚本。 我只需要以不同的用户身份运行一个单独的linux命令行。

可能吗?

你可以尝试shell_exec函数和sudo

编辑 :看到sudo提示输入密码,你可能会想使用proc_open ,它允许你使用管道。 请参阅此评论以了解如何创建自定义密码管道。

我相信你应该尝试另一种方法。 “setuid”。

http://en.wikipedia.org/wiki/Setuid

基本上你要求文件运行,因为它是所有者,而不是程序。

您可以使用该用户的CRON执行脚本。 如果这是一个Web应用程序,那么你仅限于有限权限的Apache / Nobody用户。 如果这只需要在某个特定的时间运行,我会使用CRON。

另一种方法是粘滞位