]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
dissect: Use must_be_root() 40212/head
authorDaan De Meyer <daan@amutable.com>
Thu, 12 Feb 2026 08:44:29 +0000 (09:44 +0100)
committerDaan De Meyer <daan@amutable.com>
Thu, 12 Feb 2026 09:38:33 +0000 (10:38 +0100)
src/dissect/dissect.c

index 4018e8233fb9b40b3737fd472356723c03efae09..1eb17e67e48e515b244c60e6448a8bf1aa7e2c84 100644 (file)
@@ -863,8 +863,11 @@ static int parse_argv(int argc, char *argv[]) {
         if (arg_action == ACTION_SHIFT && r == 0)
                 return log_error_errno(SYNTHETIC_ERRNO(EPERM), "Need to have CAP_CHOWN to shift UID ranges");
 
-        if (IN_SET(arg_action, ACTION_ATTACH, ACTION_DETACH) && geteuid() != 0)
-                return log_error_errno(SYNTHETIC_ERRNO(EPERM), "Need to be root.");
+        if (IN_SET(arg_action, ACTION_ATTACH, ACTION_DETACH)) {
+                r = must_be_root();
+                if (r < 0)
+                        return r;
+        }
 
         SET_FLAG(arg_flags, DISSECT_IMAGE_ALLOW_INTERACTIVE_AUTH, isatty_safe(STDIN_FILENO));