web-dev-qa-db-ja.com

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

実行した場合:

Sudo chown -R user:user /

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

17
fronthem

つまり、いいえ。

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

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

23
Mat

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

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

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

そして、Sudoの下で実行するコマンドをダブルチェックする習慣を身につけ始めますbeforeヒット Enter

6
Keith Thompson

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

6
Egon Spengler

現在のバージョンを保存し、-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やその他の重要なファイルを公開するため、/で再帰的な変更をしないことを強くお勧めします。

1
SailorCire

ディストリビューションがrpmベースの場合:

rpm -a --setperms
0
shcherbak