我可以在运行shell_exec或exec时以不同的用户身份登录PHP吗?
我不希望它使用www-data用户,因为我想以git用户身份执行命令,以便在当前机器中创建回购。
答案 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