blob: 75bda877f7d8f1e92293ae20f8e3545a45148a6c (
plain)
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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
|
#!/usr/bin/perl -w
# expect:
# - a new system user $USER
# - Added to all groups in extra_groups
# - a new group
# - $USER added to new group
# - Removal of $USER works
# - removal of new group works
# - system users do not get added to extra_groups
use strict;
use lib_test;
my $username = find_unused_name();
my $cmd = "adduser --gecos test --disabled-password --add_extra_groups $username";
my %config;
preseed_config(("/etc/adduser.conf"),\%config);
if (!defined (getpwnam($username))) {
print "Testing $cmd... ";
`$cmd`;
my $error = ($?>>8);
if ($error) {
print "failed\n adduser returned an errorcode != 0 ($error)\n";
exit $error;
}
assert(check_user_exist ($username));
foreach my $group (split ' ', $config{"extra_groups"}) {
assert(check_user_in_group($username,$group));
}
print "ok\n";
}
my $newgroup = find_unused_name();
$cmd = "addgroup $newgroup";
unless (defined getgrnam($newgroup)) {
print "Testing $cmd... ";
`$cmd`;
my $error = ($?>>8);
if ($error) {
print "failed\n addgroup returned an errorcode != 0 ($error)\n";
exit $error;
}
assert(check_group_exist ($newgroup));
print "ok\n";
}
$cmd = "adduser $username $newgroup";
if (defined (getpwnam($username))) {
print "Testing $cmd... ";
`$cmd`;
my $error = ($?>>8);
if ($error) {
print "failed\n adduser returned an errorcode != 0 ($error)\n";
exit $error;
}
assert(check_user_in_group ($username,$newgroup));
print "ok\n";
}
$cmd = "deluser --remove-home $username";
if (defined (getpwnam($username))) {
print "Testing $cmd... ";
`$cmd`;
my $error = ($?>>8);
if ($error) {
print "failed\n adduser returned an errorcode != 0 ($error)\n";
exit $error;
}
assert(check_user_not_exist ($username));
print "ok\n";
}
$cmd = "delgroup $newgroup";
unless (!defined getgrnam($newgroup)) {
print "Testing $cmd... ";
`$cmd`;
my $error = ($?>>8);
if ($error) {
print "failed\n delgroup returned an errorcode != 0 ($error)\n";
exit $error;
}
assert(!check_group_exist ($newgroup));
print "ok\n";
}
my $sysusername = find_unused_name();
$cmd = "adduser --system --gecos test --disabled-password --add_extra_groups $sysusername";
if (!defined (getpwnam($sysusername))) {
print "Testing $cmd... ";
`$cmd`;
my $error = ($?>>8);
if ($error) {
print "failed\n adduser returned an errorcode != 0 ($error)\n";
exit $error;
}
assert(check_user_exist ($sysusername));
foreach my $group (split ' ', $config{"extra_groups"}) {
assert(!check_user_in_group($username,$group));
}
print "ok\n";
}
|