$ whoami
meder
$ cd /var/www
$ sudo mkdir html
$ sudo groupadd web
$ sudo usermod -a -G web meder
$ sudo usermod -a -G web medertest
$ sudo chown meder:web html
$ sudo chmod -R g+rwx html
问题是,无论何时我创建一个新文件,/var/www/html
即使组设置为web
,也只有原始用户可写入。
有人建议我将设置umask
为,002
因为默认设置会导致问题。但我必须这样做全部该组中的用户,据我所知,让所有用户都修改~/.bashrc
为会很繁琐umask 002
。即使我可以用 shell 命令为所有这些用户执行此操作,但这似乎仍然太繁琐了。
有人能就拥有组可写目录提供任何建议吗?
答案1
首先,在您的目录上启用 SGID 位:
sudo chmod g+s html
这将使该目录内创建的新文件继承父组的所有权。
POSIX 权限模型中没有权限级别的继承。但是,可以使用访问控制列表,无需担心 umask 设置:
sudo setfacl -d -m group:web:rwx html
umask 不能按目录进行分配,这真是令人沮丧。
答案2
您需要在目录上设置 setgid 位。
chmod g+s html