最好的权限/所有权的Apache文档根

我需要一些帮助设置正确的权限或所有权的Apache文档根。 这是我需要的:

  • 存储在/var/www/html/<site>不同网站
  • 两个用户应该通过ssh更新/pipe理网站
  • 所有权应该不同于apache用户(为了安全)

我该怎么做? 目前所有文件都是世界可写的,这是不好的。 服务器运行CentOS 5.5

谢谢

创build一个新的组

 groupadd webadmin 

将您的用户添加到组中

 usermod -a -G webadmin user1 usermod -a -G webadmin user2 

更改网站目录的所有权

 chown root:webadmin /var/www/html/ 

更改网站目录的权限

 chmod 2775 /var/www/html/ -R 

现在任何人都可以读取文件(包括apache用户),但只有root和webadmin可以修改它们的内容。

我更喜欢用-o acl挂载分区。 这使您可以使用setfacl命令为文件和文件夹设置精细的权限,而不是仅指定用户组的其他权限。

所以把acl放到/ etc / fstab的分区行,或者用mount -o remount,acl / mnt / xy重新挂载,然后把你的web目录的所有权给nobody:nobody。 Chmod设置为770,并使用setfacl仅为需要的文件夹提供写入权限,例如。 给www-data(或者你的web服务器运行的用户)写上传文件夹的权限,并给你自己的用户写整个目录的权限。

 mkdir dir chown nobody:nobody dir setfacl -mu:www-data:rx,d:u:www-data:rx dir setfacl -mu:www-data:rwx,d:u:www-data:rwx dir/upload setfacl -mu:youruser:rwx,d:u:youruser:rwx dir 

现在除了您的networking服务器和您自己的用户之外,没有人可以读取您的文件。 您可以写入文件夹中的每个文件,并且Web服务器只能写入上传文件夹。