Ho una scatola CentOS 7 di vaniglia con SELinux che impone la policy mirata:
$ 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
Dato quanto sopra, root è un utente unconfined_u
SELinux che ha ruoli SELinux system_r
e unconfined_r
. Inoltre, il file /etc/resolv.conf ha un% usersystem_u
context e object_r
role, che non è uno dei ruoli di unconfined_u
. Perché SELinux non impedisce a root di leggere / scrivere questo file?