起こったこと
ある日ec2インスタンス内で sudo visudo
コマンドを実行すると、、、
sudo: >>> /etc/sudoers: syntax error near line 93 <<<
sudo: parse error in /etc/sudoers near line 93
sudo: no valid sudoers sources found, quitting
sudo: unable to initialize policy plugin
と言われ、sudoコマンドが実行できなくなってしまいました。
原因
/etc/sudoers
を修正した時にsyntax errorを起こしてしまい開けなくなってしまった
解決方法
〜方針〜
新しくec2インスタンスを作成
↓
新しく作成したec2インスタンスに対象ec2インスタンスのEBSをマウント
↓
sudoersを修正
↓
EBSを元のec2インスタンスに戻す
1, 対象のec2インスタンスを停止する

2, 停止したインスタンスのEBS(ELASTIC BLOCK STORE)をデタッチ


3, 新しく別のec2インスタンスを生成し、そのインスタンスに先ほどデタッチしたEBSをアタッチ

4, 新しく生成したインスタンスに入りアタッチしたEBSをマウント
ec2インスタンスにログイン
ssh -i { pemファイルディレクトリ } ec2-user@YY.YYY.YY.YYY
今回マウント先は /mnt/vol
としたいと思います
# /mnt/volディレクトリを作成
sudo mkdir /mnt/vol
# EBSをマウント
sudo mount /dev/xvdf1 /mnt/vol
5, sudo vim /mnt/vol/etc/sudoers
で sudoers を修正
6, マウントしたEBSをアンマウント
# EBSをアンマウント
sudo umount /mnt/vol
7, 先ほどデタッチしたEBSを元のec2インスタンスにアタッチ
8, 最初に停止したec2インスタンスを起動
以上で作業完了です
参考文献
https://serverfault.com/questions/392977/broke-my-etc-sudoers-file-on-amazon-ec2
https://casualdevelopers.com/tech-tips/how-to-fix-ssh-problem-to-ec2/