[system-tools-backends-clone] Fix chown home directory for new user



commit 9fcf9b741fe206bdee9d5a37c1854754a385dcda
Author: Milan Bouchet-Valat <nalimilan club fr>
Date:   Mon Feb 15 11:54:20 2010 +0100

    Fix chown home directory for new user
    
    We need to update user settings before running chown: home dir may have been chosen by the platform tools.

 Users/Users.pm |   11 +++++++++--
 1 files changed, 9 insertions(+), 2 deletions(-)
---
diff --git a/Users/Users.pm b/Users/Users.pm
index 4f4cb68..8f81d67 100644
--- a/Users/Users.pm
+++ b/Users/Users.pm
@@ -594,8 +594,12 @@ sub add_user
     }
   }
 
-  # ensure user owns its home dir if asked
   $chown_home = $$user[$HOME_FLAGS] & (1 << 1);
+
+  # update user to get values that were filled
+  $user = &get_user ($$user[$LOGIN]);
+
+  # ensure user owns its home dir if asked
   if ($chown_home && $$user[$HOME] ne "/")
   {
     @command = ("chown", "-R", "$$user[$LOGIN]:", $$user[$HOME]);
@@ -607,7 +611,7 @@ sub add_user
 
   # Return the new user with default values filled.
   # Returns NULL if user doesn't exist, which means failure.
-  return &get_user ($$user[$LOGIN]);
+  return $user;
 }
 
 sub change_user
@@ -639,6 +643,9 @@ sub change_user
 
   &change_user_chfn ($$new_user[$LOGIN], $$old_user[$COMMENT], $$new_user[$COMMENT]);
   &set_passwd ($$new_user[$LOGIN], $$new_user[$PASSWD]);
+
+  # Erase password string to avoid it from staying in memory
+  $$new_user[$PASSWD] = '0' x length ($$new_user[$PASSWD]);
 }
 
 sub set_logindefs



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]