]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
run: improve log message for unknown user/group
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Tue, 18 Nov 2025 08:26:49 +0000 (09:26 +0100)
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Tue, 18 Nov 2025 15:23:29 +0000 (16:23 +0100)
Before:
$ sudo build/systemd-run --scope --uid=asdf whoami
Failed to resolve user asdf: No such process
Now:
$ sudo build/systemd-run --scope --uid=asdf whoami
Failed to resolve user 'asdf': Unknown user

src/run/run.c

index d1202632ac78c5e2938f19e347e50c4ebe49cb23..510d4c51ab03e46b6b44b64ee52c4952a5521c37 100644 (file)
@@ -2748,7 +2748,8 @@ static int start_transient_scope(sd_bus *bus) {
 
                 r = get_group_creds(&arg_exec_group, &gid, 0);
                 if (r < 0)
-                        return log_error_errno(r, "Failed to resolve group %s: %m", arg_exec_group);
+                        return log_error_errno(r, "Failed to resolve group '%s': %s",
+                                               arg_exec_group, STRERROR_GROUP(r));
 
                 if (setresgid(gid, gid, gid) < 0)
                         return log_error_errno(errno, "Failed to change GID to " GID_FMT ": %m", gid);
@@ -2762,7 +2763,8 @@ static int start_transient_scope(sd_bus *bus) {
                 r = get_user_creds(&arg_exec_user, &uid, &gid, &home, &shell,
                                    USER_CREDS_CLEAN|USER_CREDS_SUPPRESS_PLACEHOLDER|USER_CREDS_PREFER_NSS);
                 if (r < 0)
-                        return log_error_errno(r, "Failed to resolve user %s: %m", arg_exec_user);
+                        return log_error_errno(r, "Failed to resolve user '%s': %s",
+                                               arg_exec_user, STRERROR_USER(r));
 
                 if (home) {
                         r = strv_extendf(&user_env, "HOME=%s", home);