グループがディレクトリ内のファイルを読み書きできるように、ディレクトリ権限をどのように設定しますか? (誰がファイルを作成したかに関係なく)

グループがディレクトリ内のファイルを読み書きできるように、ディレクトリ権限をどのように設定しますか? (誰がファイルを作成したかに関係なく)

このグループに属するディレクトリを作成しましたwww-data。ファイルを作成した人が誰であっても、グループメンバーがファイルに書き込むことができることを願っています。私のユーザー名はですpi

mkdir ./shared
sudo chown pi ./shared
sudo chgrp www-data ./shared
sudo chmod -R 770 ./shared
sudo chmod g+sw ./shared

で確認してみるとls -l次のようになります。

drwxrws--- 2 pi   www-data 4096 sept 28 17:10  shared

その中に新しいファイルを作成しました。

cd ./shared
touch ./test.txt

ところで確認してみると、グループに新しい書き込み権限がありません。test.txt

-rw-r--r-- 1 pi www-data 0 sept 28 17:10 test.txt

私に何の問題もあるのか?できませんsudo chmod -R 770 ./shared。スクリプト/Webサーバーは、実行するたびにディレクトリに新しいファイルを生成します。

特定のファイルを作成した人に関係なく、所有者とグループのメンバーがファイルに対する読み取りおよび書き込み権限を持つ共有ディレクトリを作成する方法は?

答え1

システムとファイルシステムがposix-draft-type ACLをサポートしている場合は、次のことができます。

setfacl -m d:g::rw ./shared

umaskこのグループには、ファイルを作成したプロセスが通常これらの権限を付与しない場合でも、新しく作成されたファイルに対する読み取りおよび書き込み権限が自動的に付与されます。

chmodそれにもかかわらず、これはユーザーが後でこれらの権限を使用/削除するのを防ぎませんsetfacl

関連情報