6.6.6、查看 SELinux 安全上下文

这篇具有很好参考价值的文章主要介绍了6.6.6、查看 SELinux 安全上下文。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

关注公众号 “融码一生”,领取全套 PDF / 电子书

  • SELinux 管理过程中,进程是否可以正确地访问文件资源取决于它们的安全上下文。进程和文件都有自己的安全上下文,SELinux 会为进程和文件添加安全信息标签(比如 SELinux 用户、角色、类型、类别等),当运行 SELinux 后所有这些信息都将作为访问控制的依据。
  • 查看文件和目录的安全上下文:
# jy: 使用选项 -Z 查看文件和目录的安全上下文
ls -Z
:<<!
-rw-------.root root system_u:object_r:admin_home_t:s0 anaconda-ks.cfg
-rw-r--r--.root root system_u:object_r:admin_home_t:s0 install.log
-rw-r--r--.root root system_u:object_r:admin_home_t:s0 install.log.syslog
!
  • 查看目录的安全上下文需添加-d选项(代表目录本身,而非目录下的子文件):
ls -Zd /var/www/html/
:<<!
drwxr-xr-x.root root system_u:object_r:httpd_sys_content_t:s0 /var/www/html/
!
  • 查看进程的安全上下文:
# 启动 apache 服务
service httpd start

ps auxZ | grep httpd
:<<!
unconfined_u:system_r:httpd_t:s0 root 25620 0.0 0.5 11188 3304 ? Ss
03:44 0:02 /usr/sbin/httpd
…省略部分输出…
!
  • 只要进程和文件的安全上下文匹配,该进程就可以访问该文件资源。
  • 安全上下文使用:分隔为 4 个字段,其实共有 5 个字段,最后一个“类别”字段是可选的:
#身份字段:角色:类型:灵敏度:[类别]
system_u:object_r:httpd_sys_content_t:s0:[类别]
  • 以下对这 5 个字段的作用进行说明。

1、身份字段(user)

  • 用于标识该数据被哪个身份所拥有,相当于权限中的用户身份。这个字段并没有特别的作用。常见的身份类型有 3 种:
    • root:表示安全上下文的身份是 root
    • system_u:表示系统用户身份,其中_u代表 user
    • user_u:表示与一般用户账号相关的身份,其中_u代表 user
  • user 字段只用于标识数据或进程被哪个身份所拥有,一般系统数据的 user 字段是system_u,而用户数据的 user 字段是user_u
  • SELinux 中到底可以识别多少用户身份字段?可以使用 seinfo 命令查询(SELinux 的相关命令一般都以se开头):
    • seinfo [选项]
      • 选项:
        • -u: 列出 SELinux 中所有的身份(user)
        • -r: 列出 SELinux 中所有的角色(role)
        • -t: 列出 SELinux 中所有的类型(type)
        • -b: 列出所有的布尔值(也就是策略中的具体规则名称)
        • -x: 显示更多的信息
  • SELinux 中能够识别的 user 身份共有 9 种:
seinfo -u
:<<!
Users:9
sysadm_u
system_u
xguest_u
root
guest_u
staff_u
user_u
unconfined_u
git_shell_u
!

2、角色(role)

  • 主要用来表示此数据是进程还是文件或目录。该字段在实际使用中也不需要修改。
  • 常见的角色有(_r代表 role):
    • object_r:代表该数据是文件或目录
    • system_r:代表该数据是进程
  • 使用 seinfo 命令也可以查询 SELinux 中的角色:
seinfo -r
:<<!
Roles:12
guest_r
staff_r
user_r
git_shell_r
logadm_r
object_r
sysadm_r
system_r
webadm_r
xguest_r
nx_server_r
unconfined_r
!

3、类型(type)

  • 类型字段是安全上下文中最重要的字段,进程是否可以访问文件主要就看进程的安全上下文类型字段是否和文件的安全上下文类型字段相匹配,如果匹配则可以访问。
  • 注意:类型字段在文件或目录的安全上下文中被称作类型(type),但在进程的安全上下文中被称作域(domain)。即:在主体(Subject)的安全上下文中这个字段被称为域;在目标(Object)的安全上下文中这个字段被称为类型。域和类型需要匹配(进程的类型要和文件的类型相匹配)才能正确访问。
  • SELinux 中有多少类型也是通过 seinfo 命令查询:
seinfo -t | more
:<<!
Types:3488
#共有3488个类型
bluetooth_conf_t
cmirrord_exec_t
foghorn_exec_t
jacorb_port_t
sosreport_t
etc_runtime_t
…省略部分输出…
!
  • 已知 apache 进程可以访问/var/www/html/(此目录为 RPM 包安装的 apache 的默认网页主目录)目录中的网页文件,所以 apache 进程的域和/var/www/html/目录的类型是匹配的,我们查询一下:
ps auxZ | grep httpd
:<<!
unconfined_u:system_r:httpd_t:s0 root 25620 0.0 0.5 11188 3304 ? Ss
03:44 0:02 /usr/sbin/httpd
#apache进程的域是httpd_t
!

[root@localhost ~]# ls -dZ /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
  • apache 进程的域是httpd_t/var/www/html/目录的类型是httpd_sys_content_t,这个主体的安全上下文类型经过策略规则的比对,是和目标的安全上下文类型匹配的,所以 apache 进程可以访问/var/www/html/目录。
  • 在 SELinux 中最常遇到的问题就是进程的域和文件的类型不匹配,所以一定要掌握如何修改类型字段。

4、灵敏度

  • 灵敏度一般用 s0、s1、s2 来命名,数字代表灵敏度的分级。数值越大代表灵敏度越高。

5、类别

  • 类别字段不是必须有的,所以使用lsps命令查询时并没有看到类别字段。
  • 可以通过 seinfo 命令来查询:
# 查询所有的user字段,并查看详细信息
seinfo -u -x
:<<!
system_u
#user字段名
default level:s0
#默认灵敏度
range:s0 - s0:c0.c1023
#灵敏度可以识别的类别
roles:
#该user能够匹配的role(角色)
object_r
system_r
unconfined_r
!

关注公众号 “融码一生”,领取全套 PDF / 电子书文章来源地址https://www.toymoban.com/news/detail-860820.html

到了这里,关于6.6.6、查看 SELinux 安全上下文的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 从零开始理解Linux中断架构(7)--- Linux执行上下文之中断上下文

            当前运行的loop是一条执行流,中断程序运行开启了另外一条执行流,从上一节得知这是三种跳转的第三类,这个是一个大跳转。对中断程序的基本要求就是 中断执行完毕后要恢复到原来执行的程序 ,除了时间流逝外,原来运行的程序应该毫无感知。        

    2024年02月11日
    浏览(50)
  • 〖大前端 - 基础入门三大核心之JS篇(51)〗- 面向对象之认识上下文与上下文规则

    说明:该文属于 大前端全栈架构白宝书专栏, 目前阶段免费 , 如需要项目实战或者是体系化资源,文末名片加V! 作者:哈哥撩编程,十余年工作经验, 从事过全栈研发、产品经理等工作,目前在公司担任研发部门CTO。 荣誉: 2022年度博客之星Top4、2023年度超级个体得主、谷

    2024年02月05日
    浏览(43)
  • kubernetes--安全上下文(Security Context)

    K8s对pod和容器提供的安全机制,可以设置Pod特权和访问控制 基于用户ID(UID)和组ID(GID),来判定对对象(例如文件)的访问权限 为对象赋予安全性标签 为进程赋予root用户的部分特权而非全部特权 定义使用AppArmor限制容器对资源访问限制 定义pod使用Seccomp限制容器进程的系

    2024年02月02日
    浏览(29)
  • 读数据压缩入门笔记06_上下文转换

    3.3.1.1. 如果这两个符号是相同的,那么行程继续 3.3.1.2. 如果不相同,那么当前行程终止 8.6.1.1. 真实数据中普遍存在 9.3.1.1. 事实上符号之间的顺序很重要 9.3.4.1. lexicographical permutation 9.3.4.2. BWT会打乱数据流中符号的顺序,并试图让相同的符号簇彼此靠近 9.3.4.3. 找出原始数

    2024年02月09日
    浏览(41)
  • linux 基础知识3---上下文

    1、什么是上下文切换? 用户态进入内核态时,进程要传递很多变量、参数给内核, 内核态也要保存用户进程的一些寄存器值,变量等。所谓的进程上下文,可以看作是 用户进程传递给内核的这些参数以及内核要保存的那一套的变量和寄存器和当时的环境 等。 一个进程上下

    2024年02月07日
    浏览(28)
  • Linux性能优化实践——CPU上下文

    Linux是一个多任务操作系统,它支持远大于CPU数量的任务同时运行。这些任务不是真正意义上的并行运行,而是系统在短时间内,将CPU轮流分配给它们,造成任务同时运行的错觉。 CPU需要知道任务从哪里加载,从哪里开始运行是通过设置好的CPU寄存器和程序计数器(Program C

    2024年02月13日
    浏览(52)
  • 从零开始理解Linux中断架构(10)---上下文切换长征路

    有了前面章节的一大堆的铺垫,我们现在考虑一个路径比较长的任务切换: 当前 用户态进程 10#,在中断发生后,被切换到了 用户态进程 15#。        这里将使用异常执行流的概念来解释切换过程。理解了最长的那个切换,其他的任务切换:通过系统调用引起的任务切换,

    2024年02月11日
    浏览(34)
  • linux通过grep根据关键字查找日志文件上下文

    grep -C 10 keyword catalina.out 显示file文件中匹配keyword字串那行以及上下10行 grep -B 10 keyword catalina.out 显示keyword及前10行 grep -A 10 keyword catalina.out 显示keyword及后10行 grep -C 10 keyword catalina.out aaa.txt grep -o keyword catalina.out | wc -l grep -c keyword catalina.out grep -V

    2024年02月16日
    浏览(38)
  • Linux_进程的优先级&&环境变量&&上下文切换&&优先级队列

    什么是优先级? 指定一个进程获取某种资源的先后顺序 本质是进程获取cpu资源的优先顺序 为什么要有优先级 进程访问的资源(CPU)是有限的 操作系统关于调度和优先级的原则:分时操作系统,基本的公平,如果进程因为长时间不被调整,就造成了饥饿问题 Linux的优先级特

    2024年04月09日
    浏览(41)
  • SQLServerException: 服务器主体 “dwCDC“ 无法在当前安全上下文下访问数据库 “dw“

    在Debezium使用过程中,有时候会遇到各种各样的错误和异常。其中之一是\\\"SQLServerException: 服务器主体 ‘dwCDC’ 无法在当前安全上下文下访问数据库 ‘dw’\\\"。本文将详细介绍这个错误的原因和解决方法,并提供相应的源代码示例。 这个错误通常发生在使用Debezium连接到SQL Serv

    2024年02月03日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包