エラー: /etc/sudoers が機能していません - 所有権が間違っています

エラー: /etc/sudoers が機能していません - 所有権が間違っています

クライアント システムに 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/*

関連情報