如何将SELinux标签分配给具有管理功能的符号链接,使其在重新标签后仍然存在?


12

我的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重新标记符号链接。

最初使用-h选项运行chcon似乎可以工作:

[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

使用管理不会重新标记链接本身。只是目标:

[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选项。

如何获得管理权来设置链接本身的标签,以便在重新标记后仍保留为httpd_sys_content_t?


哇,我获得了这个问题的“热门问题”徽章,还没有投票?
Steven T. Snyder

Answers:


10

我想到了:

semanage有一个选项-f,允许您指定模式字段中所显示的文件类型,方式是lsd对于目录,--对于常规文件,l对于链接)。当-f -l被使用时,链接本身的目标。

[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

请参见semanage-fcontext手册页。


3
该答案正确使用,-f -l因为这是编写该语法时有效的语法。使用更高版本的semanage(EL7)-f l
user9517
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.