service_seusers(5)
π service_seusers(5) π
okay bestie, welcome to the service_seusers page β this is from the SELinux configuration corner of the manual universe, and it's literally all about the SELinux GNU/Linux user and service-to-SELinux-user mapping config files. no cap. π
β¨ NAME β¨
service_seusers β the SELinux GNU/Linux user and service to SELinux user mapping configuration files. yes that's a mouthful, we love her anyway π«Ά
πΈ DESCRIPTION πΈ
okay so these are optional files, and what they do is let services define an SELinux user when they're authenticating via SELinux-aware login applications like PAM(8). it's giving β¨identity assignmentβ¨
there is one file for each GNU/Linux user name that will be required to run a service with a specific SELinux user name. one user, one file. that's the vibe. π
the path for each configuration file is formed by the path returned by selinux_policy_root(3) with /logins/username appended β where username is a file representing the GNU/Linux user name. and the default services directory lives right here:
/etc/selinux/{SELINUXTYPE}/logins
where {SELINUXTYPE} is the entry from the selinux configuration file config (peep selinux_config(5) for that one, bestie).
and who reads all this? getseuser(3) does β it reads this file to map services to an SELinux user. iconic behaviour honestly. π
π¦ FILE FORMAT π¦
every single line inside the username file is formatted like this, with each component separated by a colon:
service:seuser[:range]
where:
serviceβ the service name used by the application.seuserβ the SELinux user name.rangeβ the range for MCS/MLS policies.
π«Ά lowkey important: the range part is the optional one in that bracket situation. the colons are the whole personality here, do not skip them.
π EXAMPLES π
Example 1 β for the 'root' user:
# ./logins/root
ipa:user_u:s0
this_service:unconfined_u:s0
Example 2 β for GNU/Linux user 'rch':
# ./logins/rch
ipa:unconfined_u:s0
that_service:unconfined_u:s0
look at that formatting. chef's kiss. πβ¨
π SEE ALSO π
selinux(8), PAM(8), selinux_policy_root(3), getseuser(3), selinux_config(5)
go read those too, bestie, they're all part of the same friend group fr fr π
and that's the whole page!! this lil masterpiece is brought to you by Security Enhanced Linux, dated 28-Nov-2011. mwah, ily, go configure something safely π§ππΈ
π¦ where this page comes from
- alpine 3.24: libselinux-doc 3.10-r1 Β· Public-Domain
- centos-stream 10: libselinux-utils 3.11-3.el10 Β· LicenseRef-Fedora-Public-Domain
- centos-stream 9: libselinux-utils 3.6-5.el9 Β· Public Domain
- debian bookworm: selinux-utils 3.4-1+b6
- debian trixie: selinux-utils 3.8.1-1 Β· LicenseRef-public-domain
- fedora 43: libselinux-utils 3.9-5.fc43 Β· LicenseRef-Fedora-Public-Domain
- fedora 44: libselinux-utils 3.10-1.fc44 Β· LicenseRef-Fedora-Public-Domain
- fedora 44: libselinux-utils 3.11-2.fc44 Β· LicenseRef-Fedora-Public-Domain
- nixos 26.05: libselinux 3.10
- nixpkgs unstable: libselinux 3.11
- opensuse-leap 16.0: selinux-tools 3.8.1-160000.4.1 Β· SUSE-Public-Domain
- opensuse-leap 16.0: selinux-tools 3.8.1-160000.4.1 Β· SUSE-Public-Domain
- opensuse-leap 16.0: selinux-tools 3.8.1-160000.4.1 Β· SUSE-Public-Domain
- opensuse-leap 16.0: selinux-tools 3.8.1-160000.4.1 Β· SUSE-Public-Domain
- ubuntu jammy: selinux-utils 3.3-1build2
- ubuntu noble: selinux-utils 3.5-2ubuntu2 Β· LicenseRef-public-domain
- ubuntu noble: selinux-utils 3.5-2ubuntu2.1 Β· LicenseRef-public-domain
- ubuntu questing: selinux-utils 3.8.1-1build1
- ubuntu resolute: selinux-utils 3.9-4build1 Β· LicenseRef-public-domain
- ubuntu stonking: selinux-utils 3.11-2.1 Β· LicenseRef-public-domain
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms