ある時、Azure VMでsudo ls
したらsudo: parse error
エラーが
どうやら/etc/sudoers.d/user(sudoersファイル)の修正ミスでsyntax errorとなっていてsudoできなくなっていました・・・
対処法
# ブラウザからログイン
az login
az vm run-command invoke -g [リソースグループ名] -n [VM名] --command-id RunShellScript --scripts "rm -rf /etc/sudoers.d/user"
あとは必要に応じておかしくなる前の /etc/sudoers.d/user
を復元してください。
sudoersファイルを編集できる権限が消えちゃったときはVMコンソール
- パスワードのリセット
から復旧用のユーザを作成して作業すると良さそうです。
感想
とっても簡単でビックリ。
AWSで同じ問題が発生した際(どちらも私がやったんじゃないよ・・・)はdiskを別のVMにマウントしなおしてゴニョゴニョしたんですが、Azureはそれよりもさらに簡単に対応できました。