Linux
如何將 SELinux 標籤分配給帶有 semanage 的符號連結,以便在重新標記後仍然存在?
我的 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
使用 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?
我想到了:
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
請參閱
semanage-fcontext
手冊頁。