SELinux权限如何在Ubuntu管理
导读:Ubuntu 上 SELinux 权限管理指南 一 前置说明与准备 Ubuntu 默认启用的是 AppArmor,并非 SELinux。如需使用 SELinux,需要安装组件并切换安全框架。准备步骤: 安装基础与策略包:sudo apt...
Ubuntu 上 SELinux 权限管理指南
一 前置说明与准备
- Ubuntu 默认启用的是 AppArmor,并非 SELinux。如需使用 SELinux,需要安装组件并切换安全框架。准备步骤:
- 安装基础与策略包:sudo apt update & & sudo apt install selinux-basics selinux-policy-default selinux-utils auditd。
- 启用并检查状态:sudo selinux-activate & & sestatus;若提示未找到 selinux-activate,可先安装 selinux-basics 再执行。
- 初次启用建议先设为宽容模式排查:sudo setenforce 0,确认无误后再切回强制模式。以上要点基于 Ubuntu 默认使用 AppArmor、需手动安装 SELinux 的事实与启用流程。
二 启用与模式切换
- 查看状态:
- 当前模式:getenforce(返回 Enforcing/Permissive/Disabled)
- 详细状态:sestatus
- 临时切换(立即生效,重启后失效):
- 宽容模式:sudo setenforce 0
- 强制模式:sudo setenforce 1
- 永久生效(重启后生效):
- 编辑 /etc/selinux/config,设置 SELINUX=enforcing|permissive|disabled
- 注:从 Disabled 切换到 Enforcing/Permissive 通常需要重启系统。以上为 SELinux 三种模式的标准管理方式。
三 日常权限管理操作
- 文件与目录上下文
- 查看上下文:ls -Z /path
- 添加本地文件上下文规则:sudo semanage fcontext -a -t “/path(/.*)?”
- 应用上下文:sudo restorecon -Rv /path
- 端口标签
- 添加端口类型:sudo semanage port -a -t http_port_t -p tcp 8080
- 布尔值(服务特性开关)
- 持久开启布尔:sudo setsebool -P httpd_enable_homedirs 1
- 策略模块
- 列出模块:semodule -l
- 加载模块:sudo semodule -i my_policy.pp
- 以上命令覆盖 SELinux 在 Ubuntu 上最常见的权限管理动作:上下文、端口、布尔与模块管理。
四 日志分析与排错
- 查看拒绝日志:sudo ausearch -m avc -ts recent
- 生成可读解释:sudo ausearch -m avc -ts recent | audit2why
- 从日志生成并加载策略模块(审慎使用):
- grep avc /var/log/audit/audit.log | audit2allow -M mypol
- sudo semodule -i mypol.pp
- 排错建议:先在 Permissive 模式下验证问题是否由 SELinux 引起,再回到 Enforcing 并通过最小权限策略修正。以上流程可快速定位并修复 AVC 拒绝。
五 自定义策略与容器场景
- 自定义策略最小示例
- 安装开发包:sudo apt-get install selinux-policy-dev
- 生成模板:mkdir my_policy & & cd my_policy & & sepolgen --init
- 编辑策略文件(如定义类型与允许规则),然后编译安装:
- make -f /usr/share/selinux/devel/Makefile
- sudo semodule -i my_policy.pp
- 按需为可执行文件设置类型并恢复上下文:restorecon -Rv /usr/bin/myapp
- 容器场景
- Ubuntu 默认使用 AppArmor 管理容器权限;如使用 SELinux,需确保宿主机启用 SELinux 并为容器与卷正确设置 SELinux 标签(如容器运行时的 :Z/:z 卷标记),否则可能出现访问受限。生产环境建议先在测试环境充分验证策略。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: SELinux权限如何在Ubuntu管理
本文地址: https://pptw.com/jishu/749094.html
