65 lines
1.6 KiB
Diff
65 lines
1.6 KiB
Diff
|
diff --git a/src/useradd.c b/src/useradd.c
|
||
|
index baeffb35..02e1402c 100644
|
||
|
--- a/src/useradd.c
|
||
|
+++ b/src/useradd.c
|
||
|
@@ -2644,27 +2644,12 @@ int main (int argc, char **argv)
|
||
|
|
||
|
usr_update ();
|
||
|
|
||
|
- if (mflg) {
|
||
|
- create_home ();
|
||
|
- if (home_added) {
|
||
|
- copy_tree (def_template, prefix_user_home, false, false,
|
||
|
- (uid_t)-1, user_id, (gid_t)-1, user_gid);
|
||
|
- } else {
|
||
|
- fprintf (stderr,
|
||
|
- _("%s: warning: the home directory %s already exists.\n"
|
||
|
- "%s: Not copying any file from skel directory into it.\n"),
|
||
|
- Prog, user_home, Prog);
|
||
|
- }
|
||
|
-
|
||
|
- }
|
||
|
-
|
||
|
- /* Do not create mail directory for system accounts */
|
||
|
- if (!rflg) {
|
||
|
- create_mail ();
|
||
|
- }
|
||
|
-
|
||
|
close_files ();
|
||
|
|
||
|
+ nscd_flush_cache ("passwd");
|
||
|
+ nscd_flush_cache ("group");
|
||
|
+ sssd_flush_cache (SSSD_DB_PASSWD | SSSD_DB_GROUP);
|
||
|
+
|
||
|
/*
|
||
|
* tallylog_reset needs to be able to lookup
|
||
|
* a valid existing user name,
|
||
|
@@ -2695,9 +2680,24 @@ int main (int argc, char **argv)
|
||
|
exit(1);
|
||
|
}
|
||
|
|
||
|
- nscd_flush_cache ("passwd");
|
||
|
- nscd_flush_cache ("group");
|
||
|
- sssd_flush_cache (SSSD_DB_PASSWD | SSSD_DB_GROUP);
|
||
|
+ if (mflg) {
|
||
|
+ create_home ();
|
||
|
+ if (home_added) {
|
||
|
+ copy_tree (def_template, prefix_user_home, false, true,
|
||
|
+ (uid_t)-1, user_id, (gid_t)-1, user_gid);
|
||
|
+ } else {
|
||
|
+ fprintf (stderr,
|
||
|
+ _("%s: warning: the home directory %s already exists.\n"
|
||
|
+ "%s: Not copying any file from skel directory into it.\n"),
|
||
|
+ Prog, user_home, Prog);
|
||
|
+ }
|
||
|
+
|
||
|
+ }
|
||
|
+
|
||
|
+ /* Do not create mail directory for system accounts */
|
||
|
+ if (!rflg) {
|
||
|
+ create_mail ();
|
||
|
+ }
|
||
|
|
||
|
return E_SUCCESS;
|
||
|
}
|