我正在设置一个ubuntu服务器,它有3个或4个VirtualHosts,我希望用户可以使用它们(添加新文件,编辑旧文件等).我目前计划将站点存储在/ var / www中,但不会反对移动它.
我知道如何添加新用户,我知道如何添加新组.我不确定处理用户只能编辑某些网站的最佳方法.我在这里阅读了in this question的答案,所以我想我可以设置一个组并将用户添加到该组,但是他们都拥有基本相同的权限.我是否只需要为每个用户分配特定权限?或者有更好的方法来处理这个问题吗?
您应该为每个网站使用一个组.并使所有需要写访问权限的用户成为相应组的成员.
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文件夹下创建文件时,他们都应该使用umask 0002(在〜/ .bashrc中或在部署脚本中),或者他们应该设置读取组的权限写访问chmod -R g rw /var/www/www.site1.com 2> / dev / null.
设置权限的另一个解决方案是使用dnotify.使用以下内容创建/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