5 Usage: blackbox_group.sh PREFIX
13 .
`dirname $0`/..
/..
/..
/testprogs
/blackbox
/subunit.sh
16 rm -rf $PREFIX/simple-dc
18 testit
"simple-dc" $PYTHON $BINDIR/samba-tool domain provision
--server-role="dc" --domain=FOO
--realm=foo.example.com
--domain-sid=S-1-5-21-4177067393-1453636373-93818738
--targetdir=$PREFIX/simple-dc
--use-ntvfs
19 samba_tool
="./bin/samba-tool"
21 CONFIG
="--configfile=$PREFIX/simple-dc/etc/smb.conf"
23 #creation of two test subjects
24 testit
"user add" $PYTHON $samba_tool user create
$CONFIG --given-name="User" --surname="Tester" --initial="UT" testuser testp@ssw0Rd
25 testit
"user add" $PYTHON $samba_tool user create
$CONFIG --given-name="User1" --surname="Tester" --initial="UT" testuser1 testp@ssw0Rd
27 # test samba-tool user getgroups command
28 user_getgroups_primary_only
() {
29 res
=$
($PYTHON $samba_tool user getgroups
$CONFIG testuser
)
31 primary_group
=$
(echo $res)
32 echo $primary_group |
grep -q "^Domain Users$" ||
return 1
34 testit
"user getgroups primary only" user_getgroups_primary_only
36 #test creation of six different groups
37 testit
"group add" $PYTHON $samba_tool group add
$CONFIG --group-scope='Domain' --group-type='Security' --description='DomainSecurityGroup' --mail-address='dsg@samba.org' --notes='Notes' dsg
38 testit
"group add" $PYTHON $samba_tool group add
$CONFIG --group-scope='Global' --group-type='Security' --description='GlobalSecurityGroup' --mail-address='gsg@samba.org' --notes='Notes' gsg
39 testit
"group add" $PYTHON $samba_tool group add
$CONFIG --group-scope='Universal' --group-type='Security' --description='UniversalSecurityGroup' --mail-address='usg@samba.org' --notes='Notes' usg
40 testit
"group add" $PYTHON $samba_tool group add
$CONFIG --group-scope='Domain' --group-type='Distribution' --description='DomainDistributionGroup' --mail-address='ddg@samba.org' --notes='Notes' ddg
41 testit
"group add" $PYTHON $samba_tool group add
$CONFIG --group-scope='Global' --group-type='Distribution' --description='GlobalDistributionGroup' --mail-address='gdg@samba.org' --notes='Notes' gdg
42 testit
"group add" $PYTHON $samba_tool group add
$CONFIG --group-scope='Universal' --group-type='Distribution' --description='UniversalDistributionGroup' --mail-address='udg@samba.org' --notes='Notes' udg
44 #test adding test users to all groups by their username
45 testit
"group addmembers" $PYTHON $samba_tool group addmembers
$CONFIG dsg testuser
,testuser1
46 testit
"group addmembers" $PYTHON $samba_tool group addmembers
$CONFIG gsg testuser
,testuser1
47 testit
"group addmembers" $PYTHON $samba_tool group addmembers
$CONFIG usg testuser
,testuser1
48 testit
"group addmembers" $PYTHON $samba_tool group addmembers
$CONFIG ddg testuser
,testuser1
49 testit
"group addmembers" $PYTHON $samba_tool group addmembers
$CONFIG gdg testuser
,testuser1
50 testit
"group addmembers" $PYTHON $samba_tool group addmembers
$CONFIG udg testuser
,testuser1
52 # test samba-tool user getgroups command
54 groups
="dsg gsg usg ddg gdg udg"
56 res
=$
($PYTHON $samba_tool user getgroups
$CONFIG testuser
)
58 echo "$res" |
grep -q "^${g}$" ||
return 1
61 # the users primary group is expected in the first line
62 primary_group
=$
(echo "$res" |
head -1)
63 echo $primary_group |
grep -q "^Domain Users$" ||
return 1
65 testit
"user getgroups" user_getgroups
67 # test samba-tool user getgroups --full-dn command
68 user_getgroups_full_dn
() {
69 groups
="dsg gsg usg ddg gdg udg"
71 res
=$
($PYTHON $samba_tool user getgroups
--full-dn $CONFIG testuser
)
73 group_dn
=$
($PYTHON $samba_tool group show
$CONFIG $g --attributes=dn
)
74 echo "$res" |
grep -q "^${group_dn}$" ||
return 1
77 # the users primary group is expected in the first line
78 primary_group
=$
(echo "$res" |
head -1)
79 group_dn
=$
($PYTHON $samba_tool group show
$CONFIG "Domain Users" --attributes=dn
)
80 echo $primary_group |
grep -q "^${group_dn}$" ||
return 1
82 testit
"user getgroups full-dn" user_getgroups
84 # test settings a users primary group
85 user_getgroups_primary_first
() {
86 expected_primary_group
=$1
87 res
=$
($PYTHON $samba_tool user getgroups
$CONFIG testuser
)
89 # the users primary group is expected in the first line
90 primary_group
=$
(echo "$res" |
head -1)
91 echo $primary_group |
grep -q "^${expected_primary_group}$" ||
return 1
93 testit
"user setprimarygroup" $PYTHON $samba_tool user setprimarygroup
$CONFIG testuser dsg
94 testit
"user getgroups primary first" user_getgroups_primary_first dsg
95 testit
"user setprimarygroup" $PYTHON $samba_tool user setprimarygroup
$CONFIG testuser gsg
96 testit
"user getgroups primary first" user_getgroups_primary_first gsg
98 # reset group (without testit, because I do not know how to quote the groupname)
99 $PYTHON $samba_tool user setprimarygroup
$CONFIG testuser
'Domain Users'
101 #test removing test users from all groups by their username
102 testit
"group removemembers" $PYTHON $samba_tool group removemembers
$CONFIG dsg testuser
,testuser1
103 testit
"group removemembers" $PYTHON $samba_tool group removemembers
$CONFIG gsg testuser
,testuser1
104 testit
"group removemembers" $PYTHON $samba_tool group removemembers
$CONFIG usg testuser
,testuser1
105 testit
"group removemembers" $PYTHON $samba_tool group removemembers
$CONFIG ddg testuser
,testuser1
106 testit
"group removemembers" $PYTHON $samba_tool group removemembers
$CONFIG gdg testuser
,testuser1
107 testit
"group removemembers" $PYTHON $samba_tool group removemembers
$CONFIG udg testuser
,testuser1
109 #test adding test users to all groups by their cn
110 #testit "group addmembers" $samba_tool group addmembers $CONFIG dsg "User UT. Tester,User1 UT. Tester"
111 #testit "group addmembers" $samba_tool group addmembers $CONFIG gsg "User UT. Tester,User1 UT. Tester"
112 #testit "group addmembers" $samba_tool group addmembers $CONFIG usg "User UT. Tester,User1 UT. Tester"
113 #testit "group addmembers" $samba_tool group addmembers $CONFIG ddg "User UT. Tester,User1 UT. Tester"
114 #testit "group addmembers" $samba_tool group addmembers $CONFIG gdg "User UT. Tester,User1 UT. Tester"
115 #testit "group addmembers" $samba_tool group addmembers $CONFIG udg "User UT. Tester,User1 UT. Tester"
117 #test removing test users from all groups by their cn
118 #testit "group removemembers" $samba_tool group removemembers $CONFIG dsg "User UT. Tester,User1 UT. Tester"
119 #testit "group removemembers" $samba_tool group removemembers $CONFIG gsg "User UT. Tester,User1 UT. Tester"
120 #testit "group removemembers" $samba_tool group removemembers $CONFIG usg "User UT. Tester,User1 UT. Tester"
121 #testit "group removemembers" $samba_tool group removemembers $CONFIG ddg "User UT. Tester,User1 UT. Tester"
122 #testit "group removemembers" $samba_tool group removemembers $CONFIG gdg "User UT. Tester,User1 UT. Tester"
123 #testit "group removemembers" $samba_tool group removemembers $CONFIG ugg "User UT. Tester,User1 UT. Tester"
126 testit
"user delete" $PYTHON $samba_tool user delete
$CONFIG testuser
127 testit
"user delete" $PYTHON $samba_tool user delete
$CONFIG testuser1
129 # creation of two new test users without spaces in cn
130 # testit fails when spaces are used in arguments
131 testit
"user add" $PYTHON $samba_tool user create
$CONFIG --given-name="User" --surname="Tester" --initial="UT" --use-username-as-cn testuser testp@ssw0Rd
132 testit
"user add" $PYTHON $samba_tool user create
$CONFIG --given-name="User1" --surname="Tester" --initial="UT" --use-username-as-cn testuser1 testp@ssw0Rd
134 # test adding test users to all groups by their DN
135 testit
"group addmembers" $PYTHON $samba_tool group addmembers
$CONFIG dsg
--member-dn=CN
=testuser
,CN
=Users
,DC
=foo
,DC
=example
,DC
=com
137 testit
"group addmembers" $PYTHON $samba_tool group addmembers
$CONFIG dsg
--member-dn=CN
=testuser1
,CN
=Users
,DC
=foo
,DC
=example
,DC
=com
138 testit
"group addmembers" $PYTHON $samba_tool group addmembers
$CONFIG gsg
--member-dn=CN
=testuser
,CN
=Users
,DC
=foo
,DC
=example
,DC
=com
139 testit
"group addmembers" $PYTHON $samba_tool group addmembers
$CONFIG gsg
--member-dn=CN
=testuser1
,CN
=Users
,DC
=foo
,DC
=example
,DC
=com
140 testit
"group addmembers" $PYTHON $samba_tool group addmembers
$CONFIG usg
--member-dn=CN
=testuser
,CN
=Users
,DC
=foo
,DC
=example
,DC
=com
141 testit
"group addmembers" $PYTHON $samba_tool group addmembers
$CONFIG usg
--member-dn=CN
=testuser1
,CN
=Users
,DC
=foo
,DC
=example
,DC
=com
142 testit
"group addmembers" $PYTHON $samba_tool group addmembers
$CONFIG ddg
--member-dn=CN
=testuser
,CN
=Users
,DC
=foo
,DC
=example
,DC
=com
143 testit
"group addmembers" $PYTHON $samba_tool group addmembers
$CONFIG ddg
--member-dn=CN
=testuser1
,CN
=Users
,DC
=foo
,DC
=example
,DC
=com
145 # add two members by DN and listofmembers in one call
146 testit
"group addmembers" $PYTHON $samba_tool group addmembers
$CONFIG gdg
--member-dn=CN
=testuser
,CN
=Users
,DC
=foo
,DC
=example
,DC
=com testuser1
148 # add two members by DN with one call
149 testit
"group addmembers" $PYTHON $samba_tool group addmembers
$CONFIG udg
--member-dn=CN
=testuser
,CN
=Users
,DC
=foo
,DC
=example
,DC
=com
--member-dn=CN
=testuser1
,CN
=Users
,DC
=foo
,DC
=example
,DC
=com
151 # test removing test users from all groups by their DN
152 testit
"group removemembers" $PYTHON $samba_tool group removemembers
$CONFIG dsg
--member-dn=CN
=testuser
,CN
=Users
,DC
=foo
,DC
=example
,DC
=com
153 testit
"group removemembers" $PYTHON $samba_tool group removemembers
$CONFIG dsg
--member-dn=CN
=testuser1
,CN
=Users
,DC
=foo
,DC
=example
,DC
=com
154 testit
"group removemembers" $PYTHON $samba_tool group removemembers
$CONFIG gsg
--member-dn=CN
=testuser
,CN
=Users
,DC
=foo
,DC
=example
,DC
=com
155 testit
"group removemembers" $PYTHON $samba_tool group removemembers
$CONFIG gsg
--member-dn=CN
=testuser1
,CN
=Users
,DC
=foo
,DC
=example
,DC
=com
156 testit
"group removemembers" $PYTHON $samba_tool group removemembers
$CONFIG usg
--member-dn=CN
=testuser
,CN
=Users
,DC
=foo
,DC
=example
,DC
=com
157 testit
"group removemembers" $PYTHON $samba_tool group removemembers
$CONFIG usg
--member-dn=CN
=testuser1
,CN
=Users
,DC
=foo
,DC
=example
,DC
=com
158 testit
"group removemembers" $PYTHON $samba_tool group removemembers
$CONFIG ddg
--member-dn=CN
=testuser
,CN
=Users
,DC
=foo
,DC
=example
,DC
=com
159 testit
"group removemembers" $PYTHON $samba_tool group removemembers
$CONFIG ddg
--member-dn=CN
=testuser1
,CN
=Users
,DC
=foo
,DC
=example
,DC
=com
161 # remove two members by DN and listofmembers in one call
162 testit
"group removemembers" $PYTHON $samba_tool group removemembers
$CONFIG gdg
--member-dn=CN
=testuser
,CN
=Users
,DC
=foo
,DC
=example
,DC
=com testuser1
164 # remove two members by DN with one call
165 testit
"group removemembers" $PYTHON $samba_tool group removemembers
$CONFIG udg
--member-dn=CN
=testuser
,CN
=Users
,DC
=foo
,DC
=example
,DC
=com
--member-dn=CN
=testuser1
,CN
=Users
,DC
=foo
,DC
=example
,DC
=com
167 #test deletion of the groups
168 testit
"group delete" $PYTHON $samba_tool group delete
$CONFIG dsg
169 testit
"group delete" $PYTHON $samba_tool group delete
$CONFIG gsg
170 testit
"group delete" $PYTHON $samba_tool group delete
$CONFIG usg
171 testit
"group delete" $PYTHON $samba_tool group delete
$CONFIG ddg
172 testit
"group delete" $PYTHON $samba_tool group delete
$CONFIG gdg
173 testit
"group delete" $PYTHON $samba_tool group delete
$CONFIG udg
176 testit
"user delete" $PYTHON $samba_tool user delete
$CONFIG testuser
177 testit
"user delete" $PYTHON $samba_tool user delete
$CONFIG testuser1
179 #test listing of all groups
180 testit
"group list" $PYTHON $samba_tool group list
$CONFIG
182 #test listing of members of a particular group
183 testit
"group listmembers" $PYTHON $samba_tool group listmembers
$CONFIG Users