flat7th

+ PAM

created 2005-01-05 modified 2005-01-05 

PAM = Pluggable Authentication Modules

  • 認証機能が必要なプログラムについて、認証方式を変更する場合でも再コンパイルしなくていいいように、必要な機能をモジュール化し、DLL(.soファイル)に実装。
  • 設定ファイルを固めて置くことで可管理性の向上を図る。
pam:1.ドキュメント
pam:2.設定ファイル
pam:3.設定ファイル書式
pam:4.モジュールのタイプ(type)と制御フラグ(control)
pam:5.モジュール

1.ドキュメント

ドキュメント備考
man pam
/usr/share/doc/pam-バージョン番号/ 以下のファイル
第8章PAM(Pluggable Authentication Modules)RedHat7のドキュメント

2.設定ファイル

場所
/etc/pam.conf
/etc/pam.d/サービス名

サービス名(service)には、一般的にクライアントプログラムの名前をつける。
例えば /etc/pam.d/wu-ftpd ではなく /etc/pam.d/ftp。
dovecotは0.99では /etc/pam.d/dovecot だが 1.0betaでは /etc/pam.d/imap 等になってる。
誰かが指摘して修正したのだろう。

3.設定ファイル書式

サービス名(service)タイプ(type)制御フラグ(control)モジュールパス(module-path)モジュール引数(module-arguments)

/etc/pam.d/サービス名 ファイルの場合、先頭のサービス名カラムは省略される。

4.モジュールのタイプ(type)と制御フラグ(control)

タイプ(type)役割
authパスワード等でそのユーザの同一性をチェックする(=認証する)
account期限切れなどをチェックする
password期限切れなどで認証前にパスワード変更が必要なときに利用
session認証後の追加タスクを実行、など

制御フラグ(control)備考
required必須。失敗通知は同一のサービス+タイプを全部チェックするまで遅延される
requisite必須。失敗すると直ちに通知
sufficient失敗してもヨシ
optional失敗してもヨシ

5.モジュール

場所
/lib/security/*.so

同一のモジュールファイル(.so)内に複数タイプの機能が実装されていることもある。