Încerc să înțeleg cum funcționează cu adevărat utilizatorii confinați Selinux, dar există câteva comportamente pe care încă nu le pot înțelege.
Conform palarie rosie
Capabilitățile utilizatorului SELinux
Utilizatorii stuff_u ar trebui să poată rula sudo, dar nu su.
Deci am creat utilizatorul un utilizator și l-a mapat la staff_u
[someuser@testserver ~]$ id -Z
staff_u:staff_r:staff_t:s0-s0:c0.c1023
Acum, dacă adaug permisiuni complete folosind sudo, dar nu setez rolul/tipul pe sudoers, nu voi putea face mare lucru (cum era de așteptat).
[someuser@testserver ~]$ sudo -l
Potrivirea intrărilor implicite pentru un utilizator de pe serverul de testare:
!visiblepw, always_set_home, match_group_by_gid, always_query_group_plugin, env_reset, env_keep="COLORS DISPLAY HOSTNAME HISTSIZE KDEDIR LS_COLORS", env_keep+="MAIL PS1 PS2 QTDIR USERNAME LANG LC_ADDRESS LC_CTYPE,
env_keep+="LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES", env_keep+="LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE", env_keep+="LC_TIME LC_ALL LANGUAGE LINGUAS , _XKBORITY_CHARSET",
secure_path=/sbin\:/bin\:/usr/sbin\:/usr/bin
Un utilizator poate rula următoarele comenzi pe serverul de testare:
(TOȚI) NOPASSWD: TOȚI
[someuser@testserver ~]$ sudo ls -la /var/log/audit/audit.log
ls: nu poate accesa „/var/log/audit/audit.log”: Permisiune refuzată
[someuser@testserver ~]$ sudo ausearch -m avc -ts recent
Eroare la deschiderea fișierului de configurare (permisiune refuzată)
NOTĂ - folosind jurnalele încorporate: /var/log/audit/audit.log
Eroare la deschiderea /var/log/audit/audit.log (permisiune refuzată)
[someuser@testserver ~]$
Dacă schimb sudoers pentru a face tranziția la sysadm_r și sysadm_t, mă așteptam să obțin permisiunea de a face orice, dar nu este exact ceea ce primesc.
Pot face multe lucruri:
[someuser@testserver ~]$ sudo -l
Potrivirea intrărilor implicite pentru un utilizator de pe serverul de testare:
!visiblepw, always_set_home, match_group_by_gid, always_query_group_plugin, env_reset, env_keep="COLORS DISPLAY HOSTNAME HISTSIZE KDEDIR LS_COLORS", env_keep+="MAIL PS1 PS2 QTDIR USERNAME LANG LC_ADDRESS LC_CTYPE,
env_keep+="LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES", env_keep+="LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE", env_keep+="LC_TIME LC_ALL LANGUAGE LINGUAS , _XKBORITY_CHARSET",
secure_path=/sbin\:/bin\:/usr/sbin\:/usr/bin
Un utilizator poate rula următoarele comenzi pe serverul de testare:
(ALL) ROLE=sysadm_r TYPE=sysadm_t NOPASSWD: ALL
[someuser@testserver ~]$ sudo ausearch -m avc -ts recent | wc -l
66
[someuser@testserver ~]$ sudo ls -la /var/log/audit/audit.log
-rw-------. 1 rădăcină rădăcină 1996980 30 iulie 12:55 /var/log/audit/audit.log
[someuser@testserver ~]$ sudo cat /var/log/audit/audit.log | wc -l
8172
[someuser@testserver ~]$
Dar unele comenzi sunt încă blocate, de exemplu postsuper din pachetul postfix.
[someuser@testserver ~]$ sudo postsuper
sesh: imposibil de executat /sbin/postsuper: Permisiune refuzată
[someuser@testserver ~]$ fișier /sbin/postsuper
/sbin/postsuper: nu se poate deschide „/sbin/postsuper” (permisiune refuzată)
[someuser@testserver ~]$ fișier sudo /sbin/postsuper
/sbin/postsuper: obiect partajat LSB ELF pe 64 de biți, x86-64, versiunea 1 (SYSV), legat dinamic, interpret /lib64/ld-linux-x86-64.so.2, pentru GNU/Linux 3.2.0, BuildID[sha1]=aa0157870508c475195fe5fb1dafe5a9b3898a61, eliminat
[someuser@testserver ~]$
Poate cineva să-mi explice, vă rog, motivul? Cel mai ciudat lucru este că nu văd nicio refuz pe /var/log/audit/audit.log pentru comanda postsuper. Dar trebuie să aibă legătură cu SELINUX pentru că dacă schimb utilizatorul înapoi la unconfined_u totul funcționează.