diff options
author | Milan Bouchet-Valat <nalimilan@club.fr> | 2010-02-15 11:54:20 +0100 |
---|---|---|
committer | Milan Bouchet-Valat <nalimilan@club.fr> | 2010-02-15 11:54:20 +0100 |
commit | 9fcf9b741fe206bdee9d5a37c1854754a385dcda (patch) | |
tree | 4cc99991e6d6b7defc6188d9866af7d6b49b762f | |
parent | 5bad3f88f5e28fd9c1b62e1da6ff062d520ccc61 (diff) |
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.
-rw-r--r-- | 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 |