名称
pam_chauthtok ― PAM フレームワーク内でのパスワード関連関数の実行
構文
cc [ flag ... ] file ... -lpam [ library ... ]
#include <security/pam_appl.h>
int pam_chauthtok(pam_handle_t *pamh, int flags, int argc,
const char **argv);
説明
pam_chauthtok() を呼び出して、認証ハンドル pamh により参照される特定のユーザーに関連付けられた認証トークンを変更します。
pam_chauthtok() には、以下のフラグが渡されます。
| PAM_SILENT | | パスワードサービスのメッセージ作成を禁止します。 |
| PAM_CHANGE_EXPIRED_AUTHTOK |
| | | パスワードサービスは古くなったパスワードだけを更新しなければなりません。このフラグが渡されない場合、すべてのパスワードサービスはパスワードを更新しなければなりません。 |
呼び出しが正常終了すると、ユーザーの認証トークンは、 pam.conf(4) によりシステムで構成されているパスワードサービスに従って変更されます。
アプリケーション使用法
PAM インタフェースのスレッドへの対応状況については、 pam(3) を参照してください。
注意
フラグ PAM_CHANGE_EXPIRED_AUTHTOK は、通常、 login アプリケーションがユーザーのパスワードが古くなった、または期限切れかどうかを判別するために使用します。 login アプリケーションは、ユーザーにログインを許可する前にこのフラグを使って pam_chauthtok() を実行し、ユーザーがパスワードを更新できるようにします。通常、 passwd(1) などのアプリケーションはこのフラグを使ってはなりません。
pam_chauthtok() は、パスワードを更新しようとする前に予備検査を実行します。この検査は、 pam.conf(4) にリストされているスタック内のそれぞれのパスワードモジュールに対して実行されます。この検査には、リモート名サービスが使用可能かどうか判別するために
ping の実行が含まれることがあります。 pam_chauthtok() が PAM_TRY_AGAIN を返す場合、チェックは失敗し、パスワードは更新されません。
戻り値
正常終了すると、 PAM_SUCCESS が返されます。 pam(3) で説明したエラー戻り値の他に、以下の値が返されることがあります。
| PAM_PERM_DENIED | | パーミッションがありません。 |
| PAM_AUTHTOK_ERR | | 認証トークン操作のエラーです。 |
| PAM_AUTHTOK_RECOVERY_ERR |
| | | 認証情報が見つかりません。 |
| PAM_AUTHTOK_LOCK_BUSY |
| | | 認証トークンのロックがビジーです。 |
| PAM_AUTHTOK_DISABLE_AGING |
| | | 認証トークンのエージングが禁止されています。 |
| PAM_USER_UNKNOWN |
| | | パスワードサービスがユーザーを認識できません。 |
| PAM_TRY_AGAIN | | パスワードサービスによる予備検査に失敗しました。 |