From 33c33a32a2195dc2725df2909bf8df0d4d7411b5 Mon Sep 17 00:00:00 2001 From: Serge Hallyn Date: Sun, 25 Jul 2021 16:19:56 -0500 Subject: [PATCH] useradd: create /etc/default saving defaults. Since bbf4b79, we stopped shipping /etc/default/useradd, and therefore install of shadow does not auto-create /etc/default. So when useradd tries to save a new default, it needs to create the directory. Closes #390. Signed-off-by: Serge Hallyn --- src/useradd.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/useradd.c b/src/useradd.c index 127177e2..baeffb35 100644 --- a/src/useradd.c +++ b/src/useradd.c @@ -567,6 +567,14 @@ static int set_defaults (void) assert (wlen == (int) len -1); } + ret = mkdir(dirname(NEW_USER_FILE), 0755); + if (-1 == ret && EEXIST != errno) { + fprintf (stderr, + _("%s: cannot create directory for defaults file\n"), + Prog); + goto setdef_err; + } + /* * Create a temporary file to copy the new output to. */