を使用して私のディレクトリ構造のデフォルト権限を設定しようとしていますacl
。ディレクトリとファイルに対して、それぞれ次の基本的な権限を持っていると思います。
drwx--x---
-rw-r-----
group
ただし、デフォルト権限を次のように設定するだけですx
。
setfacl -R -d -m g::x my_dir
その後、新しく作成されたディレクトリには私が望む権限がありますが、新しく作成されたファイルには権限があり-rw-------
ません-rw-r-----
。つまり、ファイルの権限はr
維持しながら、そのディレクトリの権限を削除しようとします。r
どうすればいいですか?
答え1
Linux/Solaris ACL はこの機能をサポートしていません。ファイルとディレクトリに異なるデフォルトのACLを設定できません。
閲覧できますが、内容を一覧表示できない(実行可能ですが読み取れない)ディレクトリを持つことはほとんど役に立ちません。それがうまくいくという事実は、いくつかの歴史の偶然です。はい、時には便利です。しかし、本当に必要ですか? (これは別の質問でお願いします。)
権限の異なるディレクトリとファイルが本当に必要な場合は、次のようないくつかの可能性を検討してください。
- 独自のファイルシステム属性に依存するのではなく、アプリケーションが生成したファイルの所有権を変更するようにしてください。
デフォルトでは、すべてをプライベートに設定し(
setfacl -d -m group:mygroup:X
)、次のいずれかの提案を使用してください。ACLを使用するディレクトリでのみグループ+ rx権限を使用しますか?:- グループ公開ファイルを直接公開するのではなく、バインド経由でインストールしてください。
- inotifyを使用してツリーを観察し、
setfacl
新しい一般ファイルで実行します。
答え2
setfacl
どちらもumask
ファイルとディレクトリに別々のデフォルト値を許可しないように見えるため、これを実行できないようです。他のオプションについては、同様の質問を参照してください。。特定のアプリケーションが読み取り権限のないディレクトリと読み取り権限を持つファイルを生成するようにするには、それを変更するか、バイナリのみが提供されているLD_PRELOADを試すことができます(そのためにライブラリを作成するのは少し過剰かもしれません)。