chownコマンドを元に戻す方法は?


16

私が実行した場合:

sudo chown -R user:user /

実行前の状態に戻すことはできますか?


1
他のユーザーへの警告と同じように、次のコマンドsudo chown -R user:user ..は、ファイルシステムのルートの1つ下のレベルにいる場合、ここで説明したものと同じ効果を持つ可能性があります。このようなことを試みないでください。
通行人

回答:


22

要するに:いいえ。

バックアップから復元する必要があります。(一部のバックアップツールには、アクセス許可のみを復元するオプションがあります。他のツールには、バックアップファイルをアクセス許可と共に一覧表示できます。これを使用して、システムを修正できます。)

バックアップがない場合は、すべてを手動で修正する必要があります。


の後にsudo chown -R user:user /、システムが非常にひどくホース接続されているため、バックアップから復元できない可能性があります。
キーストンプソン

1
このシナリオでユーザーデータの重要な部分をバックアップから回復できない場合、「バックアップ」は実際にはそうではありません。OS全体を回復できない場合でも、ベースを再インストールしてからバックアップから復元できるはずです。この場合、ライブCDまたはネットワークブートが必要になる可能性が非常に高くなりますが、バックアップ戦略がこれから回復できない場合は、それで十分ではありません。
マット

私の以前のコメントはおそらく不明瞭でした。機能しているシステムは、システム自体を使用して復元できます。説明が完了したら、システム全体をゼロからインストールする前に何もchownできなくなる可能性があります。システムにはアカウントさえなく、動作しません。おそらくシングルユーザーシェルで起動するのは価値がありますが、動作するとは思わないでください。rootsudo
キーストンプソン

1
ルートアカウントは削除されていません(まだUID 0です)。もはやファイルを所有していませんが、ルートはとにかく通常の許可チェックをバイパスします。関連するすべてのファイルが所有されている場合sudoでもsu機能し続けるかどうかuserは別の問題です(おそらく、exeのSUIDビットがなくなったためではないでしょう)。
jw013

6

ディレクトリ内のすべてのファイルとディレクトリのユーザーとグループの所有権を知っている場合のみ/

その場合でも、sudoコマンドを含め、rootが所有する必要のある重要なシステムファイルの所有権をすでに破壊しています。おそらく、ハードドライブを別のシステムにマウントする必要があります。そして、他のシステムは、たった今破壊したのと同じUIDおよびGIDマッピングを持たない可能性が高いことに注意してください。

可能であれば、ハードドライブ全体のコピーを作成してから、オペレーティングシステムを再インストールします。それが完了したら、新しくワイプしたシステムにファイルをコピーして、所有権を復元してみてください。(100%確実で/home/fooはありませんが)下のすべてがuser によって所有され、foo下の各メールスプールファイル/var/mailが適切なユーザー(システムに電子メールがある場合)によって所有されていると仮定できます。/homeシステムで行ったことに応じて、下にないほとんどのファイルを復元せずに逃げることができます。

そして、を押すsudo 前に実行するコマンドをダブルチェックする習慣を身につけますEnter


6

ディストリビューションが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


1

-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を実行しないことを強くお勧めします。


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.