我有以下系统(Linux / CentOS):
DEV APACHE DEV分组: APACHE , DEV APACHE分组: APACHE , DEV
用户APACHE运行Apache服务器。
我的WWW文件夹位于/home/dev/www/我的文档文件夹位于/home/dev/docs在我的WWW文件夹中有一个指向doc文件夹的符号链接。
我的PHP应用程序需要在文件夹中创build新的文件夹。 doc文件夹的权限标志是rwxr-xr-x 。 如果我尝试mkdir到该文件夹,我会得到权限被拒绝。 如果我更改权限到rwxrwxr-x一切正常。 我的问题是:对吗? 或者我应该改变运行Apache的用户?
我的build议是将文件的所有权保留在设置为DEV:DEV /home/dev/(www|docs) ,并允许APACHE用户通过组权限写入所需的文件夹。
这种APACHE需要写入的文件夹的权限设置为rwxrwxr-x ,而只需要读取的文件夹可以将权限设置为rwxr-xr-x 。
在这种情况下还有一件事需要考虑。 由APACHE用户创build的所有文件/文件夹将由APACHE:APACHE (假定APACHE用户的默认组为APACHE )拥有。 因此,您可能无法使用您的DEV用户写入这些文件/文件夹,具体取决于为APACHE用户设置了哪个umask 。
为了解决这个不便之处,你可以在APACHE要写入的文件夹上设置SGID位。 在你的情况下:
chmod g+s /home/dev/docs
并为APACHE用户设置适当的umask :
umask 0002
这样, APACHE用户创build的/home/dev/docs所有文件/文件夹都将拥有者设置为APACHE:DEV并将权限设置为rwxrwxr-x文件夹和rw-rw-r--文件。
请注意,虽然这是一个可接受的开发环境解决scheme,但在生产服务器上,您可能不希望APACHE用户将umask设置为0002 。