From: Ludwig Nussel Date: Tue, 30 Nov 2021 16:14:14 +0000 (+0100) Subject: useradd: assume uid 0 == root as fallback X-Git-Tag: 4.10~12^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=refs%2Fpull%2F450%2Fhead;p=thirdparty%2Fshadow.git 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". --- diff --git a/src/useradd.c b/src/useradd.c index f7c979580..16447671c 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) {