Come posso assegnare un'etichetta SELinux a un collegamento simbolico con semanage in modo che persista dopo una nuova etichetta?


12

Il mio apache DocumentRoot / var / www è un collegamento simbolico a un altro percorso. Il target ha l'etichetta di contesto file appropriata (httpd_sys_content_t) in modo che apache possa leggerlo con SELinux abilitato. Tuttavia, il collegamento simbolico stesso è etichettato con var_t.

[root@localhost var]# ls -lZ
lrwxrwxrwx. root root unconfined_u:object_r:var_t:s0 www -> /srv/www

Ho bisogno di rietichettare il collegamento simbolico con httpd_sys_content_t.

L'esecuzione di chcon con l'opzione -h inizialmente sembra funzionare:

[root@localhost var]# chcon -h -t httpd_sys_content_t /var/www
[root@localhost var]# ls -lZ
lrwxrwxrwx. root root unconfined_u:object_r:httpd_sys_content_t:s0 www -> /srv/www

Tuttavia, questo non sopravvive a una nuova etichetta:

[root@localhost var]# restorecon -Rv .
restorecon reset /var/www context system_u:object_r:httpd_sys_content_t:s0->syst
em_u:object_r:var_t:s0

L'uso della semanage non comporta l'etichettatura del collegamento stesso; solo l'obiettivo:

[root@localhost var]# semanage fcontext -a -t httpd_sys_content_t /var/www
[root@localhost var]# restorecon -Rv .
[root@localhost var]# ls -lZ
lrwxrwxrwx. root root unconfined_u:object_r:var_t:s0 www -> /srv/www

semanage non ha l'opzione -h.

Come posso ottenere semanage per impostare l'etichetta del link stesso in modo che rimanga come httpd_sys_content_t dopo una rietichettatura?


Wow, ho il badge della domanda popolare per questo e nessun voto?
Steven T. Snyder,

Risposte:


9

L'avevo capito:

semanage ha un'opzione -fche ti permette di specificare un tipo di file come mostrato nel campo mode da ls( dper directory, --per file regolari, lper collegamenti). Quando -f -lviene utilizzato, il collegamento stesso viene preso di mira.

[root@localhost var]# semanage fcontext -f -l -a -t httpd_sys_content_t /var/www
[root@localhost var]# restorecon -Rv .
restorecon reset /var/www context system_u:object_r:var_t:s0->system_u:object_r:httpd_sys_content_t:s0

Vedi la semanage-fcontextpagina man.


3
Questa risposta utilizza correttamente -f -lpoiché questa è la sintassi che era in vigore al momento della sua scrittura. Le versioni successive di semanage (EL7) utilizzano -f l.
user9517
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.