summaryrefslogtreecommitdiff
path: root/src/shared/condition.c
diff options
context:
space:
mode:
authorFelipe Sateler <fsateler@gmail.com>2017-05-18 22:12:14 -0400
committerFelipe Sateler <fsateler@gmail.com>2017-05-26 09:42:47 -0400
commit534bab66ab5c13845fb38a91c103a072bf8d2c4e (patch)
treef3740f2803435e61ec0b7a3c854ba4ecb359e30c /src/shared/condition.c
parentc465a29f24403c7583a96eb90a1fe4f5b7f9b5a9 (diff)
downloadsystemd-534bab66ab5c13845fb38a91c103a072bf8d2c4e.tar.gz
core: add @system special value to ConditionUser=
It allows checking if the user is a system user or a normal user
Diffstat (limited to 'src/shared/condition.c')
-rw-r--r--src/shared/condition.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/shared/condition.c b/src/shared/condition.c
index 7320b53492..28b328080a 100644
--- a/src/shared/condition.c
+++ b/src/shared/condition.c
@@ -154,6 +154,9 @@ static int condition_test_user(Condition *c) {
if (r >= 0)
return id == getuid() || id == geteuid();
+ if (streq("@system", c->parameter))
+ return getuid() <= SYSTEM_UID_MAX || geteuid() <= SYSTEM_UID_MAX;
+
username = getusername_malloc();
if (!username)
return -ENOMEM;