summaryrefslogtreecommitdiff
path: root/sysutils/system-tools-backends/files/patch-Users_Users.pm
blob: 5e2598972c24552e93aa6fb42e24d01a0548c7d6 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
--- Users/Users.pm.orig	Thu Oct  5 09:27:21 2006
+++ Users/Users.pm	Sun Apr 22 23:05:41 2007
@@ -458,7 +458,7 @@
 	
   if ($Utils::Backend::tool{"system"} eq "FreeBSD")
   {
-    $command = "$cmd_pw userdel -n \'" . $$user[$LOGIN] . "\' ";
+    $command = "$cmd_pw userdel -n \'" . $$user[$LOGIN] . "\' -r ";
   }
   else
   {
@@ -538,10 +538,10 @@
   {
     my $pwdpipe;
     my $home;
+    my $user;
 
-    # FreeBSD doesn't create the home directory
     $home = $$user[$HOME];
-    &Utils::File::run ("$tool_mkdir -p $home");
+    $user = $$user[$LOGIN];
 
     $command = "$cmd_pw useradd " .
         " -n \'" . $$user[$LOGIN] . "\'" .
@@ -549,11 +549,12 @@
         " -d \'" . $$user[$HOME]  . "\'" .
         " -g \'" . $$user[$GID]   . "\'" .
         " -s \'" . $$user[$SHELL] . "\'" .
-        " -H 0"; # pw(8) reads password from STDIN
+        " -m -h 0"; # pw(8) reads password from STDIN
 
     $pwdpipe = &Utils::File::run_pipe_write ($command);
     print $pwdpipe $$user[$PASSWD];
     &Utils::File::close_file ($pwdpipe);
+    &Utils::File::run ("chown -R $user $home");
   }
   elsif ($Utils::Backend::tool{"system"} eq "SunOS")
   {
@@ -629,7 +630,7 @@
         " -d \'" . $$new_user[$HOME]  . "\'" .
         " -g \'" . $$new_user[$GID]   . "\'" .
         " -s \'" . $$new_user[$SHELL] . "\'" .
-        " -H 0"; # pw(8) reads password from STDIN
+        " -h 0"; # pw(8) reads password from STDIN
 
     $pwdpipe = &Utils::File::run_pipe_write ($command);
     print $pwdpipe $$new_user[$PASSWD];