前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【Linux】如何管理SELinux?

【Linux】如何管理SELinux?

作者头像
MaybeHC
发布2024-04-23 19:34:52
1140
发布2024-04-23 19:34:52
举报
文章被收录于专栏:技术之路技术之路

SELinux模式

SELinux模式分类

  1. ermissive 模式:经常用于排故。这个模式,SELinux允许所有访问,即使与规则冲突,但会记录拒绝访问的行为日志。 强制模式和允许模式之间变更, 不需要重启系统。
  2. enforcing 模式: SELinux强制执行访问控制规则。 在强制模式下,如果规 则没有明确允许访问,则拒绝访问,并写入日志。
  3. disable 模式:完全关闭SELinux。不拒绝任何SELinux违规,不予记录。从 强制模式或者允许模式变更到禁用模式,或者从禁用模式变更到强制模式或 者允许模式都 需要重启系统。

SELinux标签

SELinux标签有多个内容:用户,角色,类型和敏感度。

在这里插入图片描述
在这里插入图片描述

更改SELinux模式

查看当前生效的模式

代码语言:javascript
复制
[root@workstation ~]# getenforce
Enforcing

强制模式临时切换为允许模式

代码语言:javascript
复制
[root@workstation ~]# setenforce 0|Permissive

允许模式临时切换为强制模式

代码语言:javascript
复制
[root@workstation ~]# setenforce 1|Enforcing

强制模式和允许模式切换成disabled模式或者disabled模式切换成强制模式和 允许模式,都需要重启系统才能生效。

切换方法:编辑配置文件

代码语言:javascript
复制
[root@workstation ~]# vim /etc/selinux/config
SELINUX=disabled
SELINUXTYPE=targeted

设置SELinux默认策略方法。

控制SELinux上下文

在运行SELinux的系统上,所有进程和文件都会有相应的标签。新文件通常从父目录继承其SELinux上下文,从而确保它们具有适当的上下文。

但是,有两种情况例外: 如果在不同的位置创建文件,然后移动文件, 则该文件将具有创建它 时所在目录的SELinux上下文,而不是目标目录的SELinux上下文。

如果是复制一个保留SELinux上下文的文件(正如使用cp -a 命令),则 SELinux上下文将反映原始文件的位置。

更改SELinux上下文

  1. semanage fcontext命令,声明文件的默认标签,将标签添加至数据库中,需要使用estorecon恢复时才可生效

选项

描述

-a,–add

添加指定对象类型的记录

-d , --delete

删除指定对象类型的记录

-l, --list

列出指定对象类型的记录

  1. estorecon命令,将该semanage fcontext声明的默认标签应用于文件。这样可确保标签符合预期,即便在对文件系统完全重新标记之后也是如此。
  2. chcon命令,更改文件SELinux上下文,它不会将上下文更改保存到SELinux上下文数据库中。当 restorecon命令运行时, chcon命令所做的更改也同样无法保留。此外,如果对整个文件系统进行重新标记,则使用chcon更改过的文件的SELinux上下文将恢复

semanage fcontext命令用于显示和修改默认规则,restorecon命令将使用这个规则恢复文本默认规则。semanage fcontext命令使用扩展的正则表达式指定路径和文件名。比较常见的扩展正则表达式(/.*)?,表示随意匹配/后面接任意数量字符,递归匹配文件夹下的子文件和子文件夹。

示例:
定义文件默认SELinux上下文

下面代码使用semanage fcontext命令为/test目录添加了默认标签,并使用estorecon命令对目录进标签的更新

代码语言:javascript
复制
[root@et8en ~]# mkdir /test
[root@et8en ~]# ll -Zd /test/
drwxr-xr-x. 2 root root unconfined_u:object_r:default_t:s0 6 Jun 24 00:06 /test/
[root@et8en ~]# semanage fcontext -a -t httpd_sys_content_t '/test(/.*)?'
[root@et8en ~]# ll -Zd /test/
drwxr-xr-x. 2 root root unconfined_u:object_r:default_t:s0 6 Jun 24 00:06 /test/
[root@et8en ~]# restorecon -RFv /test/   重置该目录内所有文件规则
Relabeled /test from unconfined_u:object_r:default_t:s0 to system_u:object_r:httpd_sys_content_t:s0
chcon命令临时修改SELinux上下文

这里/test的默认标签为httpd_sys_content_t,我们通过chcon命令临时修改了标签,之后使用restorecon命令将恢复为数据库存储的标签内容

代码语言:javascript
复制
[root@et8en ~]# chcon -t default_t /test
[root@et8en ~]# ll -Zd /test/
drwxr-xr-x. 2 root root system_u:object_r:default_t:s0 6 Jun 24 00:06 /test/
[root@et8en ~]# restorecon -v /test/
Relabeled /test from system_u:object_r:default_t:s0 to system_u:object_r:httpd_sys_content_t:s0
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2024-04-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • SELinux模式
    • SELinux模式分类
      • SELinux标签
        • 更改SELinux模式
        • 控制SELinux上下文
          • 更改SELinux上下文
            • 示例:
        相关产品与服务
        数据库
        云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档