PAM_OPEN_SESSION(3) App. Programmers' Manual PAM_OPEN_SESSION(3)
pam_open/close_session - PAM session management
int pam_open_session(pam_handle_t *pamh, int flags);
int pam_close_session(pam_handle_t *pamh, int flags);
PAM provides management-hooks for the initialization and termination of a session.
Use this function to signal that an authenticated user session has begun. It should
be called only after the user is properly identified and (where necessary) has been
granted their credentials with pam_authenticate(3) and pam_setcred(3) respectively.
Some types of functions associated with session initialization are logging for the
purposes of system-audit and mounting directories (the user's home directory for
example). These should not concern the application. It should be noted that the
effective uid, geteuid(2), of the application should be of sufficient privilege to
perform such tasks.
Use this function to signal that a user session has terminated. In general this
function may not need to be located in the same application as the initialization
Typically, this function will undo the actions of pam_open_session. That is, log
audit information concerning the end of the user session or unmount the user's home
directory. Apart from having sufficient privilege the details of the session termi-
nation should not concern the calling application. It is good programming practice,
however, to cease acting on behalf of the user on returning from this call.
A successful return from the session management functions will be indicated with PAM_SUC-
The specific error indicating a failure to open or close a session is PAM_SESSION_ERR. In
general other return values may be returned. They should be treated as indicating failure.
May be translated to text with pam_strerror(3).
OSF-RFC 86.0, October 1995.
pam_start(3), pam_authenticate(3), pam_setcred(3), pam_get_item(3), pam_strerror(3) and
Also, see the three Linux-PAM Guides, for System administrators, module developers, and
Linux-PAM 0.55 1997 Jan 4 PAM_OPEN_SESSION(3)