Man page - pam_listfile(8)
Packages contas this manual
- pam_warn(8)
- pam_nologin(8)
- unix_chkpwd(8)
- sepermit.conf(5)
- pam_loginuid(8)
- pam_mail(8)
- limits.conf(5)
- faillock(8)
- pwhistory_helper(8)
- pam_mkhomedir(8)
- pam.d(5)
- pam_limits(8)
- pam_rhosts(8)
- pam_localuser(8)
- pam_stress(8)
- pam_group(8)
- pam_sepermit(8)
- namespace.conf(5)
- access.conf(5)
- environment(5)
- pam_setquota(8)
- pam_listfile(8)
- pam-auth-update(8)
- pam_selinux(8)
- pam_unix(8)
- pam_issue(8)
- pam_pwhistory(8)
- pam_filter(8)
- pam_echo(8)
- pam_faillock(8)
- pam_motd(8)
- pam_getenv(8)
- pam_faildelay(8)
- mkhomedir_helper(8)
- pam_permit(8)
- pam_env.conf(5)
- pam_exec(8)
- pam_access(8)
- pam_xauth(8)
- pam_time(8)
- pam_wheel(8)
- pam(7)
- pam_env(8)
- pam_umask(8)
- pam_usertype(8)
- pam_namespace_helper(8)
- pam_timestamp(8)
- pam_rootok(8)
- group.conf(5)
- pam_securetty(8)
- faillock.conf(5)
- pam_userdb(8)
- pam_keyinit(8)
- pwhistory.conf(5)
- pam.conf(5)
- pam_canonicalize_user(8)
- time.conf(5)
- pam_tty_audit(8)
- pam_debug(8)
- pam_shells(8)
- pam_ftp(8)
- pam_deny(8)
- pam_namespace(8)
- pam_timestamp_check(8)
- unix_update(8)
- pam_succeed_if(8)
apt-get install libpam-runtime
Manual
| PAM_LISTFILE(8) | Linux-PAM Manual | PAM_LISTFILE(8) |
NAME
pam_listfile - deny or allow services based on an arbitrary file
SYNOPSIS
pam_listfile.so item=[tty|user|rhost|ruser|group|shell] sense=[allow|deny] file=/path/filename onerr=[succeed|fail] [apply=[user|@group]] [quiet]
DESCRIPTION
pam_listfile is a PAM module which provides a way to deny or allow services based on an arbitrary file.
The module gets the item of the type specified -- user specifies the username, PAM_USER; tty specifies the name of the terminal (if any) over which the request has been made, PAM_TTY; rhost specifies the name of the remote host (if any) from which the request was made, PAM_RHOST; and ruser specifies the name of the remote user (if available) who made the request, PAM_RUSER -- and looks for an instance of that item in the file=filename. filename contains one line per item listed. If the item is found, then if sense=allow, PAM_SUCCESS is returned, causing the authorization request to succeed; else if sense=deny, PAM_AUTH_ERR is returned, causing the authorization request to fail.
If an error is encountered (for instance, if filename does not exist, or a poorly-constructed argument is encountered), then if onerr=succeed, PAM_SUCCESS is returned, otherwise if onerr=fail, PAM_AUTH_ERR or PAM_SERVICE_ERR (as appropriate) will be returned.
An additional argument, apply=, can be used to restrict the application of the above to a specific user (apply=username) or a given group (apply=@groupname). This added restriction is only meaningful when used with the tty, rhost and shell items.
Besides this last one, all arguments should be specified; do not count on any default behavior.
No credentials are awarded by this module.
OPTIONS
item=[tty|user|rhost|ruser|group|shell]
sense=[allow|deny]
file=/path/filename
onerr=[succeed|fail]
apply=[user|@group]
quiet
MODULE TYPES PROVIDED
All module types (auth, account, password and session) are provided.
RETURN VALUES
PAM_AUTH_ERR
PAM_BUF_ERR
PAM_IGNORE
PAM_SERVICE_ERR
PAM_SUCCESS
EXAMPLES
Classic 'ftpusers' authentication can be implemented with this entry in /etc/pam.d/ftpd:
# # deny ftp-access to users listed in the /etc/ftpusers file # auth required pam_listfile.so \
onerr=succeed item=user sense=deny file=/etc/ftpusers
Note, users listed in /etc/ftpusers file are (counterintuitively) not allowed access to the ftp service.
To allow login access only for certain users, you can use a /etc/pam.d/login entry like this:
# # permit login to users listed in /etc/loginusers # auth required pam_listfile.so \
onerr=fail item=user sense=allow file=/etc/loginusers
For this example to work, all users who are allowed to use the login service should be listed in the file /etc/loginusers. Unless you are explicitly trying to lock out root, make sure that when you do this, you leave a way for root to log in, either by listing root in /etc/loginusers, or by listing a user who is able to su to the root account.
SEE ALSO
pam.conf(5), pam.d(5), pam(7)
AUTHOR
pam_listfile was written by Michael K. Johnson <johnsonm@redhat.com> and Elliot Lee <sopwith@cuc.edu>.
| 06/29/2025 | Linux-PAM |