如何在Ubuntu 9.10的/ var / www中为多个用户编辑多个站点的权限结构?

我正在build立一个Ubuntu服务器,将有3或4个VirtualHosts,我希望用户能够工作(添加新的文件,编辑旧的文件等)。 我目前计划在/var/www存储网站,但不会反对移动它。

我知道如何添加新用户,我知道如何添加新的用户组。 我不确定处理用户只能编辑某些网站的最佳方法。 我在这个问题上阅读了这里的答案,所以我想我可以设置一个组,并将用户添加到该组,但是他们都拥有基本相同的权限。 我只是将不得不分配每个用户特定的权限? 还是有更好的方式来处理这个?

补充:我也应该注意到,我将让每个用户通过SSH / sFTPlogin。 用户永远不需要在服务器上做任何事情。

你应该为每个网站使用一个组。 并使所有需要写入权限的用户成为相应组的成员。

 groupadd site1_com mkdir /var/www/www.site1.com chgrp site1_com /var/www/www.site1.com find /var/www/www.site1.com -type d -print0|xargs -0 chmod g=rwxs chmod -R g+rw /var/www/www.site1.com usermod -aG site1_com user1 

现在,每当用户在/var/www/www.site1.com文件夹下创build文件时,他们都应该使用umask 0002 (在〜/ .bashrc或部署脚本中),或者应该为该组设置权限写访问chmod -R g+rw /var/www/www.site1.com 2>/dev/null

设置权限的另一个解决scheme是使用dnotify。 使用以下内容创build/usr/local/sbin/dnotify_handler-reset_perms.sh脚本:

 #! /bin/sh CHANGED_FOLDER=$1 find $CHANGED_FOLDER -maxdepth 1 -mmin 0 -not -perm -g+w -exec chmod g+w {} \; 

并添加到/etc/rc.local

 dnotify --recursive /var/www/www.site1.com --create --execute --background /usr/local/sbin/dnotify_handler-reset_perms.sh