web-dev-qa-db-ja.com

無効な「/ etc / sudoers」ファイルを変更する方法は?

無効なsudoersファイルを編集するにはどうすればよいですか?以下のエラーがスローされ、再度編集して修正することはできません。

ここで何が起こるかです:

$ Sudo visudo
>>> /etc/sudoers: syntax error near line 28 <<<
Sudo: parse error in /etc/sudoers near line 28
Sudo: no valid sudoers sources found, quitting
236
YumYumYum

常にvisudoを使用してsudoersファイルを編集します。自分で直接編集しないでください。検証しない限り、ディスクに保存できません。

53
Caesium

入力する:

pkexec visudo

次に、最後の行を変更します

#includedir /etc/sudoers

に:

#includedir /etc/sudoers.d

それはあなたの問題を解決するはずです。

24
Andrej Burcev

私のような他の誰かがpkexecをインストールしていないか、vi、visudo、nanoまたはその他のエディターを実行してsudoersファイルを変更できなかった場合は、このプロセスで確認できます。これとともに:

  • リブート
  • 起動中にShiftキーを押し、回復モードのオプションを選択します(入力します)
  • ルートとしてコマンドラインを入力します(grubメニューの最後から2番目のオプション)
  • rwのブートデバイスを再マウントし、ユーザーにexec権限を適用し、ファイルを編集します

    mount -n -o remount,rw /
    chmod u+x /etc/sudoers
    nano /etc/sudoers
    

その間違いを修正して幸せになります:)

11
Kresimir Pendic

sudoersファイルを台無しにした場合、次のことを行う必要があります。

  • 復旧モードで再起動します(起動中にエスケープをヒットし、grub画面で復旧モードオプションを選択します)
  • 「ネットワークを有効にする」オプションを選択します(ファイルシステムが読み取り専用としてマウントされない場合)。
  • 「ルートシェルにドロップ」オプションを選択します
  • visudoを実行し、ファイルを修正します
  • 通常のgrubオプションで再起動します

ソース: http://mario.net.au/content/recover-etcsudoers-ubuntu-1204

7
streak

#include sudoer.dを削除しても、#include sudoer.dを削除しても違いはありません。

ただし、構文エラーがないことを確認してください。私は同じ問題を抱えていましたが、修正に何時間も費やし、それらが構文エラーであることを理解しました。マニュアルを参照して、正しく作成してください。

たとえば、ユーザー名は次のようになります。

 dolly ALL = (ALL) ALL NO PASSWD: ALL

正しい構文は

dolly ALL = (ALL) ALL //give permission to everything, not good

または

dolly ALL=(ALL) NOPASSWD:/usr/bin/thurderbird //good, give specific permission

お役に立てれば

6
Thusitha Nuwan

ttyコンソールでrootとしてログインすることもできます Ctrl+Fn (Fn 1から6まで)visudoを実行します。

3
magisterludi

回復モードを実行して、これを入力します

chown -R root:root /etc/sudoers.d
chmod u = rwx、g = rx、o = rx /etc/sudoers.d/
chmod u = r、g = r、 o = /etc/sudoers.d/*

グループとユーザールートのみが読み取り権限を持っている必要があります

3
kosaidpo
pkexec visudo

間違いを元に戻す

2
Bhavesh Gabani

Grubでブートエントリを編集することもできます。

PCを再起動し、grubが表示されるのを待ちます。次に、「Ubuntu」エントリで「e」を押して編集します。

「linux =」または「kernel =」の行を探し、その行の最後に「単一」を追加します。

次に、F10を押して、この一時的に変更されたブートエントリを起動します。これにより、root権限を持つシェル(GUIなし)が提供され、s.thを使用してsudoersファイルを編集できます。 nano/etc/sudoersのように、以前の状態に戻ります。

その後、再起動して完了です。

2
Markus Ressel

VirtualBoxで実行されているUbuntu 16.04(違いはありません)では、上記の方法は機能しませんでした(ファイルの最後の無効な行)。うまくいったのは:

  1. VirtualBoxを再起動します
  2. コンソールでユーザー名とパスワードの入力を求められるまで、通常どおり起動します。
  3. ユーザー名で通常ログイン
  4. 次に、コンソールが表示されたら(ボックスがGUIで起動しない場合)、コマンドsu -を入力してから、独自のユーザー名のパスワードを入力します。
  5. root@ubuntu-xenial:~#が壊れていたり空になっていなければ、/etc/sudoersプロンプトが表示されるはずです。その場合に何が起こるかわからない。
  6. 次に、visudoを実行して、ファイルを修正します。
  7. 次にCtrl + Xと変更されたバッファを保存するように求められます。 YおよびEnterを押します
  8. ボックスを再起動すると、すぐに動作するはずです。

/etc/sudoersが空であるか何かが欠落しており、それを編集できる場合、ここに私の内容を示します。

Defaults env_reset
Defaults mail_badpass
Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin"

root ALL=(ALL:ALL) ALL

%admin ALL=(ALL) ALL

%Sudo ALL=(ALL:ALL) ALL
0
Juha Untinen

良い習慣:バックアップ端末ウィンドウを開き、Sudo suを実行します。別の端末でvisudoまたはSudo vim/etc/sudoersを実行します。問題が発生した場合は、ターミナル1に戻ってファイルを修正します。 1つの端末でvisudoの前にSudo suを実行してみませんか?これも機能しますが、知らないうちに端末を閉じるリスクが高くなります。

0
biocyberman