diff --git a/src/dissect/dissect.c b/src/dissect/dissect.c index 4018e8233f..1eb17e67e4 100644 --- a/src/dissect/dissect.c +++ b/src/dissect/dissect.c @@ -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));