我对 Linux 中的组感到困惑。考虑到 user1 既属于 user1 组又属于 user2 组(反之亦然):
user1> id user1
uid=1000(user1) gid=1000(user1) groups=1000(user1),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),50(staff),113(lpadmin),130(sambashare),131(vboxusers),1001(user2)
user1> id user2
uid=1001(user2) gid=1001(user2) groups=1001(user2),0(root),1000(user1)
我不明白为什么 user1 无法编辑 user2 和组 user2 拥有的 -rwxrw-r-- 文件:
user1>ls -l hey.xml
-rwxrw-r-- 1 user2 user2 8385 May 24 11:39 hey.xml
user1>echo "fails" >> hey.xml
bash: hey.xml: Permission denied
但当我更改组时它会起作用:
user1> sudo chgrp user1 hey.xml
user1> echo "works" >> hey.xml
一旦这个问题得到解答,我该怎么做才能始终允许 user1 读写 user2 组中的文件?谢谢
答案1
如果将用户添加到组中,新的成员资格不会立即生效。确保这是最新的最简单方法是让组成员身份已更改的用户注销并重新登录。完成后,用户应该能够按预期访问文件。
答案2
确保文件归两个用户所在的组所有。如果文件已存在,请使用该chown
实用程序更改所有权。让 user1 是个坏主意总是能够更改 user2 创建的文件。
我建议创建一个新组,并将两个用户添加到其中。当您将 user3 添加到组合中时,这也会让您变得更容易。