温馨提示×

如何备份ubuntu selinux规则

小樊
43
2026-10-13 03:45:47
栏目: 智能运维

在 Ubuntu 上,需要说明一点:

Ubuntu 默认并没有启用 SELinux,而是使用 AppArmor 作为默认 MAC(强制访问控制)安全模块。
只有当你 手动安装并启用了 SELinux(如 selinux-basics、selinux-policy-*)时,才需要备份 SELinux 规则。

下面分情况说明。


一、先确认 Ubuntu 是否在使用 SELinux

getenforce
  • Disabled / Permissive / Enforcing
  • 如果提示 command not found,说明 SELinux 未安装

查看当前模式:

sestatus

二、SELinux 规则组成(需要备份什么)

SELinux 规则主要来自以下几部分:

  1. 策略模块(Policy Modules)
    • 自定义模块(.pp 文件)
  2. SELinux 布尔值(Booleans)
  3. 文件安全上下文(File Contexts)
  4. 用户映射(可选)

三、备份 SELinux 规则的方法

1️⃣ 备份 SELinux 布尔值(最常用)

getsebool -a > selinux_booleans.txt

恢复:

setsebool -P <name> <on|off>

(可写脚本批量恢复)


2️⃣ 备份已安装的 SELinux 策略模块

列出模块:

semodule -l

备份所有自定义模块(推荐):

mkdir selinux_backup
semodule -l | awk '{print $1}' | while read m; do
    semodule -E "$m" -o "selinux_backup/$m.pp"
done

恢复模块:

semodule -i selinux_backup/*.pp

3️⃣ 备份文件安全上下文(file contexts)

semanage fcontext -l > selinux_fcontexts.txt

恢复:

while read line; do
    semanage fcontext $line
done < selinux_fcontexts.txt
restorecon -Rv /

4️⃣ 一键整体备份(推荐做法)

mkdir -p /backup/selinux
getsebool -a > /backup/selinux/booleans.txt
semanage fcontext -l > /backup/selinux/fcontexts.txt
semodule -l | awk '{print $1}' | while read m; do
    semodule -E "$m" -o "/backup/selinux/$m.pp"
done

四、Ubuntu 用户的重要提醒 ⚠️

如果你 其实是想备份 Ubuntu 的安全规则,你可能真正需要的是:

✅ AppArmor(Ubuntu 默认)

sudo tar czf apparmor_backup.tar.gz /etc/apparmor.d

查看状态:

sudo aa-status

五、总结

系统 安全模块 备份方式
Ubuntu 默认 AppArmor /etc/apparmor.d
手动启用 SELinux SELinux 布尔值 + 模块 + 上下文

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

  • Ubuntu 版本
  • 是否真的启用了 SELinux
  • 是物理机 / 容器 / 云服务器

我可以给你一套 精确可执行的备份脚本。

0 踩