【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が無事使えるようになりました。