名称
pam_sm_acct_mgmt ― pam_acct_mgmt のためのサービスプロバイダの実現
構文
cc [ flag ... ] file ... -lpam [ library ... ]
#include <security/pam_appl.h>
#include <security/pam_modules.h>
int pam_sm_acct_mgmt(pam_handle_t
*pamh, int flags, int argc,
const char **argv);
説明
pam_acct_mgmt(3) への呼び出しに応えて、
PAM フレームワークは pam.conf(4) ファイルにリストされたモジュールから pam_sm_acct_mgmt() を呼び出します。アカウント管理プロバイダは、このインタフェース関数のバックエンド機能を提供します。アプリケーションは、この
API を直接呼び出してはなりません。
関数 pam_sm_acct_mgmt() は、現在のユーザーのアカウントおよびパスワードが有効かどうかを判別します。パスワードおよびアカウントの期限のチェック、有効なログイン時間などが含まれます。対象ユーザーは以前に呼び出した pam_start() で指定され、認証ハンドル pamh で参照されます。認証ハンドルは pam_sm_acct_mgmt() への最初の引き数として渡します。 flags フィールドには以下のフラグを設定できます。
| PAM_SILENT | | アカウント管理サービスのメッセージ作成を禁止します。 |
| PAM_DISALLOW_NULL_AUTHTOK |
| | | ユーザーの認証トークンがヌルの場合、アカウント管理サービスは PAM_AUTHTOKEN_REQD を返さなければなりません。 |
argc 引き数は、構成ファイル pam.conf(4) から渡されるモジュールオプションの数を示します。 argv は、モジュールオプションを指定します。モジュールオプションはアカウント管理サービスにより解釈され、処理されます。使用できるさまざまな options については、特定のモジュールのマンページを参照してください。モジュールに未知のオプションが渡された場合、 syslog(3C) によりエラーが記録され、このオプションは無視されなければなりません。
アカウント管理モジュールは、ユーザーのパスワードが古い、または期限切れであると判別した場合、 pam_set_data() を使って、認証ハンドル pamh にこの情報を状態として保存しなければなりません。 pam_chauthtok() は、この情報を使って期限切れのパスワードを判別します。
アプリケーション使用法
PAM インタフェースのスレッドへの対応状況については、 pam(3) を参照してください。
戻り値
ログインが制限されない場合、 PAM_SUCCESS が返されます。エラーが発生すると、以下のエラー値が返されることもあります。
| PAM_USER_UNKNOWN |
| | | 基底の認証モジュールがユーザーを認識できません。 |
| PAM_AUTHTOKEN_REQD |
| | | 新しい認証トークンが必要です。 |
| PAM_ACCT_EXPIRED |
| | | ユーザーアカウントが期限切れです。 |
| PAM_PERM_DENIED | | ユーザーは現時点でアカウントへのアクセスを拒否されました。 |
| PAM_IGNORE | | 制御フラグが required, optional , sufficient のどれであるかにかかわらず、基底のアカウントモジュールを無視します。 |
| PAM_ACCT_DISABLED |
| | | ユーザーアカウントの使用が禁止されています (高信頼性モードのみ)。 |
| PAM_TERM_DISABLED |
| | | 端末の使用が禁止されています (高信頼性モードのみ)。 |
| PAM_NOT_AUTHORIZED |
| | | ユーザーの端末アクセスが許可されていません (高信頼性モードのみ)。 |
| PAM_NOT_RTIME | | ログイン時間が不正です (高信頼性モードのみ)。 |