2de3ab
From 09c752f00f9dfc610f66d68be38c9e5be8ca7f15 Mon Sep 17 00:00:00 2001
2de3ab
From: Iker Pedrosa <ipedrosa@redhat.com>
2de3ab
Date: Fri, 8 Oct 2021 13:09:59 +0200
2de3ab
Subject: [PATCH] useradd: create directories after the SELinux user
2de3ab
2de3ab
Create the home and mail folders after the SELinux user has been set for
2de3ab
the added user. This will allow the folders to be created with the
2de3ab
SELinux user label.
2de3ab
2de3ab
Signed-off-by: Iker Pedrosa <ipedrosa@redhat.com>
2de3ab
---
2de3ab
 src/useradd.c | 46 +++++++++++++++++++++++-----------------------
2de3ab
 1 file changed, 23 insertions(+), 23 deletions(-)
2de3ab
2de3ab
diff --git a/src/useradd.c b/src/useradd.c
2de3ab
index 6269c01c..b463a170 100644
2de3ab
--- a/src/useradd.c
2de3ab
+++ b/src/useradd.c
2de3ab
@@ -2670,27 +2670,12 @@ int main (int argc, char **argv)
2de3ab
 
2de3ab
 	usr_update ();
2de3ab
 
2de3ab
-	if (mflg) {
2de3ab
-		create_home ();
2de3ab
-		if (home_added) {
2de3ab
-			copy_tree (def_template, prefix_user_home, false, false,
2de3ab
-			           (uid_t)-1, user_id, (gid_t)-1, user_gid);
2de3ab
-		} else {
2de3ab
-			fprintf (stderr,
2de3ab
-			         _("%s: warning: the home directory %s already exists.\n"
2de3ab
-			           "%s: Not copying any file from skel directory into it.\n"),
2de3ab
-			         Prog, user_home, Prog);
2de3ab
-		}
2de3ab
-
2de3ab
-	}
2de3ab
-
2de3ab
-	/* Do not create mail directory for system accounts */
2de3ab
-	if (!rflg) {
2de3ab
-		create_mail ();
2de3ab
-	}
2de3ab
-
2de3ab
 	close_files ();
2de3ab
 
2de3ab
+	nscd_flush_cache ("passwd");
2de3ab
+	nscd_flush_cache ("group");
2de3ab
+	sssd_flush_cache (SSSD_DB_PASSWD | SSSD_DB_GROUP);
2de3ab
+
2de3ab
 	/*
2de3ab
 	 * tallylog_reset needs to be able to lookup
2de3ab
 	 * a valid existing user name,
2de3ab
@@ -2716,15 +2701,30 @@ int main (int argc, char **argv)
2de3ab
 	}
2de3ab
 #endif				/* WITH_SELINUX */
2de3ab
 
2de3ab
+	if (mflg) {
2de3ab
+		create_home ();
2de3ab
+		if (home_added) {
2de3ab
+			copy_tree (def_template, prefix_user_home, false, false,
2de3ab
+			           (uid_t)-1, user_id, (gid_t)-1, user_gid);
2de3ab
+		} else {
2de3ab
+			fprintf (stderr,
2de3ab
+			         _("%s: warning: the home directory %s already exists.\n"
2de3ab
+			           "%s: Not copying any file from skel directory into it.\n"),
2de3ab
+			         Prog, user_home, Prog);
2de3ab
+		}
2de3ab
+
2de3ab
+	}
2de3ab
+
2de3ab
+	/* Do not create mail directory for system accounts */
2de3ab
+	if (!rflg) {
2de3ab
+		create_mail ();
2de3ab
+	}
2de3ab
+
2de3ab
 	if (run_parts ("/etc/shadow-maint/useradd-post.d", (char*)user_name,
2de3ab
 			"useradd")) {
2de3ab
 		exit(1);
2de3ab
 	}
2de3ab
 
2de3ab
-	nscd_flush_cache ("passwd");
2de3ab
-	nscd_flush_cache ("group");
2de3ab
-	sssd_flush_cache (SSSD_DB_PASSWD | SSSD_DB_GROUP);
2de3ab
-
2de3ab
 	return E_SUCCESS;
2de3ab
 }
2de3ab
 
2de3ab
-- 
2de3ab
2.31.1
2de3ab