PAM_USERTYPE(8)
๐ PAM_USERTYPE ๐
okay bestie, welcome to pam_usertype โ it's the Linux-PAM module that does a lil vibe check on what kind of account you're dealing with ๐ต๏ธโ๏ธ no cap.
โจ NAME โจ
pam_usertype โ check if the authenticated user is a system or regular account ๐ (yes that's the whole job, and she does it flawlessly)
๐ธ SYNOPSIS ๐ธ
pam_usertype.so [flag...] {condition}
๐ฆ DESCRIPTION ๐ฆ
so like, pam_usertype.so is literally designed to succeed or fail authentication based on the type of the account of the authenticated user. and how does it figure out the type?? with a lil help from the SYS_UID_MAX settings in /etc/login.defs ๐
iykyk.
one super iconic use case: choosing whether to load other modules based on this test. like, gatekeeping but make it productive โจ
โ ๏ธ bestie listen โ the module should be given only one condition as module argument. that's it. one. Authentication will succeed only if the condition is met. periodt.
๐ OPTIONS ๐
the following flags are supported, and yes they're both lowkey essential:
use_uidโ evaluate conditions using the account of the user whoseUIDthe application is running under, instead of the user being authenticated. it's giving "who am I really" energy ๐auditโ log unknown users to the system log. snitch mode: activated ๐
๐ Available conditions are:
issystemโ succeed if the user is a system user ๐ปisregularโ succeed if the user is a regular user ๐ง
๐ MODULE TYPES PROVIDED ๐
all module types are provided โ account, auth, password and session. she's versatile. she contains multitudes. main character energy fr fr ๐
๐ฅ RETURN VALUES ๐ฅ
here's the receipts, bestie:
PAM_SUCCESSโ the condition was true. slay!! โPAM_BUF_ERRโ memory buffer error ๐ญPAM_CONV_ERRโ the conversation method supplied by the application failed to obtain the username ๐ฃ๏ธโPAM_INCOMPLETEโ the conversation method supplied by the application returnedPAM_CONV_AGAIN๐PAM_AUTH_ERRโ the condition was false. not today ๐PAM_SERVICE_ERRโ a service error occurred, or the arguments can't be parsed correctly ๐ซPAM_USER_UNKNOWNโ user was not found. who?? never heard of her ๐
๐ EXAMPLES ๐
skip the remaining modules if the user is a system user โ the classic:
account sufficient pam_usertype.so issystem
like, if you're a system user you're done here, no further modules, bye bye ๐โจ
๐ SEE ALSO ๐
login.defs(5), pam(8) โ go read those too, bestie, they're the supporting cast ๐ซถ
๐ธ AUTHOR ๐ธ
Pavel Bลezina <pbrezina@redhat.com> โ the icon, the legend, the moment โญ
and that's the whole page!! this one came from the Linux-PAM manual, dated 09/27/2026, and it's literally called PAM_USERTYPE(8). mwah ๐ go forth and type-check your users ๐๐
๐ฆ where this page comes from
- arch rolling: pam 1.7.3-1 ยท GPL-2.0-only
- ๐ girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms