web-dev-qa-db-ja.com

chown -R root.root /

だから私は働いていて、テキストエディタでファイルを開くことができるようにルートターミナルで定期的にユーザーに変更しているディレクトリがありましたが、誤っての代わりに/を押しました。そしてこれは私が出したコマンドでした:

chown -R emil.emil /

次に、すぐに^ Cをパニックにして、別のコマンドを入力しました。アクセスする必要のあるファイルをいつでも元に戻すことができると思ったからです。

chown -R root.root /

そのため、許可拒否エラーが発生したため、suからemilを実行して、これを修正することさえできなくなりました。私はUbuntuを使用していますが、すべてを完全に再インストールせずに、これを修正できる方法があるかどうか誰かに教えてもらえますか。

[〜#〜] tip [〜#〜]

ルートアクセスを取得しようとしていて、suを使用しているときにこのアクセス許可が拒否されたというエラーが発生する場合は、次のコマンドを試してください。

gksu gnome-terminal

ルートパスワードの入力を求められ、何らかの理由で新しいルートターミナルを開きます。これは機能し、suが機能しない場合にルートアクセスを提供します。

3
Emil

/の子孫であるファイルシステムには、さまざまなことを実現するためのさまざまな所有権があります。

試みた修正により、rootがすべての所有者になります。そのため、多くの操作(/ home/emilの下のファイルへのアクセスを含む)では、rootが機能する唯一のユーザーです。

したがって、オプションは次のとおりです。

  1. バックアップから復元
  2. 再インストール
  3. シングルユーザーモードで起動し、各ファイルに正しい所有者を手動で適用します

1.はテーブルから外れており、2。は推奨されるオプションではないと仮定します。

Ubuntuを起動するときのGrubメニューには、起動時にリカバリオプションがあります。 grubメニューが表示されない場合(これはBIOSの後に何よりも先に表示されます)、左のShiftを押し続けると表示されます。これを選択すると、rootとしてログインしているシングルユーザーモードで起動します。

そこから、所有権の変更を開始できます。最初のものは

 chown -R emil /home/emil

これにより、自分のファイルの所有者になります。それ以外の場合は、別のマシンにインストールしてファイルの所有権を比較するか、/ etc/init.dで使用する各サービスを開始して、失敗の理由を監視することをお勧めします(サービスが失敗するのは、ログを/ var/logに書き込むことができないため、エラーレポートを提供することもできません)。

これは非常に時間のかかるプロセスですが、再インストールを回避できます。 Ubuntuに対して行った個人設定とアプリケーション設定は、/ home/emil heirachyに保存されるため、これらのファイルを別の場所にコピーし、OSとアプリケーションを再インストールして、コピーして戻す方がはるかに高速です。

5
Paul

同様のシステムが手元にある場合は、findを使用して、各ファイルの正しい所有者とグループを特定できます。使用:

find / -printf "%u:%g %p\n" > permissions.txt

これにより、次のような出力が生成されます。

root:root /
root:root /usr
root:staff /usr/local
root:staff /usr/local/man
root:staff /usr/local/games
root:staff /usr/local/lib
root:staff /usr/local/lib/python2.7
root:staff /usr/local/lib/python2.7/dist-packages
root:staff /usr/local/lib/python2.7/site-packages
root:staff /usr/local/lib/python3.2
[...]

次に、これを繰り返し、各ファイルを元の所有者とグループにchownします。

while read line
do
    chown $line
done < permissions.txt

権限とファイルはシステム間で異なるため、これですべてが完全に修正されるとは思えませんが、これは開始であり、少なくとも基本システムをデフォルトに戻す必要があります

4
jhenninger

私はFedoraに精通していますが、ライブCDから起動し、マシンからデータをコピーして再インストールすることをお勧めします。

パッケージマネージャー(apt/dpkg)の情報を使用して、システム上のすべてのファイルの所有権を把握することができます。 rpmでそれを行う方法を理解することはできましたが、apt/dpkgについてはあまり詳しくありません。 SELinuxなどの強化されたセキュリティも問題を複雑にする可能性があります。

rpm -qa --list -vは、rpmベースのシステムで必要な情報を提供します。これは、解析してchownにフィードする必要があります。 apt/dpkgに相当するものがあれば、そこにたどり着くことができます。

1
retracile