グループ 1 のユーザー 1 が所有者ユーザー 2 とグループ ユーザー 2 のファイルを編集することを自動的に許可する

グループ 1 のユーザー 1 が所有者ユーザー 2 とグループ ユーザー 2 のファイルを編集することを自動的に許可する

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に所有権を付与するのは得策ではありません。いつもユーザー2 によって作成されたファイルを変更できるようになります。

新しいグループを作成し、両方のユーザーをそのグループに追加することをお勧めします。これにより、user3 を追加するときにも簡単になります。

関連情報