SELinux查看策略规则的方法有哪些

发布时间 - 2023-03-02 00:00:00    点击率:
SELinux查看策略规则的方法:1、使用seinfo命令,查询SELinux的策略提供多少相关规则,一个主体进程能否读取到目标文件资源的重点是在于SELinux的策略以及策略内的各项规则,语法“seinfo [选项]”;2、使用sesearch命令,可查询SELinux策略规则的具体内容,语法“sesearch [选项] [规则类型] [表达式]”。

本教程操作环境:linux7.3系统、Dell G3电脑。

SELinux策略规则查看方法有两个:seinfo和sesearch。

当前 SELinux 的默认策略是 targeted,那么这个策略中到底包含有多少个规则呢?使用 seinfo 命令即可查询。

seinfo命令是用来查询SELinux的策略提供多少相关规则,一个主体进程能否读取到目标文件资源的重点是在于SELinux的策略以及策略内的各项规则,然后再通过该规则的定义去处理各项目标文件的安全上下文,尤其是“类型”部分。

sesearch 命令格式如下:

seinfo [选项]

常用选项:

-a 列出SELinux的状态、规则布尔值、身份识别、角色、类型等所有信息
-t 列出SELinux所有类型(type)的种类
-r 列出SELinux所有角色(role)的种类
-u 列出SELinux所有身份识别(user)的种类
-b 列出所有规则的种类(布尔值)

参考实例:

[root@localhost ~]# seinfo -b
#还记得-b选项吗?就是查询布尔值,也就是查询规则名字
Conditional Booleans:187
#当前系统中有187个规则
allow_domain_fd_use
allow_ftpd_full_access
allow_sysadm_exec_content
allow_user_exec_content
allow_zebra_write_config
…省略部分输出…

seinfo 命令只能看到所有规则的名称,如果想要知道规则的具体内容,就需要使用 sesearch 命令了。

sesearch 命令格式如下:

sesearch [选项] [规则类型] [表达式]

选项:

  • -h:显示帮助信息;

规则类型:

  • --allow:显示允许的规则;

  • --neverallow:显示从不允许的规则;

  • --all:显示所有的规则;

表达式:

  • -s 主体类型:显示和指定主体的类型相关的规则(主体是访问的发起者,这个 s 是 source 的意思,也就是源类型);

  • -t 目标类型:显示和指定目标的类型相关的规则(目标是被访问者,这个 t 是 target 的意思,也就是目标类型);

  • -b 规则名:显示规则的具体内容(b 是 bool,也就是布尔值的意思,这里是指规则名);

下面举几个例子。首先我们演示一下,如果我们知道的是规则的名称,则应该如何查询具体的规则内容。命令如下:

[root@localhost ~]# seinfo -b | grep http
httpd_manage_ipa
…省略部分输出…
#查询和apache相关的规则,有httpd_manage_ipa规则
[root@localhost ~]# sesearch --all -b httpd_manage_ipa
# httpd_manage_ipa规则中具体定义了哪些规则内容呢?使用sesearch命令查询一下
Found 4 semantic*rules:
allow httpd_t var_run_t:dir { getattr search open } ;
allow httpd_t memcached_var_run_t:file { ioctl read write create getattr setattr lock append unlink link rename open } ;
allow httpd_t memcached_var_run_t:dir { ioctl read write getattr lock add_name remove_name search open } ;
allow httpd_t var_t:dir { getattr search open } ;
Found 20 role allow rules:
allow system_r sysadm_r;
allow sysadm_r system_r;
…省略部分输出…

每个规则中都定义了大量的具体规则内容,这些内容比较复杂,一般不需要修改,会查询即可。

可是我们有时知道的是安全上下文的类型,而不是规则的名称。比如,我们已知 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 Found 13 semantic*rules:
...省略部分输出...
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类型的

相关推荐:《Linux视频教程》


# linux  # html  # bool  # var  # apache  # 的是  # 具体内容  # 布尔值  # 该如何  # 几个  # 是因为  # 尤其是  # 不需要  # 重点是  # 是指 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Laravel怎么清理缓存_Laravel optimize clear命令详解  北京的网站制作公司有哪些,哪个视频网站最好?  5种Android数据存储方式汇总  详解MySQL数据库的安装与密码配置  Win10如何卸载预装Edge扩展_Win10卸载Edge扩展教程【方法】  浅谈Javascript中的Label语句  Win11应用商店下载慢怎么办 Win11更改DNS提速下载【修复】  如何快速搭建自助建站会员专属系统?  laravel怎么为API路由添加签名中间件保护_laravel API路由签名中间件保护方法  如何快速搭建个人网站并优化SEO?  DeepSeek是免费使用的吗 DeepSeek收费模式与Pro版本功能详解  利用JavaScript实现拖拽改变元素大小  Windows10电脑怎么查看硬盘通电时间_Win10使用工具检测磁盘健康  如何在阿里云购买域名并搭建网站?  创业网站制作流程,创业网站可靠吗?  Win11怎么关闭专注助手 Win11关闭免打扰模式设置【操作】  如何自定义建站之星网站的导航菜单样式?  javascript和jQuery中的AJAX技术详解【包含AJAX各种跨域技术】  Laravel如何发送系统通知?(Notification渠道示例)  Laravel怎么防止CSRF攻击_Laravel CSRF保护中间件原理与实践  Google浏览器为什么这么卡 Google浏览器提速优化设置步骤【方法】  Laravel如何使用Guzzle调用外部接口_Laravel发起HTTP请求与JSON数据解析【详解】  Laravel如何实现本地化和多语言支持?(i18n教程)  Laravel如何发送系统通知_Laravel Notifications实现多渠道消息通知  如何在 Go 中优雅地映射具有动态字段的 JSON 对象到结构体  Laravel怎么实现验证码功能_Laravel集成验证码库防止机器人注册  *服务器网站为何频现安全漏洞?  电商网站制作价格怎么算,网上拍卖流程以及规则?  香港服务器建站指南:免备案优势与SEO优化技巧全解析  Laravel项目结构怎么组织_大型Laravel应用的最佳目录结构实践  Windows11怎样设置电源计划_Windows11电源计划调整攻略【指南】  Laravel表单请求验证类怎么用_Laravel Form Request分离验证逻辑教程  如何快速打造个性化非模板自助建站?  高性价比服务器租赁——企业级配置与24小时运维服务  七夕网站制作视频,七夕大促活动怎么报名?  西安专业网站制作公司有哪些,陕西省建行官方网站?  Laravel怎么返回JSON格式数据_Laravel API资源Response响应格式化【技巧】  Laravel如何使用Socialite实现第三方登录?(微信/GitHub示例)  Laravel Blade组件怎么用_Laravel可复用视图组件的创建与使用  利用python获取某年中每个月的第一天和最后一天  微博html5版本怎么弄发超话_超话进入入口及发帖格式要求【教程】  java中使用zxing批量生成二维码立牌  如何在企业微信快速生成手机电脑官网?  微信小程序 require机制详解及实例代码  成都网站制作公司哪家好,四川省职工服务网是做什么用?  如何做网站制作流程,*游戏网站怎么搭建?  深圳网站制作设计招聘,关于服装设计的流行趋势,哪里的资料比较全面?  如何快速启动建站代理加盟业务?  Laravel控制器是什么_Laravel MVC架构中Controller的作用与实践  微信小程序 五星评分(包括半颗星评分)实例代码