如何设置组可写目录?

如何设置组可写目录?
$ 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

相关内容