修改文件上下文:
以访问Apache返回Forbidden为例,非/var/www/目录的虚拟主机)
Apache路径(/var/www/)的上下文为httpd_sys_content_t
下面介绍三种方法,详见下文。
暂时性修改:
方法一:(直接修改上下文)
chcon-R -thttpd_sys_rw_content_t /http_vhost_test/
因为/http_vhost_test的目录的上下文是default_t
所以在页面访问的时候会返回Forbidden
指令的 -R参数,表示:目录递归
-t参数,表示:设置的上下文为
方法二:(让目录自行参照标准目录的上下文)
chcon -R --reference=/var/www/ /http_vhost_test/
指令的 --reference,表示:被参照上下文的那个目录
-R,表示:目录递归
永久性修改(修改写入内核):
方法一:(使用semanager工具修改)
semanagefcontent -a -t http_sys_content_t“/http_vhost_test(/.*)?”
指令的 fcontent,表示:针对文件进行修改
-a,表示:--add,添加指定对象类型的记录Add a record of thespecified object type
-t,表示:--type TYPE SELinux Type forthe object SELinux的对象类型。
“/httptest(/.*)?” 表示:正则表达式只需要将http_vhost_test修改为文件所在的目录即可。
执行完这个语句,ls -Z /http_vhost_test会发现文件的上下文并未修改。因为上面的操作是修改内核的,所以需要重启机器或者执行restorecon -FRv / http_vhost_test,重新载入内核。