我想让一个文件夹可由组中的任何用户写入所以我首先创建一个新组,如下所示:
sudo groupadd newGroup
然后我将 user1 和 user2 添加到该组中,如下所示:
sudo usermod -a -G newGroup user1
sudo usermod -a -G newGroup user2
我检查这些用户是否属于以下组:
getent group newGroup
然后在我的文件夹中,我将所有权授予该组,例如:
sudo chown :newGroup myfile
并将权限更改为 770,以便组中的任何人都可以使用以下命令写入文件夹
sudo chmod 770 myfile
但是当我尝试使用组中的 user2 打开文件夹时,我不能!我只能使用拥有该文件的用户 user1 打开它。我缺少什么?
编辑
ls la 文件结果
$ ls -la | grep myfile
-rwxrwx--- 1 user1 newGroup 3819 Jan 16 10:21 myfile
编辑2
我只需要注销并登录即可让效果发生。
答案1
用户(示例中的 user1 和 user2)需要注销并再次登录,只有这样他们加入新组才会生效。
属于用户 U 且属于组 G1 和 G2(如 所示id
)的成员的进程 P(例如 shell)将不是受到此安排的任何变更(例如通过usermod
或类似)的影响。具体来说,如果将用户 U 添加到组 G3,则进程 P 将不会注意到。同样,如果您删除组 G2,P 也不会注意到。这也适用于子进程,因为身份属性是继承的;因此,如果为用户 U 启动进程 P1,而 U 是 G1 和 G2 的成员,并且 U 从 G2 中删除,然后 P1 分叉 P2,则 P2 仍将在 G1 和 G2 中。这就是为什么用户U必须注销并重新登录,因为身份属性是由诸如login
.
答案2
请通过以下路径检查您创建新文件夹的路径的权限。
ls -ld .
如果新文件夹所在的路径没有组访问权限,但您已授予新文件夹必要的权限。它没有用。
由于第一组用户应该能够访问新文件夹的路径。然后他们应该进入新的文件夹目录。
为新文件夹所在的路径提供至少 750。因此组用户将能够将其输入到路径中