Apache在WWW文件夹外写入权限

我有以下系统(Linux / CentOS):

  • 用户DEV
  • 用户APACHE

DEV分组: APACHEDEV APACHE分组: APACHEDEV

用户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