Я запутался с группами в 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 в микс.