無効な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
常にvisudo
を使用してsudoersファイルを編集します。自分で直接編集しないでください。検証しない限り、ディスクに保存できません。
入力する:
pkexec visudo
次に、最後の行を変更します
#includedir /etc/sudoers
に:
#includedir /etc/sudoers.d
それはあなたの問題を解決するはずです。
私のような他の誰かがpkexecをインストールしていないか、vi、visudo、nanoまたはその他のエディターを実行してsudoersファイルを変更できなかった場合は、このプロセスで確認できます。これとともに:
rwのブートデバイスを再マウントし、ユーザーにexec権限を適用し、ファイルを編集します
mount -n -o remount,rw /
chmod u+x /etc/sudoers
nano /etc/sudoers
その間違いを修正して幸せになります:)
sudoers
ファイルを台無しにした場合、次のことを行う必要があります。
visudo
を実行し、ファイルを修正しますソース: http://mario.net.au/content/recover-etcsudoers-ubuntu-1204
#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
お役に立てれば
tty
コンソールでrootとしてログインすることもできます Ctrl+Fn (Fn 1から6まで)visudo
を実行します。
回復モードを実行して、これを入力します
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/*
グループとユーザールートのみが読み取り権限を持っている必要があります
pkexec visudo
間違いを元に戻す
Grubでブートエントリを編集することもできます。
PCを再起動し、grubが表示されるのを待ちます。次に、「Ubuntu」エントリで「e」を押して編集します。
「linux =」または「kernel =」の行を探し、その行の最後に「単一」を追加します。
次に、F10を押して、この一時的に変更されたブートエントリを起動します。これにより、root権限を持つシェル(GUIなし)が提供され、s.thを使用してsudoersファイルを編集できます。 nano/etc/sudoersのように、以前の状態に戻ります。
その後、再起動して完了です。
VirtualBoxで実行されているUbuntu 16.04(違いはありません)では、上記の方法は機能しませんでした(ファイルの最後の無効な行)。うまくいったのは:
su -
を入力してから、独自のユーザー名のパスワードを入力します。root@ubuntu-xenial:~#
が壊れていたり空になっていなければ、/etc/sudoers
プロンプトが表示されるはずです。その場合に何が起こるかわからない。visudo
を実行して、ファイルを修正します。Ctrl + X
と変更されたバッファを保存するように求められます。 Y
およびEnter
を押します/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
良い習慣:バックアップ端末ウィンドウを開き、Sudo su
を実行します。別の端末でvisudoまたはSudo vim/etc/sudoersを実行します。問題が発生した場合は、ターミナル1に戻ってファイルを修正します。 1つの端末でvisudo
の前にSudo su
を実行してみませんか?これも機能しますが、知らないうちに端末を閉じるリスクが高くなります。