如何设置组可写目录?


16
$ 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,我也可以随时创建一个新文件,但该文件只能由原始用户写入。

有人建议我将设置为umask002因为默认值是导致问题的原因。但是我必须为该组中的所有用户执行此操作,据我所知,让所有用户都修改~/.bashrc为have 会很乏味umask 002。即使我自己可以对所有这些用户使用shell命令来执行此操作,这仍然显得过于乏味。

有人可以提供有关组可写目录的任何建议吗?


2
您是否尝试过注销,然后使用用户名再次登录?组信息在当前会话中未更新。
marco

@marco-我做到了su medertest并且su meder喜欢上千遍。这符合注销资格吗?
meder omuraliev 2011年

@marco感谢您不知道当前会话中的组信息未更新...……
gabeio 2015年

Answers:


30

首先,启用目录中的SGID位:

sudo chmod g+s html

这将使在该目录内创建的新文件继承父级的组所有权。

POSIX权限模型中没有权限级别的继承。但是,这可以通过访问控制列表来完成,而不必担心umask设置:

sudo setfacl -d -m group:web:rwx html

不能在每个目录中分配umask是一个不小的事实。


什么是g+s在数字?
尔根·保罗

1
@WearetheWorld以2开头chmod 2XXX file
mizo

1
我一直在寻找这个答案,而我刚刚通过Twitter回复被提及。谢谢@mizo!
雕文

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.