pam_sepermit — PAM module to allow/deny login depending on SELinux enforcement state

Synopsis [debug] [conf=/path/to/config/file]


The pam_sepermit module allows or denies login depending on SELinux enforcement state.

When the user which is logging in matches an entry in the config file he is allowed access only when the SELinux is in enforcing mode. Otherwise he is denied access. For users not matching any entry in the config file the pam_sepermit module returns PAM_IGNORE return value.

The config file contains a list of user names one per line with optional arguments. If the name is prefixed with @ character it means that all users in the group name match. If it is prefixed with a % character the SELinux user is used to match against the name instead of the account name. Note that when SELinux is disabled the SELinux user assigned to the account cannot be determined. This means that such entries are never matched when SELinux is disabled and pam_sepermit will return PAM_IGNORE.

See sepermit.conf(5) for details.



Turns on debugging via syslog(3).


Path to alternative config file overriding the default.

Module Types Provided

The auth and account module types are provided.

Return Values


SELinux is disabled or in the permissive mode and the user matches.


SELinux is in the enforcing mode and the user matches.


The user does not match any entry in the config file.


The module was unable to determine the user's name.


Error during reading or parsing the config file.



Default configuration file


auth     [success=done ignore=ignore default=bad]
auth     required
account  required
session  required

See Also

sepermit.conf(5), pam.conf(5), pam.d(5), pam(8)selinux(8)


pam_sepermit and this manual page were written by Tomas Mraz <>.

Referenced By


05/18/2017 Linux-PAM Manual