EC2の破損した「sudoers」ファイル - RedHat 6.9

EC2の破損した「sudoers」ファイル - RedHat 6.9

Sudoersファイルにエラーがあるようです。

sudo
sudo: >>> /etc/sudoers: syntax error near line 56 <<<
sudo: parse error in /etc/sudoers near line 56
sudo: no valid sudoers sources found, quitting
sudo: unable to initialize policy plugin

ec2ユーザーはSSH経由でEC2に接続できますが、エラーを修正するためにsudoersファイルを編集することはできません。

「visudo」を試しました。

visudo
visudo: /etc/sudoers: Permission denied
visudo: /etc/sudoers: Permission denied

「pkexec visudo」を試しました。

pkexec visudo
Error executing command as another user: No authentication agent was found.

この時点で/ etc / sudoersファイルを回復するにはどうすればよいですか?

ありがとうございます!

答え1

これはEC2イメージであり、コンソールにアクセスできないため、Amazonサポートチームがチケットを開いてsudoersファイルを変更できることを確認する必要があります。私は次の点に備えます。 1) Amazon がお客様のリクエストを処理するのに時間がかかり、2) 問題を解決できない場合があります.どちらのシナリオにも該当する場合は、インスタンスを終了して再構築する必要があるという事実を受け入れる必要があるかもしれません。

答え2

これはEC2インスタンスなので、Amazonに連絡してチケットを開き、誰かがシングルユーザーモードに入るようにし、/ etc / sudoersファイルで誤った構文を修正する必要があります。システムを再起動する必要があるため、何もできません。

答え3

AWS EC2 インスタンスでこの問題が発生した場合は、次の/etc/sudoers手順でファイルを編集できます。私はRHEL EC2インスタンスからこの問題を修復するためにこの手順を何度も使用しました。

  1. EC2ダッシュボードを開く
  2. インスタンスを停止します。
  3. 分離されたルートボ​​リューム(例/dev/sda1)インスタンスA。
  4. 別のEC2インスタンスBにボリュームを接続する(sudo mkdir /recoversudo
  5. マウントポイントの作成とボリュームマウント(例sudo mount /dev/xvdg2 /recoversudo:)
  6. sudoersファイル/recoversudo/etc/sudoerssudo chmod 660 /recoversudo/etc/sudoers)に一時的に書き込み権限を追加します。
  7. 編集、変更、保存(sudo vi(m) /recoversudo/etc/sudoers
  8. 権限を読み取り専用に戻す(sudo chmod 440 /recoversudo/etc/sudoers
  9. sudo umount /dev/xvdg2インスタンスBでボリューム()をマウント解除する
  10. ボリュームをルートボリュームとしてインスタンスAに再接続します(例/dev/sda1:)。
  11. インスタンスAを起動するとログインできます。

関連情報