我尝试在我的 Ubuntu 14.04 上学习一些有关 SELinux 的知识,但没有意识到它已经有 AppArmor,而 SELinux 在其自身的安装过程中会将其卸载。
我安装了两个软件包selinux-utils
和selinux
(按顺序)。在安装过程中,selinux
我被要求在 bash shell 中重新启动。当我按下回车键时,它继续进行并说一些安装后脚本失败了。
然后我尝试重新启动,初始错误是/
只读分区。因此我进入 Grub 并编辑ro
内核参数并将其更改为rw
。之后它能够创建一个目录/selinux
,但现在我收到一个不同的错误,我在下面捕获了该错误(这是由于尝试启动到单用户模式)
Begin: Running /scripts/local-bottom ... done.
Begin: Running /scripts/init-bottom ... /sbin/load_policy: Can't load policy: No such device
Warning: SELinux policy load failed, continuing
mount: mounting none on /selinux failed: No such device
Warning: Unable to mount /selinux
done.
还有一些与 相关的消息plymouth-upstart-bridge
。最后还有一条错误消息(不确定这是否与 SELinux 有关)
[drm:intel_set_pch_fifo_underrun_reporting [i915]] *ERROR* uncleared fifo underrun on pch transcoder
我现在猜问题是这一行mount: mounting none on /selinux failed: No such device
从我的 grub 中我可以看到 处于/
打开状态(hd0,5)
,并且 下有一个selinux
目录/
。我不明白的是 selinux 是否试图将某个设备挂载到/selinux
还是它认为/selinux
本身应该是一个设备?
任何帮助将不胜感激。
答案1
我找到了解决办法。我进入 grub 启动菜单并security=selinux selinux=1
从下面删除了两个内核参数
linux /boot/vmlinuz-4.4.0-78-generic root=UUID=e2c77541-5134-497a-a180-529bfd83f38f ro quiet splash security=selinux selinux=1 $vt_handoff
这使我能够启动到多用户系统,然后我卸载selinux
并更新了 grub 配置,以便将来的启动不会将selinux
参数传递给内核。