Мой apache DocumentRoot / var / www является символической ссылкой на другой путь. У цели есть соответствующая метка контекста файла (httpd_sys_content_t), чтобы apache мог читать ее с включенным SELinux. Тем не менее, символическая ссылка сама метят var_t.
[root@localhost var]# ls -lZ
lrwxrwxrwx. root root unconfined_u:object_r:var_t:s0 www -> /srv/www
Мне нужно поменять символическую ссылку с httpd_sys_content_t.
Запуск chcon с опцией -h изначально работает:
[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
Однако это не переживает релабель:
[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
Использование semanage не переименовывает саму ссылку; просто цель:
[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 не имеет опции -h.
Как я могу получить semanage для установки метки самой ссылки, чтобы она оставалась как httpd_sys_content_t после релабеля?
linux
apache-2.2
permissions
symbolic-link
selinux
Стивен Т. Снайдер
источник
источник
Ответы:
Я понял:
semanage имеет опцию,
-f
которая позволяет вам указать тип файла, как показано в поле режима с помощьюls
( dдля каталогов,--
для обычных файлов, lдля ссылок). Когда-f -l
используется, сама ссылка является целевой.Смотрите
semanage-fcontext
справочную страницу.источник
-f -l
как это тот синтаксис, который был в силе, когда он был написан. Более поздние версии semanage (EL7) используют-f l
.