1 |
wellsi |
1.1 |
diff -ruN e-smith-lib-2.4.0.old/root/sbin/e-smith/create-system-user e-smith-lib-2.4.0/root/sbin/e-smith/create-system-user |
2 |
|
|
--- e-smith-lib-2.4.0.old/root/sbin/e-smith/create-system-user 2003-09-02 14:05:26.000000000 -0700 |
3 |
|
|
+++ e-smith-lib-2.4.0/root/sbin/e-smith/create-system-user 2013-05-05 22:22:42.000000000 -0700 |
4 |
|
|
@@ -20,7 +20,6 @@ |
5 |
|
|
my $user_desc = shift || usage("Must give user desc param"); |
6 |
|
|
my $home = shift || usage("Must give home param"); |
7 |
|
|
my $shell = shift || usage("Must give shell param"); |
8 |
|
|
-my @uid_opts = ("-u", $uid); |
9 |
|
|
|
10 |
|
|
use User::pwent; |
11 |
|
|
use User::grent; |
12 |
|
|
@@ -28,7 +27,7 @@ |
13 |
|
|
if (my $pw = getpwnam($user)) |
14 |
|
|
{ |
15 |
|
|
my $euid = $pw->uid; |
16 |
|
|
- exit 0 if $euid == $uid; |
17 |
|
|
+ exit 0 if $euid == $uid; # Do not create user if it already exists with correct uid |
18 |
|
|
warn ("Users $user exists but has uid of $euid - should be $uid\n"); |
19 |
|
|
exit 0; |
20 |
|
|
} |
21 |
|
|
@@ -38,23 +37,48 @@ |
22 |
|
|
my $name = $pw->name; |
23 |
|
|
warn "User id of $uid is already taken by user $name\n"; |
24 |
|
|
warn "Falling back to a system chosen uid\n"; |
25 |
|
|
- @uid_opts = ("-r"); |
26 |
|
|
+ # We can now go ahead and create the user and group leaving the system to choose uid/gid |
27 |
|
|
+ die ("Failed to create user $user\n") if |
28 |
|
|
+ system("/usr/sbin/useradd", |
29 |
|
|
+ "-r", |
30 |
|
|
+ "-d", $home, |
31 |
|
|
+ "-M", |
32 |
|
|
+ "-s", $shell, |
33 |
|
|
+ "-c", $user_desc, |
34 |
|
|
+ $user); |
35 |
|
|
+ exit (0); |
36 |
|
|
} |
37 |
|
|
|
38 |
|
|
if (my $pw = getgrgid($uid)) |
39 |
|
|
{ |
40 |
|
|
my $name = $pw->name; |
41 |
|
|
warn "Group id of $uid is already taken by user $name\n"; |
42 |
|
|
+ # We can now go ahead and create the user but the gid will be chosen by the system |
43 |
|
|
+ die ("Failed to create user $user\n") if |
44 |
|
|
+ system("/usr/sbin/useradd", |
45 |
|
|
+ "-u", $uid, |
46 |
|
|
+ "-d", $home, |
47 |
|
|
+ "-M", |
48 |
|
|
+ "-s", $shell, |
49 |
|
|
+ "-c", $user_desc, |
50 |
|
|
+ $user); |
51 |
|
|
} |
52 |
|
|
- |
53 |
|
|
+else |
54 |
|
|
+{ |
55 |
|
|
# We can now go ahead and create the user and group |
56 |
|
|
- |
57 |
|
|
-die("Failed to create user $user\n") if |
58 |
|
|
- system("/usr/sbin/useradd", |
59 |
|
|
- @uid_opts, |
60 |
|
|
- "-d", $home, |
61 |
|
|
- "-M", |
62 |
|
|
- "-s", $shell, |
63 |
|
|
- "-c", $user_desc, |
64 |
|
|
- $user); |
65 |
|
|
+ die ("Failed to create group $uid\n") if |
66 |
|
|
+ system("/usr/sbin/groupadd", |
67 |
|
|
+ "-g", $uid, |
68 |
|
|
+ $user); |
69 |
|
|
+ |
70 |
|
|
+ die ("Failed to create user $user\n") if |
71 |
|
|
+ system("/usr/sbin/useradd", |
72 |
|
|
+ "-u", $uid, |
73 |
|
|
+ "-g", $uid, |
74 |
|
|
+ "-d", $home, |
75 |
|
|
+ "-M", |
76 |
|
|
+ "-s", $shell, |
77 |
|
|
+ "-c", $user_desc, |
78 |
|
|
+ $user); |
79 |
|
|
+} |
80 |
|
|
exit 0; |