Index: shadow-4.5/src/useradd.c =================================================================== --- shadow-4.5.orig/src/useradd.c +++ shadow-4.5/src/useradd.c @@ -98,7 +98,7 @@ const char *Prog; static gid_t def_group = 100; static const char *def_gname = "other"; static const char *def_home = "/home"; -static const char *def_shell = ""; +static const char *def_shell = "/sbin/nologin"; static const char *def_template = SKEL_DIR; static const char *def_create_mail_spool = "no"; @@ -108,7 +108,7 @@ static const char *def_expire = ""; #define VALID(s) (strcspn (s, ":\n") == strlen (s)) static const char *user_name = ""; -static const char *user_pass = "!"; +static const char *user_pass = "!!"; static uid_t user_id; static gid_t user_gid; static const char *user_comment = ""; @@ -1059,9 +1059,9 @@ static void process_flags (int argc, cha }; while ((c = getopt_long (argc, argv, #ifdef WITH_SELINUX - "b:c:d:De:f:g:G:hk:K:lmMNop:rR:s:u:UZ:", + "b:c:d:De:f:g:G:hk:K:lmMnNop:rR:s:u:UZ:", #else /* !WITH_SELINUX */ - "b:c:d:De:f:g:G:hk:K:lmMNop:rR:s:u:U", + "b:c:d:De:f:g:G:hk:K:lmMnNop:rR:s:u:U", #endif /* !WITH_SELINUX */ long_options, NULL)) != -1) { switch (c) { @@ -1212,6 +1212,7 @@ static void process_flags (int argc, cha case 'M': Mflg = true; break; + case 'n': case 'N': Nflg = true; break;