PAM unable to dlopen(/lib/security/pam_fprintd.so): /lib/security/pam_fprintd.so:

■環境

CentOS6

■事象

suコマンドを実行するログが溜まっていく。

・/var/log/secure

centos6 su: pam_unix(su-l:session): session closed for user root
centos6 su: PAM unable to dlopen(/lib/security/pam_fprintd.so): /lib/security/pam_fprintd.so: 
共有オブジェクトファイルを開けません: そのようなファイルやディレクトリはありません
centos6 su: PAM adding faulty module: /lib/security/pam_fprintd.so
centos6 su: pam_unix(su-l:session): session opened for user root by USER(uid=500)

■原因

Red Hat Bugzilla – Bug 505266
https://bugzilla.redhat.com/show_bug.cgi?id=505266
ステータスは、CLOSED NOTABUGとなっているが、個人的にはOS導入時のauthconfig初期設定の障害と考える。

CentOS6(RHELも?)では、認証設定として指紋認証が有効となっているが、OSを最小構成でインストールすると指紋認証用のパッケージ(fprintd-pam)がインストールされていないためこの事象が起こる。
「Server-GUI」でOSをインストールした場合は、「fprintd-pam」パッケージが導入されているため、この事象は発生しない。もちろん指紋認証も有効になっているけど。

ということで、原因は以下と考える。

  • OS最小構成インストール時に「fprintd-pam」パッケージが漏れている
  • authconfig初期設定に誤りがある

■解決策

VMで動作しており、指紋認証機器もないので「fprintd-pam」の導入はしない。
authconfigを修正し、指紋読み取りを使用しないように設定。
authconfig-tuiで、「指紋読み取りを使用する」のチェックを外す。
または、「authconfig --disablefingerprint --update」を実行する。


「fprintd-pam」の入れ忘れを原因として「fprintd-pam」をインストールすると、依存関係によりdbus、gtk2、libX11など最小構成でインストールしたのに必要のないパッケージを約30MB導入することになる。大した容量ではないがメンテに影響がでそうなので入れない。
OSを最小構成でインストールしてかつ指紋認証が必要な環境の場合はインストールが必要かと。