A Collection of Modules for PAM
pam_fshadow module provides authentication against an
alternative shadow file, or passwd / shadow pair
(or pairs). There are two main operation modes: plain mode, in which
pam_fshadow uses only one passwd/shadow pair,
and virtual domain mode, which allows to select the pair to use
based on the authentication token (the user name). First, let’s
describe the plain mode.
pam_fshadowin plain mode.
Plain mode is the default operation mode for
In this mode, the module checks the supplied user name and
authentication token against the passwd/shadow pair
located in the system configuration directory (which is set when
configuring the package and defaults to prefix/etc).
This default location can be changed using the sysconfdir
option (see below). The authentication is performed as follows:
First, the user name is looked up in passwd file and the
corresponding record is fetched. If this record contains a valid
password hash (i.e. its second field is at least 2 characters long),
crypt function is called on the supplied
authentication token with the retrieved hash as its second argument
seed) and its result is compared with the hash. If the
two strings compare equal, the user is authenticated successfully.
Otherwise, if passwd contains no password, the shadow file is examined and hash retrieved from there is used. If the record retrieved from the shadow file has not expired, and if its password hash field matches the authentication token (using the algorithm described above), the user is authenticated successfully.
Several options are provided to alter the default behavior. All
of them, except
sysconfdir, have the same effect in the
virtual domain mode as well. The table below summarizes these options.
Do not require passwd file to be present. Only shadow is used for authentication.
Do not require shadow file to be present. Only
passwd is used for authentication. Notice, that it is an error
to specify both
Set full name of the directory where shadow and passwd are located. By default the system configuration directory will be used.
Do not prompt the user for password, take it from the saved
authentication tokens. This option is useful when
is used as a non-first module in a stack of authentication modules.
The following example illustrates the use of
plain mode in pam.conf file:
tuhs auth required pam_fshadow.so \ sysconfdir=/home/tuhs/tuhs/etc nopasswd use_authtok
pam_fshadowin virtual domain mode.
In virtual domain mode,
pam_fshadow uses the
user name to determine where to look for the
passwd/shadow file pair. The name is split into
user name proper and authentication domain. The
configuration directory name is then constructed by concatenating the
system configuration directory, a directory separator character (‘/’),
and the name of the authentication domain. Then, authentication
proceeds as described above for the plain mode. If the supplied user name
does not match the regular expression,
as in plain mode.
This mode is enabled by the option regex, which supplies a regular expression to split user names. This regular expression must contain two parenthesized groups. First of them is used to extract the user name, and the second one is used to extract the authentication domain. For example, the following option:
pam_fshadow to use any characters before the
‘@’ as the user name, and anything following it as the
Several options are provided, that control the type of regular expression and the way of retrieving authentication data from the user name. These options are:
Use basic regular expression.
Use extended regular expression. This is the default.
Use case-insensitive regular expression.
Use case-sensitive regular expressions (default).
Use group #2 as the user name and group #1 as the authentication domain.
As an example, consider the following pam.conf entry:
check auth required pam_fshadow.so \ sysconfdir=/etc/auth regex=(.*)@(.*) extended
pam_fshadow to use ‘@’ as the
username/domain separator and to look up password databases
under the /etc/auth directory. For example, if the supplied
user name was ‘smith@ftp’, then the module will look
for the user name ‘smith’ in files
/etc/auth/ftp/passwd and /etc/auth/ftp/shadow.
This section summarizes all
pam_fshadow command line options:
Use basic regular expressions. See virtual domain mode.
Use extended regular expression (default). See virtual domain mode.
Use case-insensitive regular expressions. See virtual domain mode.
Use only shadow for authentication. See nopasswd.
Use only passwd for authentication. See noshadow.
Define a regular expression for splitting user name into the proper name and authentication domain.
In the regular expression introduced by
regex, group #1
selects authentication domain, and group #2 selects user name.
Assume dir as the system configuration directory. See sysconfdir.
Do not prompt the user for password, take it from the saved authentication tokens.
This document was generated on August 12, 2018 using makeinfo.Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved.