Linux-Kernel

在 Linux 中啟用 AppArmor

  • September 14, 2018

我已經用這個配置編譯了一個核心(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,所以我知道這與引導載入程序中的核心參數無關。

通過禁用解決,似乎CONFIG_DEFAULT_SECURITY_DAC=y只有一個啟用CONFIG_DEFAULT_SECURITY_*

**編輯:**我還發現,要在啟動時預設啟用 AppArmor,必須將 SECURITY_APPARMOR_BOOTPARAM_VALUE 設置為“1”,如下所示:CONFIG_SECURITY_APPARMOR_BOOTPARAM_VALUE=1

引用自:https://unix.stackexchange.com/questions/401927