/ etcで失われた権限メタデータを回復する方法は? [コピー]

/ etcで失われた権限メタデータを回復する方法は? [コピー]

コマンドが誤って実行されました。

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これにより、今後さらに権限関連の問題が発生しますが、セキュリティ抜け穴は発生しません。

おすすめ記事