名称
pam_sm_setcred ― pam_setcred 用サービスプロバイダの実行
構文
cc [ flag ... ] file ... -lpam [ library ... ]
#include <security/pam_appl.h>
#include <security/pam_modules.h>
int pam_sm_setcred(pam_handle_t *pamh, int flags, int argc,
const char **argv);
説明
pam_setcred() の呼び出しに応えて、PAM フレームワークは pam.conf(4) ファイルにリストされたモジュールから pam_sm_setcred() を呼び出します。認証プロバイダは、このインタフェース関数のバックエンド機能を提供します。
pam_sm_setcred() を呼び出して、認証ハンドル pamh に関連付けられた現在のユーザーの証明を設定します。 flags フィールドには以下のフラグを設定できます。最初の 4 つのフラグは同時に指定できないことに注意してください。
| PAM_CRED_ESTABLISH |
| | | 認証サービス用にユーザー資格認定を設定します。 |
| PAM_CRED_DELETE | | 認証サービス用のユーザー資格認定を削除します。 |
| PAM_CRED_REINITIALIZE |
| | | ユーザー資格認定を再初期化します。 |
| PAM_CRED_REFRESH |
| | | ユーザー資格認定の期限を延長します。 |
| PAM_SILENT | | 認証サービスのメッセージ作成を禁止します。 |
どのフラグも設定しない場合、デフォルトとして PAM_CRED_ESTABLISH が使用されます。
argc 引き数は、構成ファイル pam.conf(4) から渡されるモジュールオプションの数を示します。 argv は、モジュールオプションを指定します。モジュールオプションは認証サービスにより解釈され、処理されます。モジュールに未知のオプションが渡された場合、エラーが記録され、そのオプションは無視されます。
PAM_SILENT フラグが設定されていない場合、 pam_sm_setcred() は、対話形式で対応する pam_sm_authenticate() 関数を使用してすべての失敗ステータスを表示します。
認証ステータス (成功、または失敗の原因) は、認証モジュールによりモジュール特定の状態として認証ハンドルに保存されます。このステータスを pam_get_data() で取り出し、ユーザー資格認定の設定を判別します。
注記
pam_sm_setcred() へは、 pam_sm_authenticate() が使用したモジュールオプションと同じものが渡されます。
アプリケーション使用法
PAM インタフェースのスレッドへの対応状況については、 pam(3) を参照してください。
戻り値
正常終了したら、 PAM_SUCCESS が返されます。エラーが発生すると、以下の値が返されます。
| PAM_CRED_UNAVAIL |
| | | 基底の認証サービスによりユーザー資格認定が拒否されました。 |
| PAM_CRED_EXPIRED |
| | | ユーザー資格認定が期限切れです。 |
| PAM_USER_UNKNOWN |
| | | 認証サービスがユーザーを認識できません。 |
| PAM_CRED_ERR | | ユーザー資格認定の設定に失敗しました。 |
| PAM_IGNORE | | 制御フラグが required, optional, sufficient のどれかかわらず、基底の認証モジュールを無視します。 |