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

时间:2009-12-14 00:43:57

标签: php linux apache impersonation

我想到了suPHP,但这不是我需要的。它不能用于我的目的,以不同的用户身份运行整个PHP脚本。我只需要作为不同的用户运行一个单独的linux命令行。

有可能吗?

3 个答案:

答案 0 :(得分:1)

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

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

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

答案 1 :(得分:0)

您可以尝试shell_exec功能和sudo

编辑:看到sudo提示输入密码,您可能想要使用proc_open,这允许您使用管道。有关如何创建自定义密码管道的信息,请参阅this comment

答案 2 :(得分:0)

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

另一种方法是Sticky Bits