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?