89 lines
2.3 KiB
Diff
89 lines
2.3 KiB
Diff
|
From 09c752f00f9dfc610f66d68be38c9e5be8ca7f15 Mon Sep 17 00:00:00 2001
|
||
|
From: Iker Pedrosa <ipedrosa@redhat.com>
|
||
|
Date: Fri, 8 Oct 2021 13:09:59 +0200
|
||
|
Subject: [PATCH] useradd: create directories after the SELinux user
|
||
|
|
||
|
Create the home and mail folders after the SELinux user has been set for
|
||
|
the added user. This will allow the folders to be created with the
|
||
|
SELinux user label.
|
||
|
|
||
|
Signed-off-by: Iker Pedrosa <ipedrosa@redhat.com>
|
||
|
---
|
||
|
src/useradd.c | 46 +++++++++++++++++++++++-----------------------
|
||
|
1 file changed, 23 insertions(+), 23 deletions(-)
|
||
|
|
||
|
diff --git a/src/useradd.c b/src/useradd.c
|
||
|
index 6269c01c..b463a170 100644
|
||
|
--- a/src/useradd.c
|
||
|
+++ b/src/useradd.c
|
||
|
@@ -2670,27 +2670,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,
|
||
|
@@ -2716,15 +2701,30 @@ int main (int argc, char **argv)
|
||
|
}
|
||
|
#endif /* WITH_SELINUX */
|
||
|
|
||
|
+ 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 ();
|
||
|
+ }
|
||
|
+
|
||
|
if (run_parts ("/etc/shadow-maint/useradd-post.d", (char*)user_name,
|
||
|
"useradd")) {
|
||
|
exit(1);
|
||
|
}
|
||
|
|
||
|
- nscd_flush_cache ("passwd");
|
||
|
- nscd_flush_cache ("group");
|
||
|
- sssd_flush_cache (SSSD_DB_PASSWD | SSSD_DB_GROUP);
|
||
|
-
|
||
|
return E_SUCCESS;
|
||
|
}
|
||
|
|
||
|
--
|
||
|
2.31.1
|
||
|
|