温馨提示×

如何重置ubuntu selinux

小樊
39
2026-10-01 10:45:14
栏目: 智能运维

在 Ubuntu 上需要注意一点:Ubuntu 默认并不使用 SELinux,而是使用 AppArmor 作为默认 MAC(强制访问控制)安全模块。SELinux 主要在 RHEL / CentOS / Fedora 中使用。

下面分情况说明。


一、确认 Ubuntu 是否启用了 SELinux

getenforce
  • 如果返回 Command not found → SELinux 未安装
  • 如果返回 Disabled → 已安装但未启用
  • 如果返回 Enforcing / Permissive → 已启用

查看是否安装:

dpkg -l | grep selinux

二、如果 Ubuntu 上启用了 SELinux(较少见)

1️⃣ 重置 SELinux 上下文(最常用)

restorecon -Rv /

或只重置某个目录:

restorecon -Rv /var/www

2️⃣ 重置 SELinux 策略/状态

编辑配置文件:

sudo nano /etc/selinux/config

示例:

SELINUX=enforcing
SELINUXTYPE=targeted

改为:

SELINUX=permissive

重启后生效。

3️⃣ 重新生成 SELinux 策略数据库(彻底重置)

sudo fixfiles onboot
sudo reboot

或立即执行:

sudo fixfiles restore

三、如果你其实是想“重置 AppArmor”(Ubuntu 默认)

重置 AppArmor 配置

sudo aa-remove-unknown
sudo systemctl restart apparmor

重新加载所有配置

sudo apparmor_parser -r /etc/apparmor.d/*

四、常见误解澄清

❌ “Ubuntu 用 SELinux”
✅ 默认是 AppArmor

❌ “重置 SELinux 就是关掉它”
✅ 重置 ≠ 禁用,只是恢复策略状态


五、建议

如果你是:

  • 服务器安全加固 → 用 AppArmor(Ubuntu 推荐)
  • 学习 SELinux → 建议用 CentOS / Rocky / AlmaLinux
  • 程序权限报错 → 先确认是 SELinux 还是 AppArmor

如果你愿意,可以告诉我:

  • Ubuntu 版本
  • 是否手动安装过 SELinux
  • 遇到的具体问题(权限/服务起不来等)

我可以给你更精确的步骤。

0 踩