From d12d300c983d9444f8f9c57827bc7f408e334ba7 Mon Sep 17 00:00:00 2001 From: Ludwig Nussel Date: Tue, 30 Nov 2021 17:14:14 +0100 Subject: [PATCH] useradd: assume uid 0 == root as fallback In absence of /etc/passwd, eg when bootstrapping a chroot, resolving uid 0 to a name may not work. Therefore just assume "root". --- src/useradd.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/useradd.c b/src/useradd.c index f7c97958..16447671 100644 --- a/src/useradd.c +++ b/src/useradd.c @@ -2507,14 +2507,14 @@ int main (int argc, char **argv) { struct passwd *pampw; pampw = getpwuid (getuid ()); /* local, no need for xgetpwuid */ - if (pampw == NULL) { + if (pampw == NULL && getuid ()) { fprintf (stderr, _("%s: Cannot determine your user name.\n"), Prog); fail_exit (1); } - retval = pam_start ("useradd", pampw->pw_name, &conv, &pamh); + retval = pam_start ("useradd", pampw?pampw->pw_name:"root", &conv, &pamh); } if (PAM_SUCCESS == retval) {