PAM_WHEEL(8)
๐ pam_wheel โ the manual page, but make it make sense
okay bestie, sit down, hydrate, because we're talking about pam_wheel from the Linux-PAM Manual, section 8 (that's the admin/system-commands girlies). This is the module that runs the wheel group gatekeeping, and honestly? She's iconic for it. ๐โจ
โจ NAME โจ
pam_wheel โ only permit root access to members of group wheel. no cap, that's the whole job. ๐
โจ SYNOPSIS โจ
pam_wheel.so [debug] [deny] [group=name] [root_only] [trust] [use_uid]
Look at her. Six little options. Six little vibes. ๐
โจ DESCRIPTION โจ
So the pam_wheel PAM module is the one that enforces the so-called wheel group. ๐ซ
By default it permits access to the target user if the applicant user is a member of the wheel group. That's the default behaviour, and it's giving "you're in the group chat or you're not." ๐ซถ
But here's the plot twist: if no group with this name exists โ like, if there's literally no wheel group on the system โ the module is using the group with the group-ID 0 instead. So she improvises. Main character energy. ๐
โจ OPTIONS โจ
debugโ Print debug information. She's telling you everything, fr fr. ๐denyโ Reverse the sense of the auth operation: if the user is trying to get UID 0 access and is a member of the wheel group (or the group of thegroupoption), deny access. Conversely, if the user is not in the group, returnPAM_IGNOREโ unlesstrustwas also specified, in which case we returnPAM_SUCCESS. Yeah, she flips the whole script. ๐group=nameโ Instead of checking the wheel or GID 0 groups, use thenamegroup to perform the authentication. Pick your own group, bestie, you have options. ๐root_onlyโ The check for wheel membership is done only when the target user UID is 0. Everyone else, she's not even looking. ๐trustโ Thepam_wheelmodule will returnPAM_SUCCESSinstead ofPAM_IGNOREif the user is a member of the wheel group. And with a little play stacking the modules, the wheel members may be able tosuto root without being prompted for a passwd. ๐๐ (yes that's the whole point, and yes it's a little scary, be careful)use_uidโ The check will be done against the real uid of the calling process, instead of trying to obtain the user from the login session associated with the terminal in use. No detective work, just the uid. ๐ต๏ธโ๏ธ
โจ MODULE TYPES PROVIDED โจ
The auth and account module types are provided. Two types, both slaying. ๐
โจ RETURN VALUES โจ
PAM_AUTH_ERRโ Authentication failure. ๐ญPAM_BUF_ERRโ Memory buffer error. ๐PAM_IGNOREโ The return value should be ignored by PAM dispatch. she said "not my problem" ๐ซฅPAM_PERM_DENYโ Permission denied. ๐ซPAM_SERVICE_ERRโ Cannot determine the user name. ๐คทโ๏ธPAM_SUCCESSโ Success. slay!! โจ๐PAM_USER_UNKNOWNโ User not known. who is she? ๐คจ
โจ EXAMPLES โจ
okay so here's the classic setup, and it's honestly so clean. The root account gains access by default (rootok), only wheel members can become root (wheel) โ but Unix authenticate non-root applicants. ๐
su auth sufficient pam_rootok.so
su auth required pam_wheel.so
su auth required pam_unix.so
That's it. That's the stack. Stacked like a cute little friendship bracelet. ๐ซถ
โจ SEE ALSO โจ
go read those too bestie, iykyk ๐๐
โจ AUTHOR โจ
pam_wheel was written by Cristian Gafton <gafton@redhat.com>. thank you for your service king ๐ซก๐
okay and that's the whole page!! this was Linux-PAM's pam_wheel(8), dated 09/27/2026. mwah. go protect your root account. periodt. ๐
โจ๐
๐ฆ 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