書き込めないすべてのファイルを見つけるにはどうすればよいですか?
標準のアクセス許可とACLを考慮に入れればよいでしょう。
「簡単な」方法はありますか、それとも自分で権限を解析する必要がありますか?
試す
find . ! -writable
コマンドfile
はファイルを一覧表示し、-writable
は、書き込み権限があるものと!
フィルターを反転します
あなたは付け加えられます -type f
ディレクトリやその他の「特別なファイル」を無視したい場合
Linux以外のシステムおよびGNU find
がないシステムでは、以下はfind . -type f ! -writable
と同じ出力を提供する可能性がありますが、セカンダリグループは考慮されません。
myname=$( id -un )
mygroup=$( id -gn )
find . -type f '(' \
'(' -user "$myname" ! -perm -u=w ')' -o \
'(' ! -user "$myname" -group "$mygroup" ! -perm -g=w ')' -o \
'(' ! -user "$myname" ! -group "$mygroup" ! -perm -o=w ')' ')'
順番に4つのテスト:
これの利点は、別のユーザーの名前とグループで代用できることです。これはGNU find
の-writable
でできるとは思いません。
同じコマンドですが、ロジックがAND形式で記述されています。
find . -type f \
! '(' -user "$myname" -perm -u=w ')' \
! '(' ! -user "$myname" -group "$mygroup" -perm -g=w ')' \
! '(' ! -user "$myname" ! -group "$mygroup" -perm -o=w ')'