スクリプトが思ったように動作しません。
すべてのrwx権限をxx5権限に変更するすべてのスクリプトを見つけることができますが、
#!/bin/bash
# the / makes find inclusive
for file in `find . -perm /007 `
do
permissions=`stat -c %a $file`
permissions=${permissions:0:2}5
echo $permissions $file
chmod $permissions $file
done
#find . -perm /007
私の意図は、少なくともいくつかのファイルを保護することです。
ベストアンサー1
chmod -R o-w .
書き込み権限が削除されます。他の人すべてのファイルを安全に処理してください。ただし、以下を含むすべてのファイルのctimeを更新します。他の人これ以上書き込み権限がありません。
GNUでは、chmod
-cオプションを使用して更新が必要なファイルを表示できます。
$ chmod -cR o-w .
mode of `./a' changed from 0777 (rwxrwxrwx) to 0775 (rwxrwxr-x)
ただw
削除したい場合他の人彼らがいる場所では、rwx
次のことができます。
find . ! -type l -perm -7 -exec chmod o-w {} +
(詳細については-vv
GNUまたはFreeBSDを追加してください)。chmod
しかし、(特に世界で書くことができるファイルを扱っているので)悪い意図を持つ誰かがそこにあるすべてのディレクトリへの書き込みアクセス権を持っている可能性があり、その間に他のファイルを指すファイルを使用することができる競合状態があるという点で注意してください。代替ファイルを使用find
してこれを確認して実行すると、ファイルへの書き込み権限を削除して混乱を招く可能性があります(chmod
たとえば、シンボリックリンクを考えてみてください)。/tmp
GNU構文を使用しているので、GNUであるstat
可能性が高いです。 GNUは、GNUが出てくる以前からファイル属性を表示することができたので、両方は必要ありません。find
find
find
stat
find . ! -type l -perm -7 -printf '%m %p\n' -exec chmod o-w {} +