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?
linux
apache-2.2
permissions
symbolic-link
selinux
Steven T. Snyder
źródło
źródło
Odpowiedzi:
Rozgryzłem to:
semanage ma opcję,
-f
która pozwala określić typ pliku pokazany w polu trybu przezls
( ddla katalogów,--
dla zwykłych plików, ldla łączy). Gdy-f -l
jest używany, sam link jest kierowany.Zobacz
semanage-fcontext
stronę manuala.źródło
-f -l
ponieważ jest to składnia, która obowiązywała podczas jej pisania. Późniejsze wersje użycia semanage (EL7)-f l
.