pam_mkpolohomedir¶
PAM Make Home Dir module
This module will create a users home directory if it does not exist
when the session begins. This allows users to be present in central
database (such as nis, kerb or ldap) without using a distributed
file system or pre-creating a large number of directories.
The module creates the home directory in all nodes of the system,
thus ensuring that the system will be fully functional for the user.
Here is a sample /etc/pam.d/login file for Debian GNU/Linux
2.1:
auth requisite pam_securetty.so
auth sufficient pam_ldap.so
auth required pam_pwdb.so
auth optional pam_group.so
auth optional pam_mail.so
account requisite pam_time.so
account sufficient pam_ldap.so
account required pam_pwdb.so
session required pam_mkhomedir.so skel=/etc/skel/ umask=0022
session required pam_pwdb.so
session optional pam_lastlog.so
password required pam_pwdb.so
Released under the GNU LGPL version 2 or later
Based on the pam_mkhomedir module originally written by
Jason Gunthorpe <jgg@debian.org> Feb 1999
Structure taken from pam_lastlogin by Andrew Morgan
<morgan@parc.power.net> 1996
Functions
-
static void
_log_err(int err, const char *format, ...)¶ Sends a message to the syslog
- Parameters
err-Message priority
format-The formatting string for the message
...-values for the formatting string
-
static int
_pam_parse(int flags, int argc, const char **argv)¶ Parses the arguments
- Return
- A bitwise-modified integer with all the flags
- Parameters
flags-Behaviour modifiers
argc-The number of arguments
argv-The arguments
-
static int
converse(pam_handle_t *pamh, int ctrl, int nargs, struct pam_message **message, struct pam_response **response)¶ This common function is used to send a message to the applications conversion function. Our only use is to ask the application to print an informative message that we are creating a home directory
- Parameters
pamh-Information about the user
ctrl-Controlling flags
nargs-The number of arguments in message
message-An array of messages
response-The responses to those messages
-
static int
make_remark(pam_handle_t *pamh, int ctrl, const char *remark)¶ Ask the application to display a short text string for us.
- Return
- An status of the operation.
- Parameters
pamh-Information about the user
ctrl-Controlling flags
remark-The message
-
static int
create_homedir(pam_handle_t *pamh, int ctrl, const struct passwd *pwd, const char *source, const char *dest)¶ Creates the home directory, using MarcoPolo in the rest of the nodes
- Parameters
pamh-The information about the PAM session
ctrl-Controlling flags
pwd-The information about the user
dest-The home directory to create
-
PAM_EXTERN int pam_sm_open_session(pam_handle_t * pamh, int flags, int argc, const char ** argv) Opens a PAM session. This is the entry point to the module
- Return
- A status code
- Parameters
pamh-The PAM session information given by PAM
flags-Several control flags
argc-The number of arguments passed to the module in the configuration files
argv-The arguments passed to the module
-
PAM_EXTERN int pam_sm_close_session(pam_handle_t * pamh, int flags, int argc, const char ** argv) Closes the session. This is the exit point
- Parameters
pamh-The PAM session information
flags-Some control flags
argc-The number of arguments passed
argv-The arguments