我使用以下命令在 ubuntu 上安装了 SELINUX:
sudo apt-get install selinux
配置文件包含/etc/selinux
以下信息
SELINUX=permissive
SELINUXTYPE=default
SETLOCALDEFS=0
但我无法设置 selinux,当我检查使用sestatus -v command
它时给出输出
SELINUX is disabled
我应该如何启用我的 SELINUX?
当我使用命令时seinfo
,它给出以下输出
ERROR: policydb version 26 does not match my version range 15-24
ERROR: Unable to open policy /etc/selinux/default/policy/policy.26.
ERROR: Input/output error
check-selinux-installation 命令给出以下输出 ../proc/1 kernel..
SELinux 未启用。init 进程 (PID 1) 正在错误的域中运行。/etc/pam.d/login 未启用 SELinux FSCKFIX 未启用 - 不严重,但可能会阻止系统启动……udev 将创建未正确标记的节点
请帮忙
答案1
此错误可能是因为您正在运行 AppArmor 和 SELinux。AppArmor 默认安装在 Ubuntu 中。您不能同时使用 2 个 LSM(Linux 安全模块)。如果您希望使用 SELinux,则需要删除 AppArmor
答案2
这是一个非常古老的问题,但它帮助我部分地追踪了我的问题,所以我添加了另一个回复。
您不仅需要像 cioby23 所说的那样删除 AppArmor,而且从上游 Debian 收到的一些额外步骤根本没有很好的记录。以下是使用标准提供的软件包将标准 Ubuntu 系统(对我来说是 16.04.6)转换为在 Permissive 模式下使用 SELinux 的命令:
# make sure you have the most up-to-date info
apt-get update
apt-get dist-upgrade
#disable and remove apparmor
/etc/init.d/apparmor stop
apt-get remove apparmor
#install SELinux
apt-get install selinux
# install the missing dependency
apt-get install auditd
# install the activate tool required to make it work
apt-get install selinux-basics
#missing manual step to actually make SELinux work (part of selinux-basics)
selinux-activate
# need to restart for it to take effect
shutdown now
selinux-activate
我个人从上游 Debian 的讨论中发现必须手动运行(https://unix.stackexchange.com/questions/136988/whats-missing-with-my-selinux-installation)。
它解决了 PID 1 上的错误上下文的确切问题,该问题也表现为getfilecon
错误。
编辑1:更新语言以避免政策命名混淆。
编辑2:拆分命令,为每个命令提供更好的描述