Автоматически разрешить пользователю user1 в группе group1 редактировать файл с владельцем user2 и группой user2

Автоматически разрешить пользователю user1 в группе group1 редактировать файл с владельцем user2 и группой user2

Я запутался с группами в 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 не может редактировать файл -rwxrw-r--, владельцем которого является пользователь user2 и группа user2:

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 в микс.

Связанный контент