]> git.ipfire.org Git - thirdparty/shadow.git/commitdiff
useradd: create /etc/default saving defaults. 392/head
authorSerge Hallyn <serge@hallyn.com>
Sun, 25 Jul 2021 21:19:56 +0000 (16:19 -0500)
committerSerge Hallyn <serge@hallyn.com>
Sun, 25 Jul 2021 21:19:56 +0000 (16:19 -0500)
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 <serge@hallyn.com>
src/useradd.c

index 127177e26fd45b061895257bbebf7b742435832b..baeffb35af01179b1d1ee4e012b5f7f05b6fd62d 100644 (file)
@@ -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.
         */