このドキュメントで説明するソフトウェアは、Extended SupportまたはSustaining Supportのいずれかにあります。 詳細は、https://www.oracle.com/us/support/library/enterprise-linux-support-policies-069172.pdfを参照してください。
Oracleでは、このドキュメントに記載されているソフトウェアをできるだけ早くアップグレードすることをお薦めします。
アプリケーションは通常、標準的なPAMセッションの起動時に、次のステップを実行します。
pam_start()
をコールしてPAMライブラリを初期化し、そのサービス名とターゲット・アカウントを指定して、適した会話関数を登録します。#include <security/pam_appl.h> int pam_start(const char *
service
, const char *user
, const struct pam_conv *pam_conv
, pam_handle_t **pamh
);pam_start()
はPAMセッション・ハンドルpamh
を返し、それを後続の関数コールで使用します。トランザクションに関する情報(申請者のユーザー名やクライアントが稼働しているホストの名前など)を取得し、
pam_set_item()
を使用してPAMに送信します。int pam_set_item(pam_handle_t *
pamh
, intitem_type
, const void *item
);pam_authenticate()
をコールして申請者を認証します。int pam_authenticate(pam_handle_t *
pamh
, intflags
);ユーザーが認証されると、
pam_acct_mgmt()
をコールして、この時点でアカウントが有効であるか、およびユーザーのログインが許可されるかどうかを特定します。 オプションで、アカウント管理型のモジュールを使用すると、1日または1週間のうちの特定の時間帯にユーザーのログインを制限したり、パスワードを強制的に失効させたりできます。 その場合は、pam_chauthtok()
関数を使用してパスワードを正しく更新しないかぎり、ユーザーはシステムにアクセスできません。int pam_acct_mgmt(pam_handle_t *
pamh
, intflags
);パスワードが正しくても失効している場合は、
PAM_SUCCESS
のかわりにPAM_NEW_AUTHTOK_REQD
がpam_acct_mgmt()
から返されます。この関数から
PAM_NEW_AUTHTOK_REQD
が返された場合は、pam_chauthtok()
をコールして、要求されたアカウントの認証トークンを変更するようクライアントに指示します。int pam_chauthtok(pam_handle_t *
pamh
, const intflags
);pam_setcred()
をコールしてユーザーIDを確立します(このIDには、アクセス・チケットや補完的なグループ・メンバーシップなどの資格証明を含めることができます)。int pam_setcred(pam_handle_t *
pamh
, intflags
);資格証明が確立されたら、
pam_open_session()
をコールしてセッションの開始と構成を行いますが、これには通常、システム・リソースを使用可能にするタスク(ユーザーのホーム・ディレクトリのマウントなど)の実行や監査証跡の設定などが含まれます。int pam_open_session(pam_handle_t *
pamh
, intflags
);セッションを閉じるには、
pam_close_session()
をコールします。int pam_close_session(pam_handle_t *
pamh
, intflags
);pam_end()
をコールして、アプリケーションがトランザクションの処理を終了したことと、トランザクションの実行中に割り当てられたすべてのリソースを解放できることをPAMライブラリに通知します。int pam_end(pam_handle_t *
pamh
, intstatus
);