![在 Linux 中启用 AppArmor](https://linux22.com/image/120798/%E5%9C%A8%20Linux%20%E4%B8%AD%E5%90%AF%E7%94%A8%20AppArmor.png)
我已经编译了一个内核(linux-libre-xtreme)这个配置,它启用了大多数 LSM:YAMA、SMACK、AppArmor、TOMOYO 和 SELinux。但是,当我使用 OpenRC 启动 apparmor 服务时,我得到:
# rc-service apparmor start
* Stopping AppArmor ...
* Unloading AppArmor profiles
* Root privileges not available [ !! ]
* Starting AppArmor ...
* Loading AppArmor profiles ...
Cache read/write disabled: interface file missing. (Kernel needs AppArmor 2.4 compatibility patch.)
Warning: unable to find a suitable fs in /proc/mounts, is it mounted?
Use --subdomainfs to override.
* /etc/apparmor.d/usr.bin.apache2 failed to load
Cache read/write disabled: interface file missing. (Kernel needs AppArmor 2.4 compatibility patch.)
Warning: unable to find a suitable fs in /proc/mounts, is it mounted?
Use --subdomainfs to override.
其他配置文件也抱怨,但是我也编译过的其他内核不会发生这种情况(linux-libre-lts-apparmor,请参阅其配置这里)
我究竟做错了什么?如果我cat /sys/module/apparmor/parameters/enabled
使用 linux-libre-xtreme 内核,我会得到N
,但使用 linux-libre-lts-apparmor 时,它会说Y
,所以我知道这不是来自引导加载程序的内核参数。
答案1
通过禁用解决,似乎CONFIG_DEFAULT_SECURITY_DAC=y
只能启用一个CONFIG_DEFAULT_SECURITY_*
编辑:我还发现,为了在启动时默认启用 AppArmor,SECURITY_APPARMOR_BOOTPARAM_VALUE 必须设置为“1”,如下所示:CONFIG_SECURITY_APPARMOR_BOOTPARAM_VALUE=1