SELinux修改文件上下文:

修改文件上下文:



以访问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,重新载入内核。

你可能感兴趣的:(SELinux修改文件上下文:)