名称
pam_set_item, pam_get_item ― PAM のための認証情報ルーチン
構文
cc [ flag ... ] file ... -lpam [ library ... ]
#include <security/pam_appl.h>
int pam_set_item(pam_handle_t *pamh, int item_type, const void *item);
int pam_get_item(const pam_handle_t
*pamh, int item_type, void **item);
説明
pam_get_item() および pam_set_item() を使用すると、アプリケーションや
PAM サービスモジュールは必要に応じて PAM 情報のアクセスや更新を行えます。情報は、 item_type で以下のいずれかを指定できます。
| PAM_SERVICE | | サービス名です。 |
| PAM_USER | | ユーザー名です。 |
| PAM_AUTHTOK | | ユーザー認証トークンです。 |
| PAM_OLDAUTHTOK | | 古いユーザー認証トークンです。 |
| PAM_TTY | | tty 名です。 |
| PAM_RHOST | | リモートホスト名です。 |
| PAM_RUSER | | リモートユーザー名です。 |
| PAM_CONV | | pam_conv 構造体です。 |
| PAM_USER_PROMPT | | pam_get_user() が使用するデフォルトのプロンプトです。 |
item_type PAM_AUTHTOK と PAM_OLDAUTHTOK は、セキュリティ上の理由から、モジュールプロバイダしか使用できません。認証モジュール、アカウントモジュール、セッション管理モジュールは、 PAM_AUTHTOK を現在の認証トークンとして扱い、 PAM_OLDAUTHTOK は無視しなければなりません。パスワード管理モジュールは、 PAM_OLDAUTHTOK を現在の認証トークンとして扱い、 PAM_AUTHTOK を新しい認証トークンとして扱わなければなりません。
pam_set_item() には、 pam_start() から返された認証ハンドル pamh、 オブジェクトへのポインター
item、 そのタイプ item_type を渡します。正常終了の場合、 pam_set_item() は、この項目を認証モジュールが割り当てた内部記憶領域にコピーし、 PAM_SUCCESS を返します。以前設定されていた項目は新しい値で上書きされます。
pam_get_item() には、 pam_start() から返された認証ハンドル pamh、 item_type、 要求したオブジェクトのアドレスが割り当てられるポインターのアドレス item を渡します。オブジェクトデータは、基底のサービスモジュールのいずれかにより変更されない限り、以降の同じ item_type に対する pam_set_item() の呼び出しによって変更されるまで有効です。この項目がまだ設定されていない場合、 pam_get_item() は
NULL ポインターを返します。 pam_get_item() で取り出した item は、変更したり解放してはなりません。この項目は pam_end() により解放されます。
アプリケーション使用法
PAM インタフェースのスレッドへの対応状況については、 pam(3) を参照してください。
戻り値
正常終了すると、 pam_get_item() は PAM_SUCCESS を返します。失敗すると、エラーコードを返します。戻り値に関連したエラーの情報については、 pam(3) を参照してください。