SELinux学习笔记

本文介绍了SELinux,其目的是控制程序访问文件。阐述了管控流程,即根据策略验证安全上下文决定是否允许访问。还介绍了相关属性、三种运行状态,包括实际运作、宽容和禁用状态。此外,详细讲解了getsebool、seinfo等多个SELinux常用命令。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

简介

SELinux的目的是控制 Subject( 程序 ) 访问 Object( 文件 ).

管控流程

Subject发起对Object的访问请求, SELinux根据其策略( targeted / mls / minimum )设定, 验证Subject和Object的安全性环境( Security Context ), 验证通过, 允许访问, 验证失败, 访问拒绝.
注:[^ 国内Security Context多称作安全上下文]

相关属性

先来看下用户目录下的安全上下文信息

[root@server ~]# ls -Z
-rw-------. root root system_u:object_r:admin_home_t:s0 anaconda-ks.cfg
drwxr-xr-x. root root unconfined_u:object_r:bin_t:s0   bin
drwxr-xr-x. root root unconfined_u:object_r:admin_home_t:s0 git-dir
drwxr-xr-x. root root unconfined_u:object_r:admin_home_t:s0 temp

以 anaconda-ks.cfg 文件为例, 其安全上下文信息是 system_u:object_r:admin_home_t:s0
它的信息由 : 分为四段, 前三段依次为 Identify:role:type ( 身份识别:角色:类型 )

  • Identify
    标记文件的产生者
    • unconfined_u
      不受限的用户, 改文件由不受限的程序产生.
      一般来说, 系统内账号登录后获取的获取的bash环境就不受SELinux管控, 由它产生的文件, 多半就是unconfined_u
    • system_u
      系统自身产生的文件
  • Role
    显示文件的属性
    • object_r
      该文件是普通文件或目录文件
    • system_r
      该文件是程序
  • Type
    针对程序, 它显示程序所属的Domain
    针对文件, 它显示文件的Type
    Domain会对特定的Type有读写权限, 由SELinux的策略管控

SELinux运行状态

SELinux有三种运行状态( 或者说是模式 ).

  • enforcing
    实际运作状态
    SELinux的所有功能均运作且生效
  • permissive
    宽容状态
    SELinux会根据Policy来验证Security Context, 但是不会拦截文件的读写
    改状态多用来Debug
  • disabled
    禁用状态
    SELinux被停用

使用getenforce命令可以查看系统当前SELinux的运行状态
使用setenforce [0|1]可以实现在permissive和enforcing间的切换
setenforce命令在SELinux是disabled的状态下无作用
[^ 有时候, SELinux从disabled切换至enforcing后, 会有服务无法启动, 提示没权限读取 /lib/xxx 的数据, 这多半是由于重新写入SELinux Type( Relable )时出错导致, 可以在permissive状态下执行 restorecon -Rv / 命令解决]

SELinux命令

getsebool

获取SELinux的布尔值设定

seinfo, sesearch

SELinux Policy查询命令
注:[^ 不是系统默认包含的命令, 需要安装 setools-console 包]

setsebool

设定SELinux的布尔值
不带 -P 参数为临时生效(系统重启后失效), -P 则为立即生效且永久生效

chcon

修改文件的Security Context

restorecon

恢复文件默认Security Context

semanage

修改SELinux Policy

sealert

[^ 需安装 setroubleshoot ]
很棒的辅助工具!!!
在系统日志中记录因SELinux而导致的失败信息, 同时提供建议处理方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值