名称
pam_set_data, pam_get_data ― モジュール固有の状態を保持するための PAM ルーチン
構文
cc [ flag ... ] file ... -lpam [ library ... ]
#include <security/pam_appl.h>
int pam_set_data(pam_handle_t *pamh, const char *module_data_name,
const void *data, void (*cleanup) (pam_handle_t
*pamh, void *data,
int pam_end_status));
int pam_get_data(const pam_handle_t
*pamh, const char *module_data_name,
void **data);
説明
pam_set_data() および pam_get_data() を使用すると、PAM
サービスモジュールは必要に応じてモジュール固有の情報のアクセスや更新を行えます。これらの関数はアプリケーションが使用してはなりません。
pam_s et_data() は、モジュール固有のデータを
PAM ハンドル pamh 内に保存します。 module_data_name 引き数はこのデータを一意に識別し、 data 引き数は実際のデータを表します。 module_data_name はすべてのサービス (UNIX など) にわたって重複してはなりません。
cleanup 関数は、 data が使用したすべてのメモリーが不要になった後でこれを解放するために使用され、 pam_end() が呼び出します。 cleanup 関数は、引き数として、PAM ハンドル pamh へのポインター、実際のデータ data へのポインター、ステータスコード pam_end_status を使用します。ステータスコードは、パージする必要がある状態情報を正確に判別するため、それぞれのモジュールに固有のものになります。
pam_set_data() が呼び出されたときに、同じ module_data_name のところにすでにモジュールデータが存在している (以前の pam_set_data() の呼び出しにより)
場合、既存の data は新しい data で置き換えられ、既存の cleanup 関数は新しい cleanup 関数で置き換えられます。
pam_get_data() は、PAM ハンドル pamh に保存された、固有の名前 module_data_name で識別されるモジュール固有のデータを取り出します。 data 引き数には要求されたデータのアドレスが割り当てられます。
アプリケーション使用法
PAM インタフェースのスレッドへの対応状況については、 pam(3) を参照してください。
戻り値
pam(3) にリストした戻り値の他に、以下の値が返されることもあります。
| PAM_NO_MODULE_DATA |
| | | モジュール固有のデータが存在しません。 |