事象:
/etc/sudoers をvisudoを使用しないでviで編集してsyntaxエラーがあったためsudoコマンドが使用不可に。sudoersも編集できなくなって詰んだ
環境:
oracle cloud infrastructure ubuntu@20.0.4
public subnet
作業の流れ:
当該インスタンスからboot volume をデタッチ
同一アヴァイラビリティーゾーン内の別のインスタンスにvolumeをアタッチ
アタッチしたインスタンスでsudoersを修正
volumeをデタッチ
元のインスタンスにroot volumeとしてアタッチ
詳細:
該当インスタンスを停止後、インスタンス→リソース内ブートボリューム→右端のメニューバーからデタッチを選択
別インスタンス→リソース→リソース内ブロックボリューム→ブロックボリュームのアタッチ
アタッチメントタイプは準仮想化を選択
ref
アタッチされたボリュームをマウントする
sdbがアタッチしたボリュームなので /mnt ディレクトリにマウント
2回目の df -h で /mnt にマウントされたことを確認
/mnt/etc/sudoersを修正(接続したインスタンスのsudoersで上書き)
sudo cp /etc/sudoers /mnt/etc/sudoers
sudo unmount /mnt
障害が発生した元のインスタンスにboot volume としてアタッチ
同一コンパートメント内でないとアタッチできないことに注意
該当インスタンス→リソース内ブートボリューム→右端メニューからブートボリュームのアタッチ
これでsudoが使用可能に回復
sudoersを編集するときは必ずvisudoを使用すること。
ref: