これはうまくいくかもしれませんが、sudo -u <user> test
私のシステムにsudoコマンドはありません。
例えば
/a d......--x
/a/aa d......--x YES
/b d......---
/b/bb d......--x NO
root ユーザーを使用する場合、test
コマンドを使用して「other」の権限を確認することはできません。私が見つけた関連質問:ファイルに対するユーザーの有効な権限のテスト
答え1
実行方法は次のとおりです。
find ./ ! -perm -o=x -prune -o \( -type d ! -perm /o=rw -perm -o=x -print \)
! -perm -o=x -prune
- 「他の」実行ビットがないディレクトリに移動しないでください。- かっこは実際には必要ではなく、明確にするために追加されました。それらがなければ、コマンドは同じように動作します。
-print
最後に明示的な内容がない場合、find
クリーンアップされたディレクトリも印刷されます(降順ではないディレクトリ、つまり「その他」実行ビットがないディレクトリ)。-print
右側(クリーンアップ後)のディレクトリのみが印刷されることを明示的に保証します。
これで、このコマンドが最も確実なコマンドになります。しかし、論理的な縮小を実行してより短くする方法があります。
まず考えてみると、2番目の項目は必要ありません-perm -o=x
。最初の項目が! -perm -o=x
「True」(フォルダに実行ビットがないことを意味)と評価された場合、右側にも到達しません-o
(論理的に最初の条件を確認した後、式全体が「True」と評価されるためです。)セクションに実行ビットがある場合にのみ、角かっこ内のセクション全体が評価されることを意味します。
最も重要なことは、-perm -o=x
ブラケット内の部品が重複して取り外し可能であることです。
find ./ ! -perm -o=x -prune -o \( -type d ! -perm /o=rw -print \)
-print
今私が言ったように、最後が必要なのは、ジョブが-prune
「True」を返し、クリーンアップされたディレクトリを印刷したくないからです。しかし!
前に。を追加すると、「True」を元に戻すことができます。-prune
フォルダはまだ切り捨てられますが、結果は「False」なので印刷されません。
find ./ ! -perm -o=x ! -prune -o \( -type d ! -perm /o=rw -print \)
-print
その後、最後のものはもう必要ありません。
find ./ ! -perm -o=x ! -prune -o \( -type d ! -perm /o=rw \)
先ほど述べたように、ブラケットを取り外すことができます。結果は次のとおりです。
最終短縮命令:
find ./ ! -perm -o=x ! -prune -o -type d ! -perm /o=rw