如何查询影响类型的所有selinux规则/默认文件上下文/等


10

我需要了解正在运行的系统当前规则下与selinux类型相关的所有信息:

  • 允许,允许审核,不审核规则。
  • 使用类型标记了上下文的文件。
  • 过渡。

...以及其他任何信息。

是否可以使用任何命令查询该信息,还是应该下载所有与selinux相关的“ src”软件包,过滤掉未使用的模块,并对该信息的每个文件进行grep?必须有一种更简单的方法来做到这一点。

Answers:


10

一些获取此信息的命令是(示例使用httpd_log_t):

  1. seinfo

    # seinfo -x --type=httpd_log_t /etc/selinux/default/policy/policy.26
       httpd_log_t
          file_type
          non_security_file_type
          logfile
    
  2. sesearch

    # sesearch --dontaudit -t httpd_log_t /etc/selinux/default/policy/policy.26 | head
    Found 35 semantic av rules:
        dontaudit run_init_t file_type : dir { getattr search open } ;
        dontaudit staff_t non_security_file_type : file getattr ;
        dontaudit staff_t non_security_file_type : dir { ioctl read getattr lock search open } ;
        dontaudit staff_t non_security_file_type : lnk_file getattr ;
        dontaudit staff_t non_security_file_type : sock_file getattr ;
        dontaudit staff_t non_security_file_type : fifo_file getattr ;
        dontaudit unconfined_t non_security_file_type : file getattr ;
        dontaudit unconfined_t non_security_file_type : dir { ioctl read getattr lock search open } ;
        dontaudit unconfined_t non_security_file_type : lnk_file getattr ;
    
  3. semanage

    # semanage fcontext -l | grep httpd_log_t
    /etc/httpd/logs                                    all files          system_u:object_r:httpd_log_t:s0
    /var/log/apache(2)?(/.*)?                          all files          system_u:object_r:httpd_log_t:s0
    /var/log/apache-ssl(2)?(/.*)?                      all files          system_u:object_r:httpd_log_t:s0
    /var/log/cacti(/.*)?                               all files          system_u:object_r:httpd_log_t:s0
    /var/log/cgiwrap\.log.*                            regular file       system_u:object_r:httpd_log_t:s0
    /var/log/horde2(/.*)?                              all files          system_u:object_r:httpd_log_t:s0
    /var/log/httpd(/.*)?                               all files          system_u:object_r:httpd_log_t:s0
    /var/log/lighttpd(/.*)?                            all files          system_u:object_r:httpd_log_t:s0
    /var/log/piranha(/.*)?                             all files          system_u:object_r:httpd_log_t:s0
    /var/www(/.*)?/logs(/.*)?                          all files          system_u:object_r:httpd_log_t:s0
    

参考:RHEL6 SELinux手册


有什么办法知道哪个模块使用指定的类型?即如何将该信息连接到已加载的selinux策略模块(semodule -l)?
YankoHernándezÁlvarez2013年

好的,我将缩小问题范围,以将此答案标记为已接受,并将第一个方面与另一个问题分开。
YankoHernándezÁlvarez2013年

@YankoHernándezÁlvarez信不信由你,我试图弄清楚这一点。我已将您的发现发布在您其他问题上。
dawud

对于那些寻找的人,另一个问题在这里
Michael Mol
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.