PAM_LIST(7) Standards, Environments, and Macros PAM_LIST(7)

NAME


pam_list - PAM account management module for UNIX

SYNOPSIS


pam_list.so.1


DESCRIPTION


The pam_list module implements pam_sm_acct_mgmt(3PAM), which provides
functionality to the PAM account management stack. The module provides
functions to validate that the user's account is valid on this host
based on a list of users, groups, and/or netgroups in the given file. The
users, groups, and netgroups are separated by newline character. Groups
are specified with character '%' and netgroups are specified with
character '@' as prefix before name of the group/netgroup in the list.
The maximum line length is 1023 characters.


The username is the value of PAM_USER. The host is the value of PAM_RHOST
or, if PAM_RHOST is not set, the value of the localhost as returned by
gethostname(3C) is used.


If neither of the allow, deny, or compat options are specified, the
module will look for +/- entries in the local /etc/passwd file. If this
style is used, nsswitch.conf(5) must not be configured with compat for
the passwd database. If no relevant +/- entry exists for the user,
pam_list is not participating in result.


If compat option is specified then the module will look for +/- entries
in the local /etc/passwd file. Other entries in this file will be counted
as + entries. If no relevant entry exits for the user, pam_list will deny
the access.


The following options can be passed to the module:

allow=
The full pathname to a file of allowed users, groups,
and/or netgroups. Only one of allow= or deny= can be
specified.


compat
Activate compat mode.


deny=
The full pathname to a file of denied users, groups,
and/or netgroups. Only one of deny= or allow= can be
specified.


debug
Provide syslog(3C) debugging information at the
LOG_AUTH | LOG_DEBUG level.


group
The module should perform group membership matches for
the username.


user
The module should only perform netgroup matches on the
username. This is the default option.


nouser
The username should not be used in the netgroup match.


host
Only the host should be used in netgroup matches.


nohost
The hostname should not be used in netgroup matches.


user_host_exact
The user and hostname must be in the same netgroup.


ERRORS


The following error values are returned:

PAM_SERVICE_ERR
An invalid set of module options was given in the
pam.conf(5) for this module, or the user/netgroup
file could not be opened.


PAM_BUF_ERR
A memory buffer error occurred.


PAM_IGNORE
The module is ignored, as it is not participating in
the result.


PAM_PERM_DENIED
The user is not on the allow list or is on the deny
list.


PAM_SUCCESS
The account is valid for use at this time.


PAM_USER_UNKNOWN
No account is present for the user


EXAMPLES


Example 1: Using pam_list in default mode




/etc/pam.conf modification looks like:


other account requisite pam_roles.so.1
other account required pam_unix_account.so.1
other account required pam_list.so.1


In the case of default mode or compat mode, the important lines in
/etc/passwd appear as follows:


+loginname - user is approved
-loginname - user is disapproved
+@netgroup - netgroup members are approved
-@netgroup - netgroup members are disapproved


Example 2: Using pam_list with allow file




/etc/pam.conf modification looks like:


other account requisite pam_roles.so.1
other account required pam_unix_account.so.1
other account required pam_list.so.1 allow=/etc/users.allow


/etc/users.allow contains:

root
localloginname
remoteloginname
@netgroup


Example 3: Using pam_list with allow file to allow members of the 'admins'


group access.


/etc/pam.conf modification looks like:


other account requisite pam_roles.so.1
other account required pam_unix_account.so.1
other account required pam_list.so.1 group allow=/etc/users.allow


/etc/users.allow contains:

root
%admins


ATTRIBUTES


See attributes(7) for descriptions of the following attributes:


+--------------------+-------------------------+
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+--------------------+-------------------------+
|Interface Stability | Committed |
+--------------------+-------------------------+
|MT-Level | MT-Safe with exceptions |
+--------------------+-------------------------+


The interfaces in libpam(3LIB) are MT-Safe only if each thread within the
multithreaded application uses its own PAM handle.

SEE ALSO


syslog(3C), libpam(3LIB), pam(3PAM), pam_authenticate(3PAM),
pam_sm_acct_mgmt(3PAM), nsswitch.conf(5), pam.conf(5), attributes(7)

illumos April 22, 2020 PAM_LIST(7)