Tengo un cuadro de vainilla CentOS 7 con SELinux que cumple con la política específica:
$ ls -lZ /etc/resolv.conf
-rw-r--r--. root root system_u:object_r:net_conf_t:s0 /etc/resolv.conf
$ sudo id -Z
unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
$ sudo semanage login -l
Login Name SELinux User MLS/MCS Range Service
__default__ unconfined_u s0-s0:c0.c1023 *
root unconfined_u s0-s0:c0.c1023 *
system_u system_u s0-s0:c0.c1023 *
$ sudo semanage user -l
SELinux User Prefix MCS Level MCS Range SELinux Roles
root user s0 s0-s0:c0.c1023 staff_r sysadm_r system_r unconfined_r
system_u user s0 s0-s0:c0.c1023 system_r unconfined_r
unconfined_u user s0 s0-s0:c0.c1023 system_r unconfined_r
user_u user s0 s0 user_r
xguest_u user s0 s0 xguest_r
user_u user s0 s0 user_r
sysadm_u user s0 s0-s0:c0.c1023 sysadm_r
staff_u user s0 s0-s0:c0.c1023 staff_r sysadm_r system_r unconfined_r
guest_u user s0 s0 guest_r
Dado lo anterior, la raíz es un usuario unconfined_u
SELinux que tiene roles SELinux system_r
y unconfined_r
. Además, el archivo /etc/resolv.conf tiene un contexto de usuario system_u
y un rol object_r
, que no es uno de los roles de unconfined_u
. ¿Por qué SELinux no evita que la raíz lea / escriba este archivo?