pam_mkhomedir - PAM module to create users home directory [silent] [debug] [umask=mode] [skel=skeldir]

The pam_mkhomedir PAM 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, kerberos or LDAP) without using a distributed file system or pre-creating a large number of directories. The skeleton directory (usually /etc/skel/) is used to copy default files and also sets a umask for the creation.

The new users home directory will not be removed after logout of the user.


Don't print informative messages.


Turns on debugging via syslog(3).


The file mode creation mask is set to mask. The default value of mask is 0022. If this option is not specified, then the permissions of created user home directory is set to the value of HOME_MODE configuration item from /etc/login.defs. If there is no such configuration item then the value is computed from the value of UMASK in the same file. If there is no such configuration option either the default value of 0755 is used for the mode.


Indicate an alternative skel directory to override the default /etc/skel.

Only the session module type is provided.


Memory buffer error.


Not enough permissions to create the new directory or read the skel directory.


User not known to the underlying authentication module.


Environment variables were set.


Default skel directory

A sample /etc/pam.d/login file:

  auth       requisite
  auth       sufficient
  auth       required
  auth       required
  account    sufficient
  account    required
  password   required
  session    required skel=/etc/skel/ umask=0022
  session    required
  session    optional
  session    optional standard

pam.d(5), pam(8).

pam_mkhomedir was written by Jason Gunthorpe <>.

04/09/2024 Linux-PAM