クライアント システムに Ubuntu 12.10 がインストールされています。エラーが発生しました/etc/sudoers is owned by uid 1000 should be 0
。Ubuntu ライブ CD から起動して、次の操作を試しました。
sudo chown root:root /etc/sudoers
sudo chmod 440 /etc/sudoers
そして
sudo chown 0.0 /etc/
しかし、動作しません。エラーが継続的に発生します。
sudo : /etc/sudoers is owned by uid 1000 should be 0.
この問題を解決するにはどうすればいいでしょうか?
答え1
ライブ CD ではすでにルートになっているはずなので、このsudo
部分は省略できます。実行してchown root:root /etc/sudoers
修正します。または、リカバリを起動してルート シェルを取得します。
答え2
ライブ システム上のコピーでを実行したと思われますchown
。代わりにインストールされたシステムで実行する必要があります。パスはおそらく になります。少なくとも、GUI を使用してドライブをマウントする場合はそうです。/media/something/etc/sudoers
あるいは、システムをレスキュー モードで起動することもできます (GRUB プロンプトのオプションであるはずです)。これにより、ルート シェルが提供されるはずです。その時点で、 を実行するだけですchown root:root /etc/sudoers
。
答え3
この問題がライブ CD の実行の微妙な問題ではない場合は、他の回答で既に説明されているように、ルート アカウントに問題がある可能性があります。
/etc/passwd のルート エントリを確認します。3 番目と 4 番目のフィールド (コロンで区切る) は両方とも 0 である必要があります。次のようになります。
root:x:0:0:root:/root:/bin/bash
ルートが何らかの理由で UID 1000 を取得した場合、chown root:root /etc/sudoers
所有権を 1000 に設定する理由は理解できます。次に、ルート アカウントを UID 0 に変更することが問題となり、さらにルート アカウントがなぜ変更されたのかを判断するというさらに困難な問題が生じます。
答え4
まず次のコマンドを実行します
$ su -root
パスワードを要求し、次のコマンドを1つずつ実行します。
chown root:root /etc/sudoers
chmod 440 /etc/sudoers
chown -R root:root /etc/sudoers.d
chmod 755 /etc/sudoers.d
chmod 440 /etc/sudoers.d/*