実行した場合:
Sudo chown -R user:user /
実行前の状態に戻すことはできますか?
つまり、いいえ。
バックアップから復元する必要があります。 (一部のバックアップツールには、アクセス許可のみを復元するオプションがある場合があります。他のバックアップツールでは、バックアップされたファイルをそのアクセス許可と共に一覧表示でき、それを使用してシステムを修正できます。)
バックアップがない場合は、すべて手動で修正する必要があります。
/
ディレクトリの下のすべてのファイルとディレクトリのユーザーとグループの所有権を知っている場合のみ。
それでも、Sudo
コマンドを含め、rootが所有する必要のある重要なシステムファイルの所有権をすでに奪っています。おそらくハードドライブを別のシステムにマウントする必要があります-もう1つのシステムは、破壊したばかりのシステムと同じUIDおよびGIDマッピングを持たない可能性があることに注意してください。
可能であれば、ハードドライブ全体のコピーを作成してから、オペレーティングシステムを再インストールします。それが完了したら、新しくワイプされたシステムにファイルをコピーして戻し、所有権を復元することができます。おそらく、100%確実ではありませんが、/home/foo
の下のすべてがユーザーfoo
によって所有され、/var/mail
の下の各メールスプールファイルは適切なユーザーによって所有されていると想定できます(システムに電子メールがあります)。システムで何を実行したかによっては、/home
の下にないほとんどのファイルを復元せずに済む可能性があります。
そして、Sudo
の下で実行するコマンドをダブルチェックする習慣を身につけ始めますbeforeヒット Enter。
ディストリビューションがRPMベースの場合は、rpmパッケージによってインストールされたファイルのみを復元できます。
すべてのパッケージ権限を復元するには:
rpm --setperms -a
すべてのパッケージ所有者(ユーザー/グループ)を復元するには:
rpm --setugids -a
-aが実行されない場合は、bashループを実行できます。
権限について:
for x in $(rpm -qa); do rpm --setperms $x; done
所有者の場合:
for x in $(rpm -qa); do rpm --setugids $x; done
抽出元: http://www.sysadmit.com/2016/10/linux-restaurar-permisos-de-un-paquete.html
現在のバージョンを保存し、-vオプションを使用して解析して元に戻すことができます。
chown -R nobody:nobody -v /tmp/some_file > /tmp/chown.log
cat /tmp/chown.log
内容は次のようになります。
changed ownership of `/tmp/some_file' from me:users to nobody:nobody
お好みのスクリプト言語と正規表現を使用して、それらを元に戻すという面倒なプロセスを実行できます(必要な場合)。
/ etc/shadowやその他の重要なファイルを公開するため、/で再帰的な変更をしないことを強くお勧めします。
ディストリビューションがrpmベースの場合:
rpm -a --setperms