ここには魔法の弾丸はありません。許可には、常に冗長ではない情報が含まれています。
システムディレクトリでこれを行うと、システムは非常に悪い状態になります。setuidビットとsetgidビット、および世界が読み取れるはずのないファイル、およびファイルについて心配する必要があるためです。グループ書き込み可能または世界書き込み可能であることになっています。
ユーザーごとのディレクトリでは、誰もが読めるようになっていないファイルについて心配する必要があります。誰もあなたを助けることができません。
実行可能性に関しては、実行可能なように見えないすべてのものを非実行可能にすることをお勧めします。カーネルは、その最初の2つのバイトしているスクリプトを実行することができ#!
、その最初の4バイトですELFバイナリ値12、およびいくつかのまれなファイルの種類(a.outの、何かに登録してバイトですが)。したがって、次のコマンドは、アクセス許可を適切な状態に復元する必要があります(bash 4またはzshを想定しています。そうでない場合は、ディレクトリツリーを走査します。警告、ブラウザーに直接入力します)。\x7fELF
\x7f
binfmt_misc
find
for x in **/*; do
if ! [ -f "$x" ]; then continue; fi # skip all but regular files
case $(head -c 4 "$x") in
"#!"??) :;; # skip script
"\x7fELF") :;; # skip ELF executable
*) chmod a-x "$x";;
esac
done
Linuxおよび場合によってはACLをサポートする他のユニックスでは、ディレクトリツリーの権限をバックアップおよび復元する簡単な方法があることに注意してください。
getfacl -R >saved-permissions
setfacl --restore=saved-permissions
/
または別のディレクトリでこれを行いましたか?