PAM_CAP(8)
๐ PAM_CAP(8) โ Capabilities PAM module ๐
okay bestie, welcome to pam_cap, section 8 of the System Manager's Manual. she's the Capabilities PAM module and she's literally the moment. let's get into it ๐ซถ
โจ SYNOPSIS โจ
[service-name] auth control-flag pam_cap [options]
๐ธ DESCRIPTION ๐ธ
So the pam_so module can be used to specify Inheritable capabilities to process trees rooted in the PAM application. She also supports blocking Bounding vector capabilities and adding Ambient vector capabilities. multitasking icon behavior honestly ๐
For general PAM apps to work correctly, the application must be run with at least CAP_SETPCAP raised in its Permitted capability flag. Many PAM applications run as root, which has all of the bits in the Bounding set raised, so this requirement is typically met. To grant an Ambient vector capability, the corresponding Permitted bit must be available to the application too. no skipped steps, bestie, the kernel is watching ๐ฅ
The pam_so module is a Linux-PAM auth module. She provides functionality to back pam_sm_authenticate() and pam_sm_setcred(). It is the latter that actually modifies the inheritable 3-tuple of capability vectors: the configured IAB. In a typical application configuration you might have a line like this:
auth optional pam_cap.so
The module arguments are:
debugโ While supported, this is a no-op at present. she's just there for the vibe, doing absolutely nothing, and honestly? respect ๐config=/path/to/fileโ Override the default config for the module. The unspecified default value for this file is/etc/security/capability.conf. Note,config=/dev/nullis a valid value. Seedefault=below for situations in which this might be appropriate. (yes bestie, pointing her at the void is allowed ๐)keepcapsโ This is as much as thepam_cap.somodule can do to help an application support use of the Ambient capability vector. The application support for the Ambient set is poor at the present time. she's doing her best, the apps are not ๐autoauthโ This argument causes thepam_cap.somodule to returnPAM_SUCCESSif thePAM_USERbeing authenticated exists. The absence of this argument will causepam_cap.soto only returnPAM_SUCCESSif thePAM_USERis covered by a specific rule in the prevailing config file. strict queen behavior, no rule no success โจdefault=IABโ This argument is ignored if the prevailing configuration file contains a"*"rule. If there is no such rule, the IAB 3-tuple is inserted at the end of the config file and applies to allPAM_USERs not covered by an earlier rule. Note, if you want allPAM_USERs to be covered by this default rule, you can supply the module argumentconfig=/dev/null. one rule to catch them all ๐deferโ This argument arranges for the IAB capabilities granted to a user to be added sufficiently late in the Linux-PAM authentication stack that they stick. That is, after the application does itssetuid(UID)call. As such, in conjunction with thekeepcapsmodule argument, such compliant applications can support granting Ambient vector capabilities withpam_cap.so. timing is everything and she knows it โฐ๐ฆ
ngl bestie,defer+keepcapstogether is the combo meal that actually lets Ambient capabilities land. without the app playing along, it's giving... nothing. ๐ญ
๐ SEE ALSO ๐
pam.conf(5), capability.conf(5), cap_text_formats(7), pam(8).
and that's the whole page, bestie ๐ this was PAM_CAP(8) from the System Manager's Manual, dated 2025-03-19 โ go forth, set your Inheritable, Bounding and Ambient vectors, and slay โจ๐๐ซถ
๐ฆ where this page comes from
- alpine 3.22: libcap-doc 2.78-r0 ยท BSD-3-Clause OR GPL-2.0-only
- alpine 3.23: libcap-doc 2.78-r0 ยท BSD-3-Clause OR GPL-2.0-only
- alpine 3.24: libcap-doc 2.78-r0 ยท BSD-3-Clause OR GPL-2.0-only
- arch rolling: libcap 2.78-1 ยท BSD-3-Clause OR GPL-2.0-only
- fedora 43: libcap 2.76-3.fc43 ยท BSD-3-Clause OR GPL-2.0-only
- fedora 43: libcap 2.76-3.fc43 ยท BSD-3-Clause OR GPL-2.0-only
- fedora 43: libcap 2.76-4.fc43 ยท BSD-3-Clause OR GPL-2.0-only
- fedora 43: libcap 2.76-4.fc43 ยท BSD-3-Clause OR GPL-2.0-only
- fedora 44: libcap 2.77-2.fc44 ยท BSD-3-Clause OR GPL-2.0-only
- fedora 44: libcap 2.77-2.fc44 ยท BSD-3-Clause OR GPL-2.0-only
- fedora 44: libcap 2.78-1.fc44 ยท BSD-3-Clause OR GPL-2.0-only
- fedora 44: libcap 2.78-1.fc44 ยท BSD-3-Clause OR GPL-2.0-only
- nixpkgs unstable: libcap 2.78
- ubuntu stonking: libpam-cap 1:2.78-1ubuntu1 ยท BSD-3-Clause OR GPL-2.0-only
- ๐ girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms