xref: /illumos-gate/usr/src/man/man7/pam_list.7 (revision b8052df9f609edb713f6828c9eecc3d7be19dfb3)
te
Copyright (c) 2009, Sun Microsystems, Inc. All Rights Reserved.
The contents of this file are subject to the terms of the Common Development and Distribution License (the "License"). You may not use this file except in compliance with the License. You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE or http://www.opensolaris.org/os/licensing.
See the License for the specific language governing permissions and limitations under the License. When distributing Covered Code, include this CDDL HEADER in each file and include the License file at usr/src/OPENSOLARIS.LICENSE. If applicable, add the following below this CDDL HEADER, with
the fields enclosed by brackets "[]" replaced with your own identifying information: Portions Copyright [yyyy] [name of copyright owner]
PAM_LIST 7 "April 22, 2020"
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)