3.8. Confining an administrator by mapping to sysadm_u
You can confine a user with administrative privileges by mapping the user directly to the sysadm_u SELinux user. When the user logs in, the session runs in the sysadm_u:sysadm_r:sysadm_t SELinux context.
By default, all Linux users in Red Hat Enterprise Linux, including users with administrative privileges, are mapped to the unconfined SELinux user unconfined_u. You can improve the security of the system by assigning users to SELinux confined users. This is useful to conform with the V-71971 Security Technical Implementation Guide.
Prerequisites
-
The
rootuser runs unconfined. This is the Red Hat Enterprise Linux default.
Procedure
Optional: To allow
sysadm_uusers to connect to the system by using SSH:# setsebool -P ssh_sysadm_login onMap a new or existing user to the
sysadm_uSELinux user:To map a new user, add a new user to the
wheeluser group and map the user to thesysadm_uSELinux user:# adduser -G wheel -Z sysadm_u <example_user>To map an existing user, add the user to the
wheeluser group and map the user to thesysadm_uSELinux user:# usermod -G wheel -Z sysadm_u <example_user>
Restore the context of the user’s home directory:
# restorecon -R -F -v /home/<example_user>
Verification
Check that
<example_user>is mapped to thesysadm_uSELinux user:# semanage login -l | grep <example_user> <example_user> sysadm_u s0-s0:c0.c1023 *Log in as
<example_user>, for example, by using SSH, and show the user’s security context:[<example_user>@localhost ~]$ id -Z sysadm_u:sysadm_r:sysadm_t:s0-s0:c0.c1023Switch to the
rootuser:$ sudo -i [sudo] password for <example_user>:Verify that the security context remains unchanged:
# id -Z sysadm_u:sysadm_r:sysadm_t:s0-s0:c0.c1023Try an administrative task, for example, restarting the
sshdservice:# systemctl restart sshdIf there is no output, the command finished successfully.
If the command does not finish successfully, it prints the following message:
Failed to restart sshd.service: Access denied See system logs and 'systemctl status sshd.service' for details.