Red Hat Training
A Red Hat training course is available for RHEL 8
3.5.2.2. Confinar a un administrador usando sudo y el rol sysadm_r
Puede asignar un usuario específico con privilegios administrativos al usuario staff_u
SELinux, y configurar sudo
para que el usuario pueda obtener el rol de administrador sysadm_r
SELinux. Este rol le permite al usuario realizar tareas administrativas sin que se le niegue SELinux. Cuando el usuario se conecta, la sesión se ejecuta en el contexto staff_u:staff_r:staff_t
SELinux, pero cuando el usuario introduce un comando usando sudo
, la sesión cambia al contexto staff_u:sysadm_r:sysadm_t
.
Requisitos previos
-
El usuario
root
se ejecuta sin restricciones. Este es el valor por defecto de Red Hat Enterprise Linux.
Procedimiento
Cree un nuevo usuario, añada el usuario al grupo de usuarios
wheel
y asigne el usuario al usuario de SELinuxstaff_u
:# adduser -G wheel -Z staff_u example.user
Opcional: Asigne un usuario existente al usuario
staff_u
SELinux y añada el usuario al grupo de usuarioswheel
:# usermod -G wheel -Z staff_u example.user
Para permitir que example.user obtenga el rol de administrador de SELinux, cree un nuevo archivo en el directorio
/etc/sudoers.d/
, por ejemplo:# visudo -f /etc/sudoers.d/example.user
Añada la siguiente línea al nuevo archivo:
example.user ALL=(ALL) TYPE=sysadm_t ROLE=sysadm_r ALL
Pasos de verificación
Comprueba que
example.user
esté asignada al usuario de SELinuxstaff_u
:# semanage login -l | grep example.user example.user staff_u s0-s0:c0.c1023 *
Inicie sesión como example.user, por ejemplo, utilizando SSH, y cambie al usuario
root
:[example.user@localhost ~]$ sudo -i [sudo] password for example.user:
Muestra el contexto de seguridad de
root
:# id -Z staff_u:sysadm_r:sysadm_t:s0-s0:c0.c1023
Intente una tarea administrativa, por ejemplo, reiniciar el servicio
sshd
:# systemctl restart sshd
Si no hay salida, el comando ha terminado con éxito.
Si el comando no termina con éxito, imprime el siguiente mensaje:
Failed to restart sshd.service: Access denied See system logs and 'systemctl status sshd.service' for details.