使用shell_exec或exec作为不同的unix用户?

时间:2011-08-24 20:06:40

标签: php unix

我可以在运行shell_exec或exec时以不同的用户身份登录PHP吗?

我不希望它使用www-data用户,因为我想以git用户身份执行命令,以便在当前机器中创建回购。

4 个答案:

答案 0 :(得分:7)

  

我可以在运行shell_exec时以不同的用户身份登录PHP   EXEC?

这是一个危险的选项,它可能会在您的服务器中造成严重的安全漏洞。应该避免。

  

我想以git用户身份执行命令

我建议您的Web应用程序向数据库表写入有关需要创建的新repo的信息。然后在作为git用户运行的服务器上有一个持续运行的进程(或通过cron调用的进程)。该过程可以定期检查该资源并创建回购。这样,您的Web服务器就不会进行用户切换,您仍然可以安全地创建新的repo。

答案 1 :(得分:2)

您可以设置sudo以允许此操作。您需要将www-data用户权限授予用户git(通过/etc/sudoers)(可能没有密码)。

即:

shell_exec('sudo -u GIT_USER -S your_git_command');

作为另一种选择,可以将Apache配置为以www-date以外的用户身份运行虚拟主机(请参阅suphp - http://www.suphp.org/Home.html)。

答案 2 :(得分:1)

不确定。怎么用sudo -u newuser

答案 3 :(得分:0)

如何在没有密码的情况下通过/ etc / sudoers将www-data用户权限授予用户git?

以下工作会怎样?

www-data ALL = git_user NOPASSWD:command_Name