如何確定是否以及哪個 linux 安全模組 (LSM) 可用?
有沒有辦法找出核心是否使用了哪個 linux 安全 LSM(apparmor、selinux、grsecurity)?
更具體地說,假設我是機器的合法 root 使用者?
如果資訊也可用,最好進一步了解:關於這個問題,考慮機器是(a)本地電腦,(b)專用伺服器和(c)虛擬伺服器“vServer”是否有區別
更新
我知道我可以安裝使用者空間的東西(例如在 debian 上
apt-get install apparmor
)並檢查它是否產生與特定 LSM 相關的結果。所以我可以為 apparmor 做sudo apparmor_status
這件事,例如 yield:apparmor module is not loaded.
這可以幫助我排除這個選項。然而,我一直在尋找一種涵蓋大多數/所有 LSM 的更通用的方法。更新2
我發現了路徑
/sys/kernel/security
。也許這有助於找到答案?
是的,您可以檢查
/sys/kernel/security
可用的內容。另請參閱 dmesg 或
/proc/cmdline
引導設置。如果你
config.gz
有空的話zgrep CONFIG_SECURITY /proc/config.gz
別的
grep CONFIG_SECURITY /boot/config-`uname -r`
您可以做的另一件事是在
/sys/module
.例如,在啟用了 apparmor 的 Ubuntu 16.04 上,存在以下目錄:
/sys/module/apparmor/
另請參閱:https ://superuser.com/questions/287371/obtain-kernel-config-from-currently-running-linux-system
不幸的是,在 QEMU 中的 Android AOSP 上
ls /sys/kernel/security
既沒有也沒有ls /sys/module/
顯示任何東西,它似乎有 selinux,我想知道為什麼。selinux
如果核心是使用 SELinux 建構的,則引導
dmesg
包含:SELinux: Initializing.