setが所有するフォルダがあるため、/stuff
すべての新しいフォルダのグループはに設定されます。root:stuff
setgid
stuff
私はこれが欲しい:
- 新しいファイルは次のとおりです
rw-rw----
。- ユーザー: 読み書き
- グループ: 読み書き
- その他:全く
- 新しいフォルダは次のとおりです
rwxrwx---
。- ユーザー: 読み取り、書き込み、実行
- グループ: 読み取り、書き込み、実行
- その他:全く
デフォルトのACLを設定すると、setfacl
ファイルとフォルダに対して機能するようです。私には大丈夫です。その他ファイルまたはフォルダの両方に権限がないため:
setfacl -d -m o::---- /stuff
しかし、私はどうですか?ユーザーそしてグループ?上記の操作を実行すると、すべてのファイルとフォルダに設定されます。
そして私はそれを使用できませんumask
。
共有ドライブがあります。人々はstuff
読んで/書く/実行することができますが、他の人(他の人)はできないようにしようとします。アカウントが何であっても、ファイルにデフォルトで実行ビットが設定されていないことを確認したいと思いますumask
。
答え1
ファイルとディレクトリを区別できません。設定値ただ。代わりに、以下を使用して問題を解決できます。イノティファイツール新しく作成されたファイル/ディレクトリを検出し、各ファイル/ディレクトリに正しいACLを繰り返し適用します。
1-まずinotify-toolsパッケージをインストールする必要があります。
2-デフォルト/stuffディレクトリaclを復元します。
sudo setfacl -bn /stuff
3セットGID
sudo chmod g+s /stuff
4 - テストのためにバックグラウンドで次のスクリプトを実行します。永久的なソリューションのためにこれをサービスにラップします。
#!/bin/bash
sudo inotifywait -m -r -e create --format '%w%f' /stuff | while read NEW
do
# when a new dir created
if [ -d "$NEW" ]; then
sudo setfacl -m u::rwx "$NEW"
sudo setfacl -m g::rwx "$NEW"
# when a new file created
elif [ -f "$NEW" ]; then
sudo setfacl -m u::rw "$NEW"
sudo setfacl -m g::rw "$NEW"
fi
# setting no permissions for others
sudo setfacl -m o:--- "$NEW"
done