sudoエラー、モード0777、0440である必要があります


26

sudoエラーが発生しています。このエラーを修正するにはどうすればよいですか?

sudo: /etc/sudoers is mode 0777, should be 0440
sudo: no valid sudoers sources found, quitting 

以前のユーザーが指摘したように、sudoers.d / READMEファイルに間違ったchmodが含まれる場合に「chmod 0440 / etc / sudoers」を使用すると動作しません。
kentfx

問題が許可に関するもの/etc/sudoers.d/READMEであるとき、エラーはまだ言うことができると提案していますsudo: /etc/sudoers is mode 0777, should be 0440か?
エリアケイガン

回答:


26

最初のオプション

この投稿に続い

  1. PCを再起動
  2. GRUBブート選択画面が表示されたら、リカバリモードを選択します。(起動しない場合はShift、下部にGRUBローダーが表示されているときにキーを押します)。
  3. 黒いターミナルが表示されるはずです。この時点で、次のコマンドを実行できます(root権限が必要です)。

    chmod 0440 /etc/sudoers
    

代わりに

UbuntuをLiveCDに配置し、LiveCDを起動し、Ubuntuパーティションをハードドライブにマウントする必要があります(Nautilusなどのファイルブラウザーを開き、Ubuntuパーティションをクリックするか、[場所]-> [xxGBパーティション/ Ubuntuパーティション]をクリックします) ")。

次に、LiveCDセッション内でターミナルを開き、次の2つのコマンドを入力します。

cd /media/<name of permanent ubuntu partition>/etc
sudo chmod 0440 sudoers

余分な問題

エラーが発生した場合(下記を参照)、エラープロンプトに従い、上記の2つの手順のいずれかを使用して各ファイルを適宜調整します。

sudo apt-get update sudo:/etc/sudoers.d/READMEはモード0777、0440である必要があります

次の方法で修正してください:

chmod 0440 /etc/sudoers.d/README
chmod 0700 /var/lib/sudo

これらのコマンドは両方とも、上記の手順に従って適切に使用する必要があります。それらは、そのファイルに関連付けられたファイル許可を変更します。0440は所有者(root)とグループに読み取り許可を与え、0700は所有者(root)、読み取り、書き込み、実行の許可を与えます。


sudoコマンドを使用できますが、制限されています。 sudo apt-get update sudo: /etc/sudoers.d/README is mode 0777, should be 0440 sudo: /var/lib/sudo writable by non-owner (040777), should be mode 0700 [sudo] password for
user20698

@Alex:ESCはGRUBレガシーに適していますか?GRUB2の場合はShiftを押す必要があります。
レーケンシュタイン

@ user20698:前者は必要ありません。後者sudoはLive CDから行う必要があります。
レーケンシュタイン

sudoersが0777の場合、sudoersはchmod 0440 /etc/sudoers誰でも書き込み可能であるため、ユーザーはsudoなしで実行できませんか?
セッポErviälä

2
@Seppo:いいえ、ファイルの所有者のみがファイルのアクセス権を変更できます。
レーケンシュタイン

16

sudoこの状況では壊れていますが、pkexecPolicyKitのコマンドラインフロントエンド)は引き続き機能するため、1つのコマンドで修正できます。再起動する必要はありません。

pkexec chmod 0440 /etc/sudoers

これは、PolicyKitがインストールされていることを前提としています。これがデスクトップシステム(GUIのない​​サーバーではなく)である場合、そうです。


4

リカバリモードで起動し、ルートシェルを選択します。

chmod 0440 /etc/sudoers

または、再起動したくない場合は、この代替手段を使用できます。

pkexec chmod 0440 /etc/sudoers
pkexec chmod 0440 /etc/sudoers.d/README

許可が変更されます。試してみてください。


1
なぜchmodいくつかのファイルをに440、他のファイルをに送るの0440ですか?0440一律に使うべきではありませんか?そして、なぜあなた/etc/sudoers.d/READMEpkexec方法を使用するときに許可を変更しますが、そうでないのですか?そして、他の可能なファイルは/etc/sudoers.dどうですか?
エリアケイガン

1

これらのエラーを取得するために何をしましたか?

  • 行った場合:sudo chmod -R 777 /etc、これを修復するにはLive CDが必要です。

    1. ライブCDを起動して、「試してみる」を選択します
    2. Ubuntuパーティション(または、別のパーティションに/etc配置/etcした場合は含むパーティション)をマウントします。これは、Nautilusなどのファイルブラウザまたは[ 場所 ]メニューを使用して実行できます。
    3. ターミナルを開きに行くことによってアプリケーション => アクセサリ => ターミナル
    4. Ubuntuパーティションのフォルダーを決定しますls -l /media。マウントしたパーティションの内容を一覧表示するには、を使用します。それはおそらく名付けていますubuntudisk。次のステップでは、と仮定しubuntuます。
    5. ターミナルで、デフォルトで制限付きアクセス許可を設定します。

      sudo find /media/ubuntu/etc -type f -exec chmod g-wx,o-rwx {} \;
      sudo find /media/ubuntu/etc -type d -exec chmod g-w,o-rwx {} \;
      
    6. 次に、ファイルのアクセス許可を復元するための参照ポイントとしてLive CDを使用します。以下のコマンドは、Live CD上のフォルダーを参照ポイントとして/etc/media/ubuntu使用するためのファイル許可を変更します/etc。同じファイルシステム()上のファイル(-type f)とディレクトリ(-type d)のパーミッションのみを変更します-xdev。エラーが~/errors.log「ファイルが見つかりません」などのエラーに書き込まれると、システム上のファイルはインストールされているが、Live CDには見つからないことを示します。手順5のコマンドで適切なアクセス許可を設定する必要がありますが、最良の結果を得るには、パッケージを再インストールすることをお勧めします。

      cd /media/ubuntu && sudo find etc -xdev \( -type f -o -type d \) -f -exec chmod --reference=/{} {} \; 2>~/errors.log
      
    7. ~/errors.logどこかに安全になったので(http://paste.ubuntu.com/など)、アプリケーションで問題が発生した場合にこの回答にコメントとして追加できます。

1

Ubuntuでは、最初にCtrl+ Alt+ Tを打つことができます。これにより、ターミナルが開きます。その後、以下のコマンドをCtrl+でコピーCアンドペーストし、Ctrl+ Shift+ でターミナルに貼り付けVます。

pkexec chmod 0440 /etc/sudoers

0

私にとっては、私は1つの以上のステップを追加する必要がありましたpkexec提案、あたりにこの、私は私が愚かなミスをしたとき、2つのSSHセッションが起こって持って起こったことを幸運でした。

  1. 2つのターミナルを開く
  2. ターミナル2で実行echo $$してPIDを取得します
  3. pkttyagent --process PID_FROM_STEP2ターミナル2で実行
  4. ターミナル1で実行 pkexec chmod 0440 /etc/sudoers
  5. 私の場合、私も走らなければなりませんでした pkexec chown root:root /etc/sudoers
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.