]> git.ipfire.org Git - thirdparty/mkosi.git/commitdiff
Only look at $USER if we can't find a user in /etc/passwd
authorDaan De Meyer <daan.j.demeyer@gmail.com>
Mon, 29 Jul 2024 18:28:02 +0000 (20:28 +0200)
committerDaan De Meyer <daan.j.demeyer@gmail.com>
Mon, 29 Jul 2024 18:49:30 +0000 (20:49 +0200)
mkosi/user.py

index 6dc72eaa43ce49b5f703a4f1be9dc089c39924b5..2298de3c172d5bb363524260d35f95e017f2b78e 100644 (file)
@@ -39,7 +39,16 @@ class INVOKING_USER:
     @classmethod
     @functools.lru_cache(maxsize=1)
     def name(cls) -> str:
-        return os.getenv("USER", pwd.getpwuid(cls.uid).pw_name)
+        try:
+            return pwd.getpwuid(cls.uid).pw_name
+        except KeyError:
+            if cls.uid == 0:
+                return "root"
+
+            if not (user := os.getenv("USER")):
+                die(f"Could not find user name for UID {cls.uid}")
+
+            return user
 
     @classmethod
     @functools.lru_cache(maxsize=1)