似たようなことをする方法
find . -acl u:jim:rx
find . -acl u:*:r
find . -noacl u:jim:r
など。
findコマンドはそれをサポートしていないことを知っていますが、アイデアは得られます。一部の特定のシナリオでも動作するスクリプトはありますか?
注1:私は特にDebianに興味がありますが、すべての* nix OSで動作します。
ノート2:この質問は実際のケースに焦点を当てていますが、実際にはより一般的です。 ACL関連のファイルを見つけるための良いツールは何ですか?
ベストアンサー1
再帰オプションを含むgetfacl
ツールを使用すると、デフォルトのACLのみを含むファイルを-R
スキップ-s
して出力をgrep
。
たとえば、/dev
ディレクトリ内で次のコマンドを実行すると、次の結果が表示されます。
$ getfacl -Rs . | awk -v RS= -v ORS='\n\n' '/\nuser:jimmij:rw-\n/'
# file: sg1
# owner: root
# group: cdrom
user::rw-
user:jimmij:rw-
group::rw-
mask::rw-
other::---
# file: sr0
# owner: root
# group: cdrom
user::rw-
user:jimmij:rw-
group::rw-
mask::rw-
other::---
(...)
ファイル名のみを印刷するには:
getfacl -Rs . | awk -v RS= '/\nuser:jimmij:rw-\n/ {sub(/\n.*/, ""); sub(/^[^:]*: /, ""); print}'