From: Nirbheek Chauhan Date: Tue, 9 Apr 2013 13:00:24 +0000 (+0530) Subject: condition, man: Add support for ConditionSecurity=apparmor X-Git-Tag: v203~12 X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=commitdiff_plain;h=80f53eb59516f87e26e3afa405c61b4eed9ffe30 condition, man: Add support for ConditionSecurity=apparmor Checking for the apparmor directory in securityfs means the apparmor module is loaded and enabled, and hence should suffice as a test. https://bugs.freedesktop.org/show_bug.cgi?id=63312 --- diff --git a/man/systemd.unit.xml b/man/systemd.unit.xml index 2f2d1a1d4..3360a719a 100644 --- a/man/systemd.unit.xml +++ b/man/systemd.unit.xml @@ -984,7 +984,8 @@ may be used to check whether the given security module is enabled on the system. Currently the only recognized - value is selinux. + values are selinux + and apparmor. The test may be negated by prepending an exclamation mark. diff --git a/src/core/condition.c b/src/core/condition.c index 30199c10e..4aa5530c3 100644 --- a/src/core/condition.c +++ b/src/core/condition.c @@ -162,6 +162,8 @@ static bool test_security(const char *parameter) { if (streq(parameter, "selinux")) return is_selinux_enabled() > 0; #endif + if (streq(parameter, "apparmor")) + return access("/sys/kernel/security/apparmor/", F_OK) == 0; return false; }