我有一个服务器设置,使用(PHP)创建新的Linux用户
shell_exec ( '/usr/sbin/useradd ' . $username );
exec ('usermod -a -G ' . $username . ' '. $username); #add user into the usergroup
exec ('usermod -a -G ' . $username . ' www-data'); #add usergroup with the www-data
然后用户脚本将文件的所有者和组更改为此所有者。服务器使用 suPHP 设置,然后允许以所有者身份运行这些文件。
此设置在 Apache 2.2 中运行良好,但在 Apache 2.4 中出现问题。一切运行正常,但当我尝试打开文件时,它会出现 403 禁止错误。添加用户后重新启动 Apache 可以修复此问题,但这对我来说不是一个可行的解决方案。用户是使用 Web 服务器添加的,因此我需要能够做到这一点,而不必每次都重新加载/重新启动 Apache。
我搜索了几个小时并试图修复该问题,但一直未能成功!我正在运行 ubuntu 14.04,也无法降级到 apache 2.2。
答案1
每次将自己添加到组时,您都需要注销并重新登录以使更改生效。这里也发生同样的事情,通过重新启动 Apache,您可以允许它“重新登录”并加入用户组,然后允许它读取和提供用户的文件。