root アカウントがロックされてログインできないときの復旧方法

  • URLをコピーしました!
目次

エラーの概要

Linux サーバで root アカウントにログインできない場合、アカウント自体が ロック状態 になっている可能性があります。
これはセキュリティ上の理由や、管理者が意図せず設定を変更した場合に発生します。

代表的な症状:

  • SSH で Permission denied が出る
  • root でログインしようとすると拒否される
  • /etc/shadow において root のパスワード欄が ! または * になっている

主な原因

  1. root アカウントが ロックされている
    • /etc/shadow で root の行が ! または * で始まっている場合
    • passwd -S rootL(locked)が表示される場合
  2. root のパスワードが期限切れ・無効化されている
  3. セキュリティ設定(PAM、fail2ban など)によるログイン制限

解決方法

1. root アカウントのロック解除

管理者権限のある別ユーザーでログインできる場合、以下のコマンドで root アカウントをアンロックできます。

sudo passwd -u root

状態を確認するには:

sudo passwd -S root

出力例:

root P 09/27/2025 0 99999 7 -1 (Password set, MD5 crypt.)

L(Locked)が表示されなければ解除済みです。

2. シングルユーザーモードで復旧する

もし root 以外のユーザーでもログインできない場合は、サーバを シングルユーザーモード(rescue モード) で起動して修復します。

(1) 起動時に GRUB メニューを表示

  • サーバを再起動
  • GRUB メニューで対象カーネルを選び、e キーを押す

(2) 起動オプションを編集

  • linux16 または linux 行の末尾に以下を追記: systemd.unit=rescue.target
  • Ctrl + X で起動

(3) root パスワードを再設定

シングルユーザーモードに入ったら以下を実行:

passwd root
passwd -u root

その後 reboot で通常起動に戻します。

3. PAM やセキュリティツールの影響を確認

  • /etc/pam.d/sshd に root ログイン制限が書かれていないか確認
  • fail2ban で root が一時的に BAN されていないか確認

SSH 経由での root ログインは推奨されないため、必要に応じて PermitRootLoginyes にする設定も確認します。

まとめ

  • root アカウントがロックされていると、ログインできなくなる
  • passwd -u root でアンロック可能
  • ログインできるユーザーがいない場合は、シングルユーザーモードで復旧
  • 併せて PAM 設定や fail2ban などのセキュリティ設定も確認することが重要
よくあるエラーと解決方法まとめ
目次