回答:
要するに:いいえ。
バックアップから復元する必要があります。(一部のバックアップツールには、アクセス許可のみを復元するオプションがあります。他のツールには、バックアップファイルをアクセス許可と共に一覧表示できます。これを使用して、システムを修正できます。)
バックアップがない場合は、すべてを手動で修正する必要があります。
sudo chown -R user:user /、システムが非常にひどくホース接続されているため、バックアップから復元できない可能性があります。
chownできなくなる可能性があります。システムにはアカウントさえなく、動作しません。おそらくシングルユーザーシェルで起動するのは価値がありますが、動作するとは思わないでください。rootsudo
sudoでもsu機能し続けるかどうかuserは別の問題です(おそらく、exeのSUIDビットがなくなったためではないでしょう)。
ディレクトリ内のすべてのファイルとディレクトリのユーザーとグループの所有権を知っている場合のみ/。
その場合でも、sudoコマンドを含め、rootが所有する必要のある重要なシステムファイルの所有権をすでに破壊しています。おそらく、ハードドライブを別のシステムにマウントする必要があります。そして、他のシステムは、たった今破壊したのと同じUIDおよびGIDマッピングを持たない可能性が高いことに注意してください。
可能であれば、ハードドライブ全体のコピーを作成してから、オペレーティングシステムを再インストールします。それが完了したら、新しくワイプしたシステムにファイルをコピーして、所有権を復元してみてください。(100%確実で/home/fooはありませんが)下のすべてがuser によって所有され、foo下の各メールスプールファイル/var/mailが適切なユーザー(システムに電子メールがある場合)によって所有されていると仮定できます。/homeシステムで行ったことに応じて、下にないほとんどのファイルを復元せずに逃げることができます。
そして、を押すsudo 前に実行するコマンドをダブルチェックする習慣を身につけます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または他の重要なファイルを公開するため、/で再帰的なchownを実行しないことを強くお勧めします。
sudo chown -R user:user ..は、ファイルシステムのルートの1つ下のレベルにいる場合、ここで説明したものと同じ効果を持つ可能性があります。このようなことを試みないでください。