問題の説明:
/ etc/sudoersファイルにタイプミスを入れて壊れました。次のエラーがスローされるので、Sudoコマンドを使用できなくなりました。そのため、sudoersファイルを修正できず、効率的にスタックしています。
$ Sudo nano /etc/sudoers
>>> /etc/sudoers: syntax error near line 39 <<<
Sudo: parse error in /etc/sudoers near line 39
Sudo: no valid sudoers sources found, quitting
私は明らかに回避したい回復モード(以下のようなもの)で起動する必要があるといういくつかの解決策を見つけました。
buntu:sudoersファイルを作成しました。どうすれば修正できますか?
質問:
-ubuntuを再起動せずに修正する他の方法はありますか?
-sudoersファイルを変更するときに誰もがSudoからロックアウトするのが簡単な場合(誰もがタイプミスをすることができます)、なぜsudoers構成がファイルではなくメモリから直接読み取られないのですか?構成をメモリにロードする前に構文に問題がないことを確認するコマンド(例:Sudo-load)があるため、この種の問題は回避されます。
ソリューション:
それを回復するには2つの方法があるようです:
-rootパスワードをお持ちの場合は、 'su'を発行してファイルを編集するだけです
-rootパスワードがない場合は、シングルユーザーモードで再起動する必要があります
いいえ、ルートログインを許可する場合は、再起動するか、ルートとしてログインする必要があります。
これが、sudoersファイルを変更するときに常にvisudo
を使用する必要がある理由です。 visudoは、保存する前にSudoファイルの構文をチェックし、この特定の問題からユーザーを保護します(ただし、Sudoの実行を許可しないsudoersファイルを作成することはありません!)
Sudoersは通常、Ubuntuのrootでも書き込みできないように設定されています。
-r--r----- 1 root root 556 2010-04-18 15:05 sudoers
したがって、sudoerのアクセス権を変更してnanoで変更する必要があります。ファイルがこのように設定されているのには非常に良い理由があります。 rootが書き込めないファイルを見つけた場合は、アクセス権を変更して編集を始める前に、1、2、3回考える必要があります。