【LIVA】【Ubuntu server14.04】visudoで設定をミスってsudo化できなくなった件

 概要

crontabでシェルスクリプトを動かす際、シェルスクリプト内のsudoでパスワードを聞かれないようにvisudoを弄る必要があったのでやっていたわけだけど、凡ミスしているのに強制上書きしてしまったがためにsudoができなくなったよ /(^o^)\

 $sudo vi aaa.txt

sudo: /etc/sudoers 内 10 行付近で構文解析エラーが発生しました
sudo: no valid sudoers sources found, quitting
sudo: ポリシープラグインを初期化できません 

ちなみにやりたかったことはこちらに書いてあります。

特定ユーザー・プログラムにのみcronでのsudoをパスワード無しで許可する設定 | TeraDas-テラダス

 

さてどうする?

※2022/8/13追記

どうやら以下のコマンドを実行し、パスワードを入力することで変更することが可能なようです。(少なくともUbuntu18.04以降)

pkexec visudo

 

 

 いろいろ調べた結果、こちらが参考になりました。

ubuntuでsudoの設定変更に失敗したときの対応 - 作業ノート

 

人によってはこちらも参照になるかも(私の環境では無理でした)

/etc/sudoersがsyntax errorでsudo使えなくなった時の対処法 - tech.log

 

やることは以下の通りです。

①サーバを再起動

②再起動時のブートメニューでリカバリーモードを選択

③「network」とか「root」とかいろいろ選択できるダイアログになるが、迷わず「root」を選択

④rootユーザでプロンプトが操作できることを確認し、以下を実行

# mount -o remount,rw /

 参考サイト曰く、/配下を「書き込み可能な状態で再マウント」とのこと。

ちなみに、上記をやらないといくら編集しても上書きできません。ファイルコピーすらできません。15分ぐらいハマりました。

⑤sudoersを編集

# nano /etc/sudoers

  私はvi派ですが、viがデフォルトで何故か無かったので、nanoを使います。

ズラズラとエラーが出ましたが、気にせずEnterキーを押すことでnanoが起動します。

⑥誤っている記述を修正

⑦Ctrl+oで上書き、Ctrl+xでnanoを終了

⑧サーバ再起動

 

以上です。これでsudoが無事使えるようになりました。