ubuntu下selinux报错怎么办
导读:Ubuntu 下 SELinux 报错排查与修复 一、先确认是否真的在用 SELinux Ubuntu 默认启用的是 AppArmor 而非 SELinux。先查看状态,避免误判: 查看模式:getenforce(返回 Enforcin...
Ubuntu 下 SELinux 报错排查与修复
一、先确认是否真的在用 SELinux
- Ubuntu 默认启用的是 AppArmor 而非 SELinux。先查看状态,避免误判:
- 查看模式:
getenforce(返回 Enforcing/Permissive/Disabled) - 查看详细:
sestatus
- 查看模式:
- 若显示为 Disabled,但仍有“SELinux denied”日志,可能是曾经安装过相关组件或镜像里自带策略,继续按下方步骤定位。
二、常见报错与对应修复
-
修改了服务端口(如 SSH)后启动失败,日志出现 “Permission denied” 绑定端口
- 安装策略工具:
sudo apt-get -y install selinux-policy-devel - 查看 ssh 当前端口类型:
semanage port -l | grep ssh(常见为 ssh_port_t tcp 22) - 添加新端口到 SELinux:
sudo semanage port -a -t ssh_port_t -p tcp < 你的端口> - 重启服务:
sudo systemctl restart sshd - 如启用防火墙,放行新端口(示例):
sudo ufw allow < 你的端口> /tcp或按需配置 iptables。
- 安装策略工具:
-
出现大量 “avc: denied” 被拒绝日志
- 快速定位 AVC 记录:
sudo ausearch -m avc -ts recent或sudo aureport -m avc - 临时切到宽容模式验证:
sudo setenforce 0(仅用于排查,确认是 SELinux 引起后再恢复) - 生成自定义策略模块(示例):
sudo ausearch -m avc -ts recent | audit2allow -M myfix & & sudo semodule -i myfix.pp - 恢复强制模式:
sudo setenforce 1。
- 快速定位 AVC 记录:
-
误装/误启用 SELinux 导致系统或容器异常
- 临时放宽策略:
sudo setenforce 0 - 永久关闭:编辑 /etc/selinux/config,将
SELINUX=enforcing改为SELINUX=disabled,保存并重启 - 如需彻底移除相关包,可结合
apt purge清理(请先确认不再需要 SELinux)。
- 临时放宽策略:
三、启用或重装 SELinux 的正确姿势
- 安装基础与默认策略:
sudo apt updatesudo apt install selinux-basics selinux-policy-default
- 激活并启用:
- 执行激活:
sudo selinux-activate - 设置模式:
sudo setenforce 1(或编辑 /etc/selinux/config 设为 enforcing 后重启)
- 执行激活:
- 注意:Ubuntu 对 SELinux 的集成度与上游 RHEL/CentOS 不同,部分功能或软件可能缺少策略支持,生产环境需充分测试。
四、实用命令清单
- 状态与模式:
getenforce、sestatus - 动态切换:
sudo setenforce 0|1(0=Permissive,1=Enforcing) - 策略与端口:
semanage port -l | grep < 服务名>、sudo semanage port -a -t < type> -p tcp < 端口> - 日志与审计:
sudo ausearch -m avc -ts recent、sudo aureport -m avc、grep selinux /var/log/audit/audit.log - 策略模块:
sudo audit2allow -M < 模块名>、sudo semodule -i < 模块名> .pp
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: ubuntu下selinux报错怎么办
本文地址: https://pptw.com/jishu/777712.html
