]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
user-util: add uid_is_container() for checking whether UID is in container range
authorLennart Poettering <lennart@poettering.net>
Wed, 7 Aug 2019 10:34:46 +0000 (12:34 +0200)
committerLennart Poettering <lennart@poettering.net>
Wed, 4 Dec 2019 09:59:04 +0000 (10:59 +0100)
We have similar calls for the dynamic user and system range, let's add
this too here.

src/basic/user-util.h

index d507c135ebd8504515f865357b4498bd3386ab5b..7488071086ef135781d78d9384eab27e4bbfd5a9 100644 (file)
@@ -57,6 +57,14 @@ int take_etc_passwd_lock(const char *root);
 
 #define ETC_PASSWD_LOCK_PATH "/etc/.pwd.lock"
 
+static inline bool uid_is_system(uid_t uid) {
+        return uid <= SYSTEM_UID_MAX;
+}
+
+static inline bool gid_is_system(gid_t gid) {
+        return gid <= SYSTEM_GID_MAX;
+}
+
 static inline bool uid_is_dynamic(uid_t uid) {
         return DYNAMIC_UID_MIN <= uid && uid <= DYNAMIC_UID_MAX;
 }
@@ -65,12 +73,12 @@ static inline bool gid_is_dynamic(gid_t gid) {
         return uid_is_dynamic((uid_t) gid);
 }
 
-static inline bool uid_is_system(uid_t uid) {
-        return uid <= SYSTEM_UID_MAX;
+static inline bool uid_is_container(uid_t uid) {
+        return CONTAINER_UID_BASE_MIN <= uid && uid <= CONTAINER_UID_BASE_MAX;
 }
 
-static inline bool gid_is_system(gid_t gid) {
-        return gid <= SYSTEM_GID_MAX;
+static inline bool gid_is_container(gid_t gid) {
+        return uid_is_container((uid_t) gid);
 }
 
 /* The following macros add 1 when converting things, since UID 0 is a valid UID, while the pointer