There doesn't seem to be any reason for user to write out a config file with the defaults if none exists. I've never seen anything else in base do this, so kill it.
- Matthew Martin Index: user.c =================================================================== RCS file: /cvs/src/usr.sbin/user/user.c,v retrieving revision 1.112 diff -u -p -r1.112 user.c --- user.c 10 Aug 2016 20:30:34 -0000 1.112 +++ user.c 7 Oct 2016 03:21:25 -0000 @@ -742,7 +742,6 @@ setdefaults(user_t *up) static void read_defaults(user_t *up) { - struct stat st; size_t lineno; size_t len; FILE *fp; @@ -761,13 +760,7 @@ read_defaults(user_t *up) err(1, NULL); up->u_inactive = DEF_INACTIVE; up->u_expire = DEF_EXPIRE; - if ((fp = fopen(CONFFILE, "r")) == NULL) { - if (stat(CONFFILE, &st) < 0 && !setdefaults(up)) { - warn("can't create `%s' defaults file", CONFFILE); - } - fp = fopen(CONFFILE, "r"); - } - if (fp != NULL) { + if ((fp = fopen(CONFFILE, "r")) != NULL) { while ((s = fparseln(fp, &len, &lineno, NULL, 0)) != NULL) { if (strncmp(s, "group", 5) == 0) { for (cp = s + 5 ; isspace((unsigned char)*cp); cp++) {