コマンドが誤って実行されました。
sudo chmod -R 777 /etc/
権限の正しい状態を返す方法はありますか?
ベストアンサー1
この答えはバックアップがないと仮定します。
情報(権限メタデータ)がシステムから失われるため、外部ソースなしでは回復できません。
他のLinuxかもしれません。可能であれば、あなたと同じディストリビューションを使用することをお勧めします。
まず、すべてのディレクトリに対する権限を755に、すべてのファイルに対して644にリセットします。/etc
次のスクリプトを使用してこれを実行できます。
find -type d -print0|xargs -n 500 -P 1 -0 chmod 755
find -type f -print0|xargs -n 500 -P 1 -0 chmod 644
次に、権限データをテキストファイルにダンプします。他のシステムではコマンドの使用
find -print 0|xargs -0 -P 1 -n 500 ls -ld|sort -k +9 > permdata_ok.txt
permdata.txt
リモートシステムから1つを取得できます。ソートが必要です。理由は後で説明します。このファイルをリモートシステムからローカルシステムに移動します。
ローカルシステムでも同じスクリプトを実行permdata_ok.txt
しますpermdata_bad.txt
。
これでトリックが出ます。これらのファイルを並べて比較してみてください。
コマンドは次のとおりですdiff -urNw permdata_bad.txt permdata_ok.txt
。開発者ではない場合、出力構文はビューにはよくありませんが、慣れている可能性があります。
ファイルモードとファイルの違いを確認できます。違いが大きすぎる場合は手動でリセットしてください。
両方のシステムにすべてのファイルが存在するわけではないので、合理的な考え方が必要です。
システムがセキュリティに敏感な場合は、700
最初のステップで/ everythingに設定するのが最善です。600
これにより、今後さらに権限関連の問題が発生しますが、セキュリティ抜け穴は発生しません。