web-dev-qa-db-ja.com

グループメンバーがファイルを編集すると、所有権、グループ、権限が*自動的に*変更されます

グループのメンバー全員がrwx特権を持つように設定しようとしているディレクトリがあります。ディレクトリとその権限のサブセットは次のとおりです。

-rwxr-xr-x  1 myusrnm grpnm 21638 2015-04-22 14:14 correct
-rwxrwxr--  1 myusrnm grpnm 14403 2015-04-22 14:14 correct.c

ここで、グループ内のユーザーの1人に切り替えて、彼がその中にいることを確認します。

myusrnm@server:~/grpdir$ Sudo su hisusrnm
hisusrnm@server:/grpdir$ whoami
hisusrnm
hisusrnm@server:/grpdir$ groups
hisusrnm sshusers grpnm

そして、correct.cを編集します。今、他の端末で、私はディレクトリをチェックして見つけます:

-rwxr-xr-x  1 myusrnm grpnm   21638 2015-04-22 14:14 correct
-rwxrwxr--  1 hisusrnm hisusrnm 14368 2015-04-22 14:23 correct.c

ファイルを編集するときに同じことが起こることに気づきました。そのグループは自動的にmyusrnmに変更され、その権限は自動的に774に変更されます。なぜこれが発生するのですか?グループ、所有権、権限を変更せずに、グループメンバーにファイルを編集させるにはどうすればよいですか?これはデフォルトのLinuxの動作ですか?それとも、私のシステムは特別な動作をしていますか?

1
Frank Harris

親フォルダで SetGID を使用します。これにより、グループ所有者は親フォルダーの所有者のままになります。

SetGIDをオンにするchmod g+s folder/pathを使用するか、数値パターンの最上位に2を配置できます。例:chmod 2740 folder/path。新しいフォルダーの場合は、フォルダーに所有権を適用するだけで、新しいファイルはフォルダーgroup-ownerを引き継ぐか、既存のフォルダーでフォルダー自体を示しますが、chmod-Rスイッチを使用してすべての既存の子。子供に既存の所有者がいる場合は、それらも設定する必要があります

chown -R user:group /path/to/existing/dir
chmod -R 2640 /path/to/existing/dir

権限が変更される理由については、umaskを確認してください。 0003に設定されているようです。カスタマイズしましたか? 0022に変更することを検討してください。

1
Frank Thomas