我一直在尝试设置一个共享文件夹来为某个群体存储一些文件,例如/home/project
。目前,我已完成以下操作:
创建了一个组,我们将其称为“成员”,并添加了两个用户,user1 和 user2。
当我运行时,cat /etc/group
我得到以下返回:
成员:x:1005:用户1,用户2
这至少看起来是正确的。然后,老实说,我按照一些互联网指南创建目录并添加权限。
mkdir /home/project
sudo chown -R root.members /home/project
sudo chmod 775 /home/project
sudo chmod 2775 /home/project
所有这些似乎都很顺利,但是当我以 user2 创建测试文本文件时,user1 可以读该文件,但没有写权限。我究竟做错了什么?
答案1
有时,我们在处理技术问题时会考虑一些简单的事情。我们不都是时常这样做吗?当用户注销并再次登录时,将获取组成员身份。
答案2
您的问题不是文件夹的权限,而是新创建的对象的权限。这些权限通过两种机制确定:
- umask(始终)
- 默认 ACL(如果使用)
umask 确定阻止新对象的哪些权限,其默认值为022
,阻止该组和其他组的写入权限。您必须在每次登录时相应地设置此值,例如
umask 002
如果您使用 ACL,则可以为新对象配置组权限:
setfacl -m d:g::rwx /home/project