SELinux 未启用

SELinux 未启用

我使用以下命令在 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

请看这里的答案:同时运行 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:拆分命令,为每个命令提供更好的描述

相关内容