ルートアカウントなどの重要なシステムユーザーがLinux Elastic Compute Service (ECS) インスタンスに存在しない場合、インスタンスに接続できない場合があります。 インスタンスのヘルス診断機能を使用して、トラブルシューティングを実行できます。
前提条件
Linux ECSインスタンスは起動できず、インスタンスのヘルス診断機能によって診断されます。 診断レポートは、インスタンスのルートアカウントがヘルスチェックに失敗したことを示しています。
背景情報
問題の説明: Linuxオペレーティングシステムでは、/etc/passwdファイルにはシステム上のすべてのユーザーの基本情報が含まれ、/etc/shadowファイルにはユーザーのパスワード情報が含まれます。 ルートアカウントのユーザー名やパスワードなど、重要なシステムユーザーの情報がLinux ECSインスタンスのファイルにない場合、インスタンスに接続できません。
解決方法: /etc/passwdおよび /etc/shadowファイルを復元します。 また、システム上のグループの基本情報と、ユーザーとグループの関係に関する情報を含む /etc/groupファイルを復元する必要があります。
手順
システムユーザーの正しい情報を含む参照構成ファイルを準備します。
重要なシステムユーザーはLinuxディストリビューションによって異なり、Linux ECSインスタンスを使用したときにシステムユーザーが作成された可能性があります。 重要なシステムユーザーの情報がLinux ECSインスタンスにないという問題を解決するには、Linuxディストリビューションに基づいて操作を実行します。
正常なLinux ECSインスタンスの設定ファイルを取得することを推奨します。 構成ファイルにはシステムユーザーの正しい情報が含まれており、トラブルシューティングの参照ファイルとして使用できます。 正常なLinux ECSインスタンスと障害のあるLinux ECSインスタンスが同じLinuxディストリビューションを使用し、同じソフトウェアでインストールされていることを確認します。 正常なLinux ECSインスタンス上の必要な設定ファイルへのパス:
/etc/passwd
/etc/shadow
/etc /group
正常なLinux ECSインスタンスの設定ファイルにシステムユーザーの正しい情報を表示したり、設定ファイルをコンピューターにダウンロードしたりできます。 次の例では、CentOS 7.5を実行するECSインスタンスが使用されています。 設定ファイルのサンプル:
/etc/passwd
root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin adm:x:3:4:adm:/var/adm:/sbin/nologin lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin sync:x:5:0:sync:/sbin:/bin/sync shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown halt:x:7:0:halt:/sbin:/sbin/halt mail:x:8:12:mail:/var/spool/mail:/sbin/nologin operator:x:11:0:operator:/root:/sbin/nologin games:x:12:100:games:/usr/games:/sbin/nologin ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin nobody:x:99:99:Nobody:/:/sbin/nologin systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin dbus:x:81:81:System message bus:/:/sbin/nologin polkitd:x:999:998:User for polkitd:/:/sbin/nologin sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin postfix:x:89:89::/var/spool/postfix:/sbin/nologin chrony:x:998:996::/var/lib/chrony:/sbin/nologin ntp:x:38:38::/etc/ntp:/sbin/nologin tcpdump:x:72:72::/:/sbin/nologin nscd:x:28:28:NSCD Daemon:/:/sbin/nologin/etc/shadow
root:$6$Q9lA****/t1KPM$JLqO59UTxwGm****/rU7bHL0q5TVAij****/KeWAWPiO.6booVwpp7rdR9****.irQ6nso3YGVSqQqpyT****.:18668:0:99999:7::: bin:*:17632:0:99999:7::: daemon:*:17632:0:99999:7::: adm:*:17632:0:99999:7::: lp:*:17632:0:99999:7::: sync:*:17632:0:99999:7::: shutdown:*:17632:0:99999:7::: halt:*:17632:0:99999:7::: mail:*:17632:0:99999:7::: operator:*:17632:0:99999:7::: games:*:17632:0:99999:7::: ftp:*:17632:0:99999:7::: nobody:*:17632:0:99999:7::: systemd-network:!!:17864:::::: dbus:!!:17864:::::: polkitd:!!:17864:::::: sshd:!!:17864:::::: postfix:!!:17864:::::: chrony:!!:17864:::::: ntp:!!:17864:::::: tcpdump:!!:17864:::::: nscd:!!:17864::::::/etc /group
root:x:0: bin:x:1: daemon:x:2: sys:x:3: adm:x:4: tty:x:5: disk:x:6: lp:x:7: mem:x:8: kmem:x:9: wheel:x:10: cdrom:x:11: mail:x:12:postfix man:x:15: dialout:x:18: floppy:x:19: games:x:20: tape:x:33: video:x:39: ftp:x:50: lock:x:54: audio:x:63: nobody:x:99: users:x:100: utmp:x:22: utempter:x:35: input:x:999: systemd-journal:x:190: systemd-network:x:192: dbus:x:81: polkitd:x:998: ssh_keys:x:997: sshd:x:74: postdrop:x:90: postfix:x:89: chrony:x:996: ntp:x:38: tcpdump:x:72: nscd:x:28:
障害のあるLinux ECSインスタンスに接続します。
修復ディスクがECSインスタンスに接続されている場合、仮想ネットワークコンピューティング (VNC) のみを使用してインスタンスに接続できます。 詳細については、「VNCを使用したインスタンスへの接続」をご参照ください。
障害のあるECSインスタンスの元のシステムディスクのマウント情報を表示します。
ECSインスタンスに一時的にアタッチされた修復ディスクでは、インスタンスの元のシステムディスクのファイルシステムが一時ディレクトリにマウントされます。 次のいずれかの方法を使用して、一時ディレクトリを表示できます。
元のシステムディスクのディスク詳細ページの [関連インスタンス] セクションで、一時ディレクトリを表示します。 例:
/tmp/ecs-offline-diagnose_disk-bp19bspzms79kqse ****bp19bspzms79kqse ****は、ECSインスタンスの元のシステムディスクのシリアル番号です。修復ディスクでmountコマンドを実行して、一時ディレクトリを表示します。 たとえば、障害のあるECSインスタンスの元のシステムディスクのデバイス名が /dev/vdaの場合、次のコマンドを実行します。
mount | grep /dev/vda次のコマンド出力が返されます。
/dev/vda1 on /tmp/ecs-offline-diagnose_disk-bp19bspzms79kqse**** type ext4 (rw,relatime)
を実行します。Run thechrootコマンドを実行して、ルートディレクトリを障害のあるECSインスタンスの元のシステムディスクがマウントされている一時ディレクトリに変更し、chroot環境。
構成ファイルを復元するには、元のシステムディスクが存在する一時ディレクトリに移動する必要があります。 たとえば、一時ディレクトリが /tmp/ecs-offline-diagnose_disk-bp19bspzms79kqse **** の場合、次のコマンドを実行します。
chroot /tmp/ecs-offline-diagnose_disk-bp19bspzms79kqse****chroot環境で、次のコマンドを実行して /etc/passwdおよび /etc/shadowファイルをバックアップします。
cp /etc/passwd /etc/passwd.bak cp /etc/shadow /etc/shadow.bakで不足している情報を補足/etc/passwdファイルを作成します。
ECSコンソールで、ECSインスタンスの正常性診断レポートを表示して、重要なシステムユーザーのどの情報が欠落しているかを判断します。
参照では/etc/passwdファイルを作成し、重要なシステムユーザーの前述の欠落情報を含む行を見つけて、その行をコピーします。
コピーした行をの正しい位置に貼り付けます。/etc/passwdファイル内のchroot環境。
説明VNCのみを使用して、修復中のECSインスタンスに接続できます。 コピーした情報を貼り付けるには、VNCログオンインターフェイスの左上隅にあるをクリックし
ます。 /etc/passwdファイルのデータ形式の説明:
ユーザー情報のサンプル行:
postfix:x:89:89::/var/spool/postfix:/sbin/nologinユーザー情報の各行は、コロン (:) で次の形式の7つのセグメントに区切ります。
<Username>:<Password>:<UID>:<GID>:<User description>:<Home directory>:<Logon shell>ユーザー情報を貼り付けた後、貼り付けた情報を確認します。
貼り付けた
UIDは、ファイル内の他のユーザーのUIDとは異なる必要があります。貼り付けられた
GIDは、chroot環境の /etc/groupファイルに含まれている必要があります。 貼り付けられたGIDがchroot環境の /etc/groupファイルに含まれていない場合は、貼り付けられたGIDを含む行を参照 /etc/groupファイルからchroot環境の /etc/groupファイルにコピーします。 コピーされたGIDが、chroot環境の /etc/groupファイル内の他のユーザーのGIDと異なることを確認します。例:
貼り付けられた
GIDが89で、chroot環境の /etc/groupファイルにGIDが含まれている場合、chroot環境の /etc/groupファイルを変更する必要はありません。貼り付けられた
GIDが89で、chroot環境の /etc/groupファイルにGIDが含まれていない場合は、参照 /etc/groupファイルのGIDを含む行をchroot環境の /etc/groupファイルにコピーします。 コピーされたGIDが、chroot環境の /etc/groupファイル内の他のユーザーのGIDと異なることを確認します。
参照 /etc/groupファイルの設定が、情報がコピーされたグループとユーザー間の関係を示す場合、chroot環境の /etc/groupファイルに設定をコピーする必要があります。
たとえば、chroot環境の /etc/passwdファイルに
postfixユーザーの情報がない場合は、参照ファイル /etc/passwdおよび /etc/groupからコピーした対応する情報を補足します。 参照 /etc/groupファイルのmail:x:12:postfixなどの設定で、postfixユーザーがmailグループのメンバーであることが示されている場合は、chroot環境の /etc/groupファイルにも設定をコピーする必要があります。
不足している情報を補足/etc/shadowファイルを作成します。
ECSコンソールで、ECSインスタンスの正常性診断レポートを表示して、重要なシステムユーザーのどの情報が欠落しているかを判断します。
参照では/etc/shadowファイルを作成し、重要なシステムユーザーの前述の欠落情報を含む行を見つけて、その行をコピーします。
コピーした行をの正しい位置に貼り付けます。/etc/shadowファイル内のchroot環境。
説明VNCのみを使用して、修復中のECSインスタンスに接続できます。 コピーした情報を貼り付けるには、VNCログオンインターフェイスの左上隅にあるをクリックし
ます。 chroot環境で /etc/shadowファイルに情報がない場合は、ファイルを変更する必要はありません。
chroot環境を終了し、障害のあるECSインスタンスのステータスを確認します。
終了コマンドを実行します。chroot環境。
ECSコンソールの [トラブルシューティング] ページに移動し、ページ下部の [履歴の表示] をクリックします。 [インスタンスの正常性診断] タブで、ECSインスタンスから修復ディスクをデタッチし、インスタンスを起動します。
ECSインスタンスに接続し、インスタンスに接続していることを確認します。
その他のソリューション
障害のあるECSインスタンスを修復するには、障害のあるECSインスタンスのシステムディスクを正常なECSインスタンスにアタッチします。 詳細については、次をご参照ください: キーシステムユーザーがLinuxインスタンスに存在しません。