PAM によるユーザ認証では、 auth, account, session の3つの型すべてで成功する必要があります。
auth で認証、account でユーザ確認を行い、session で記録などを行います。
password は、パスワード変更の時のみ使用されるようです
●モジュールタイプ
・auth ユーザ認証
・account ユーザの状態確認
・password パスワードの設定と変更
・session ロギングとかマウントとか
●コントロール
・sufficient 十分条件(OK→即時、認証OK)
・required 必要条件(NGなら同じモジュールタイプの完了を待って認証失敗)
・requisite 必須条件(NG→即時、認証NG)
・optional オプション(この判定は基本無視され、他に判定するものがない場合この判定が採用される)
・include ファイルの読み込み
・substack ファイルの読み込み
●モジュールパス
pam_unix.so 通常のパスワード認証、パスワード期限などの確認
pam_deny.so 認証に対し、常にNGを返す
pam_permit.so 常に成功を返す
pam_nologin.so /etc/nologinファイルがあれば一般ユーザのログインを拒否する
pam_rootok.so rootユーザであれば成功する
pam_securetty.so /etc/securettyに記載された端末のみrootログインを許可する
pam_wheel.so root権限でのアクセスをwheelのみに制限する
pam_limits.so リソース制限
pam_warn.so 認証時とパスワード変更時にロギング(/var/log/secure?)
pam_env.so /etc/security/pam_env.confにある環境変数をセットする
pam_cracklib.so ユーザが指定したパスワードが条件に適合しているかチェックする
pam_succeed_if.so ユーザの判定条件を指定する
pam_xauth.so
pam_time:「/etc/security/time.conf」ファイルに記述された曜日および現在時刻に基づき、サービスへのアクセスを制限できる。
pam_access:「/etc/security/access.conf」ファイルに記述されたルールに基づき、アクセスを許可または拒否する。ユーザがログインを試みるたびに、ルールのスキャンが順次行われ、最初にマッチしたルールに基づいて承認または拒絶が行われる。同じようなことはpam_succeed_ifでも可能だが、こちらは特定のグループへの所属など、特定の望ましいアカウント特性のチェックに使われる。
pam_listfile:ファイルの内容に基づいてサービスを許可または拒否する、また別の手段。たとえば、承認済みユーザのリストを作成して(「/etc/ssh_users」とする)sshdアクセスを制限するには、「/etc/pam.d/sshd」ファイルに「auth required pam_listfile.so item=user sense=allow file=/etc/ssh_users onerr=fail」と記述すればよい。
pam_echoおよびpam_motd:ユーザに対してメッセージを表示できる。前者は任意のファイルの表示に対応し、後者は「MOTD(Message Of The Day)」ファイルを表示する。同様に、pam_lastlogはそのユーザによる前回のログインの日時を表示し、pam_mailは新着メールの有無を通知する。
pam_cracklibおよびpam_pwcheck:パスワードの安全性をチェックすることができる(次ページを参照)。
↓例
[root@ora12ee01 pam.d]# cat /etc/pam.d/su
#%PAM-1.0
auth sufficient pam_rootok.so
↑実行ユーザがrootならauthはOK
auth required pam_wheel.so use_uid
↑実行ユーザがwheelグループならOK、違うならauthが完了した時点でNG
auth substack system-auth
auth include postlogin
account sufficient pam_succeed_if.so uid = 0 use_uid quiet
account include system-auth
password include system-auth
session include system-auth
session include postlogin
session optional pam_xauth.so