Ste*_*der 14 linux permissions selinux symbolic-link apache-2.2
我的 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
Run Code Online (Sandbox Code Playgroud)
我需要用 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
Run Code Online (Sandbox Code Playgroud)
但是,这在重新标记后无法生存:
[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
Run Code Online (Sandbox Code Playgroud)
使用 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
Run Code Online (Sandbox Code Playgroud)
semanage 没有 -h 选项。
如何让 semanage 设置链接本身的标签,以便在重新标记后保持为 httpd_sys_content_t?
Ste*_*der 11
我想到了:
semanage 有一个选项-f
,允许您指定文件类型,如模式字段中所示ls
(d对于目录、--
常规文件、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
Run Code Online (Sandbox Code Playgroud)
请参阅semanage-fcontext
手册页。
归档时间: |
|
查看次数: |
13652 次 |
最近记录: |