3

johndoe の ACL セットを、ドライブの 1 つですべてのフォルダから再帰的に削除しようとしていますが、他のエントリはありません。他のグループ/ユーザー用に既に存在する ACL に影響を与えにこれを行う方法を知っている人はいますか?

「setfacl -du:johndoe」に相当する Mac を探しています

chmod を使用して複数のファイルからルールを削除できることは知っていますが、インデックス (例: すべてのフォルダーの 5 番目のエントリ) を介してルールを削除し、ユーザーのエントリが勝ったため、私が見た唯一の方法は機能しません。常に同じインデックスになるとは限りません。

なぜこれをしたいのですか?グループではなく多数の個人ユーザーを持つ非常識なファイル システムを継承し、既にアクセス権を持っている個人だけを削除したいとします。

4

3 に答える 3

4

chmod の「-a」オプションはどうですか?

find . -exec chmod -a "johndoe allow delete,readattr,writeattr,readextattr,writeextattr,readsecurity,writesecurity,chown,read,write,append,execute,list,search,add_file,add_subdirectory,delete_child" {} \;

現在のディレクトリから、すべてのファイルに対する johndoe のすべての ACL パーミッションを再帰的に削除します。(ACL のないすべてのファイルに対してエラーが出力されますが、残りのファイルでは引き続き機能します)。あなたが言ったように、これを「継承」と「拒否」でも実行する必要があります。

編集: Mac OS X で ACL を使用するツールは次のとおりです。

# cat has_acl.sh 
otool -IV $1 2>&1 | grep _acl_ > /dev/null
# find /bin /sbin /usr/bin /usr/sbin -exec ./has_acl.sh {} \; -print
/bin/chmod
/bin/ls
/usr/bin/ex
/usr/bin/rview
/usr/bin/rvim
/usr/bin/vi
/usr/bin/view
/usr/bin/vim
/usr/bin/vimdiff
/usr/sbin/cupsd
/usr/sbin/kadmind
/usr/sbin/pkgutil

vi は ACL の読み取りと保存のみを行い、他のものも役に立たないようです。しかし、サードパーティのツールが存在する可能性があります。多分Fink/MacPortsで?

于 2009-03-25T12:28:25.923 に答える
0

find / -print0 -type fd | xargs -0 ls -le | more

ファイルシステムの調査を開始するのに役立つ場合があります。

for ACL 出力moreなどの別のコマンドと、withの結果を処理する後続のパイプに置き換えることができます。grepgrepfsaclctl

于 2009-03-12T14:36:33.917 に答える
0

ユーザー名の の出力を grep し、ls -leを使用して見つけたインデックス番号のルールを削除しますawk。ユーザーに読み取り、書き込み、拒否、許可、削除などを呼び出さない限り;)

于 2009-03-12T09:42:49.723 に答える