7
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

CentOSで正しいパスワードを入力してもログインできない原因と解決 ― PAM + 64bit Linux + パス不整合で起きる典型的トラブル ―

Posted at

発生した事象

CentOS 環境において、以下の問題が発生した。

  • 正しいユーザー名・パスワードを入力している
  • 認証エラーは表示されない
  • にもかかわらず ログインできない(ログイン直後に弾かれる)

対象は主に コンソールログイン(TTYログイン)
SSHログインも同様の影響を受ける可能性がある。


まず行った対処:シングルユーザーモードでの復旧

ログインできないため、通常の手段では調査ができない。
そのため、シングルユーザーモードで起動し、root権限で環境に入る。

手順

  1. サーバー起動時、GRUB画面で e キーを押す

  2. 起動エントリの編集画面で 2番目の行を選択し、再度 e

  3. 行末に以下を追加

    1
    
  4. Enterで保存し、b キーで起動

これにより **シングルユーザーモード(rootログイン)**で起動できる。


原因調査:PAM設定ファイルの確認

シングルユーザーモードでログイン後、
PAM(Pluggable Authentication Modules)の設定を確認した。

対象ファイル

/etc/pam.d/login

問題のある設定

session required /lib/security/pam_limits.so

問題点の本質

この環境は 64bit Linux であるにもかかわらず、

  • PAMが 32bit用ディレクトリ /lib/security を参照している
  • 実際のライブラリは /lib64/security/pam_limits.so に存在する

その結果:

  • 認証(auth)は通過
  • session 初期化で失敗
  • ログインが完了せず失敗する

という非常に分かりづらい挙動になる。


解決策:PAM設定の修正

修正内容

以下の行を修正する。

- session required /lib/security/pam_limits.so
+ session required /lib64/security/pam_limits.so

行が存在しない場合

最終行に以下を追加する。

session required /lib64/security/pam_limits.so

保存後、再起動する。

shutdown -r now

結果

  • 正しいパスワードで正常にログイン可能
  • コンソールログイン/SSHログインともに復旧

なぜ「CentOSの問題」として知られているのか

この問題はよく 「CentOSで発生するログイン不可トラブル」 として紹介されるが、
CentOS固有の不具合ではない

背景

  • CentOS 6 / 7 世代では

    • /lib/lib64 の使い分けが明確
    • 古い設定ファイルが残りやすい
  • 以下のようなケースで発生しやすい

    • 32bit → 64bit 環境への移行
    • 古い手順書の流用
    • minimal install 後の手動設定
    • 設定ファイルのコピー流用

本質的な原因:PAM + 64bit Linux + パス不整合

この事象は、以下3条件が揃ったときに発生する。

  1. PAMを利用している
  2. 64bit Linux環境
  3. PAM設定で誤ったライブラリパスを参照している

👉 つまり、

PAM + 64bit Linux + パス不整合による一般的な構成トラブル

である。


他ディストリビューションでも起こり得るか?

OS 発生可能性
CentOS 6 / 7 高い
RHEL 6 / 7 高い
Amazon Linux 1 あり
Rocky / AlmaLinux 低い(初期状態ではほぼ起きない)
Ubuntu / Debian 低い(構成が異なる)

※ OSというより 世代・移行履歴・手動設定の有無 が重要。


参考:ログで確認できる兆候

以下のようなログが /var/log/secure に出力される場合がある。

PAM unable to dlopen(/lib/security/pam_limits.so)

ログインできないがパスワードは正しい、という場合は
PAMのsession設定を疑うのが有効。


まとめ

  • 正しいパスワードでもログインできない原因は PAMのsession失敗
  • 原因は 64bit環境でのライブラリパス不整合
  • CentOS特有ではなく、RHEL系Linux全般で起こり得る
  • /etc/pam.d/login(および sshd)の確認は必須

おわりに

ログイン不可系のトラブルは焦りやすいが、
「認証は通るが session で落ちる」ケースを知っていると切り分けが一気に楽になる。

同様の構成を扱う方の参考になれば幸いです。

7
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?