Php 是否将shell_exec或exec用作其他unix用户?

Php 是否将shell_exec或exec用作其他unix用户?,php,unix,Php,Unix,在运行shell_exec或exec时,我是否可以让PHP以不同的用户身份登录 我不希望它使用www数据用户,因为我希望以git用户的身份执行命令,以便在当前机器中创建repo。当然。如何使用sudo-u newuser?您可以设置sudo以允许此操作。您需要将www-data用户对sudo的权限授予用户git(通过/etc/sudoers)(可能没有密码) 即: 作为另一个选项,可以将Apache配置为以www date以外的用户身份运行虚拟主机(请参阅SUPPP-) 在运行shell_exe

在运行shell_exec或exec时,我是否可以让PHP以不同的用户身份登录


我不希望它使用www数据用户,因为我希望以git用户的身份执行命令,以便在当前机器中创建repo。

当然。如何使用
sudo-u newuser

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

即:

作为另一个选项,可以将Apache配置为以www date以外的用户身份运行虚拟主机(请参阅SUPPP-)

在运行shell_exec或 执行官

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

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


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

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

下面的方法行吗

www-data-ALL=git\u用户NOPASSWD:command\u名称

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