logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

pam_nologin - Prevent non-root users from login

Author

       pam_nologin was written by Michael K. Johnson <johnsonm@redhat.com>.

Linux-PAM                                          07/03/2025                                     PAM_NOLOGIN(8)

Description

       pam_nologin is a PAM module that prevents users from logging into the system when /var/run/nologin or
       /etc/nologin exists. The contents of the file are displayed to the user. The pam_nologin module has no
       effect on the root user's ability to log in.

Examples

       The suggested usage for /etc/pam.d/login is:

           auth  required  pam_nologin.so

Module Types Provided

       The auth and account module types are provided.

Name

       pam_nologin - Prevent non-root users from login

Notes

       In order to make this module effective, all login methods should be secured by it. It should be used as a
       required method listed before any sufficient methods in order to get standard Unix nologin semantics.
       Note, the use of successok module argument causes the module to return PAM_SUCCESS and as such would
       break such a configuration - failing sufficient modules would lead to a successful login because the
       nologin module succeeded.

Options

       file=/path/nologin
           Use this file instead the default /var/run/nologin or /etc/nologin.

       successok
           Return PAM_SUCCESS if no file exists, the default is PAM_IGNORE.

Return Values

       PAM_AUTH_ERR
           The user is not root and /etc/nologin exists, so the user is not permitted to log in.

       PAM_BUF_ERR
           Memory buffer error.

       PAM_IGNORE
           This is the default return value.

       PAM_SUCCESS
           Success: either the user is root or the nologin file does not exist.

       PAM_USER_UNKNOWN
           User not known to the underlying authentication module.

See Also

nologin(5), pam.conf(5), pam.d(5), pam(7)

Synopsis

pam_nologin.so [file=/path/nologin] [successok]

See Also