Jak przypisać etykietę SELinux do dowiązania symbolicznego z semanage, aby pozostało po relabelie?

12

Mój apache DocumentRoot / var / www jest dowiązaniem symbolicznym do innej ścieżki. Obiekt docelowy ma odpowiednią etykietę kontekstu pliku (httpd_sys_content_t), aby apache mógł go odczytać przy włączonym SELinux. Jednak samo łącze symboliczne jest oznaczone jako var_t.

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

Muszę ponownie oznaczyć link symboliczny za pomocą httpd_sys_content_t.

Uruchomienie chcon z opcją -h początkowo wydaje się działać:

[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

Nie przetrwa to jednak etykiety:

[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

Korzystanie z semanage nie powoduje ponownego oznakowania samego łącza; tylko cel:

[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 nie ma opcji -h.

Jak uzyskać semanage, aby ustawić etykietę samego linku, aby pozostał on jako httpd_sys_content_t po nazwie etykiety?

Steven T. Snyder
źródło
Wow, mam plakietkę Popularne pytanie na ten temat i nie mam głosów?
Steven T. Snyder

Odpowiedzi:

10

Rozgryzłem to:

semanage ma opcję, -fktóra pozwala określić typ pliku pokazany w polu trybu przez ls( ddla katalogów, --dla zwykłych plików, ldla łączy). Gdy -f -ljest używany, sam link jest kierowany.

[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

Zobacz semanage-fcontextstronę manuala.

Steven T. Snyder
źródło
3
Ta odpowiedź używa poprawnie, -f -lponieważ jest to składnia, która obowiązywała podczas jej pisania. Późniejsze wersje użycia semanage (EL7) -f l.
user9517