SElinux 进程是否可以访问文件

http://c.biancheng.net/linux_tutorial/18/

只有进程的安全上下文(域)和文件的安全上下文(类型) 按照策略匹配成功后,进程才可以访问文件。

例下:httpd进程是否可以访问文件/var/www/html/

可是我们有时知道的是安全上下文的类型,而不是规则的名称。比如,我们已知 apache 进程的域是 httpd_t,而 /var/www/html/ 目录的类型是 httpd_sys_content_t。而 apache 之所以可以访问 /var/www/html/ 目录,是因为 httpd_t 域和 httpd_sys_content_t 类型匹配

[root@localhost ~]# ps auxZ | grep httpd  #查看进程的安全上下文
unconfined_u:system_r:httpd_t:s0 root 25620 0.0 0.5 11188 36X6 ? Ss
03:44 0:03 /usr/sbin/httpd
#apache进程的域是httpd_t
[root@localhost ~]# ls -Zd /var/www/html/  #查看文件或目录的安全上下文
drwxr-xr-x. root root system_u:object_r:httpd_sys_content_t:s0 /var/www/html/
#/var/www/html/ 目录的类型是 httpd_sys_content_t
[root@localhost ~]# sesearch --all -s httpd_t -t httpd_sys_content_t
...省略部分输出...
allow httpd_t httpd_sys_content_t : file { ioctl read getattr lock open };
allow httpd_t httpd_sys_content_t : dir { ioctl read getattr lock search open };
allow httpd_t httpd_sys_content_t : lnk_file { read getattr };
allow httpd_t httpd_sys_content_t : file { ioctl read getattr lock open };
...省略部分输出...
#可以清楚地看到httpd_t域是允许访间和使用httpd_sys_content_t类型的

 

 sesearch 命令格式如下:

[root@localhost ~]# sesearch [选项] [规则类型] [表达式]

选项:

  • -h:显示帮助信息;

规则类型:

  • --allow:显示允许的规则;
  • --neverallow:显示从不允许的规则;
  • --all:显示所有的规则;

表达式:

    • -s 主体类型:显示和指定主体的类型相关的规则(主体是访问的发起者,这个 s 是 source 的意思,也就是源类型);
    • -t 目标类型:显示和指定目标的类型相关的规则(目标是被访问者,这个 t 是 target 的意思,也就是目标类型);
    • -b 规则名:显示规则的具体内容(b 是 bool,也就是布尔值的意思,这里是指规则名);
posted @ 2020-06-04 14:13  wjbooks  阅读(420)  评论(0)    收藏  举报