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 settings a users primary group
68 user_getgroups_primary_first() {
69 expected_primary_group=$1
70 res=$($PYTHON $samba_tool user getgroups $CONFIG testuser)
72 # the users primary group is expected in the first line
73 primary_group=$(echo "$res" | head -1)
74 echo $primary_group | grep -q "^${expected_primary_group}$" || return 1
76 testit "user setprimarygroup" $PYTHON $samba_tool user setprimarygroup $CONFIG testuser dsg
77 testit "user getgroups primary first" user_getgroups_primary_first dsg
78 testit "user setprimarygroup" $PYTHON $samba_tool user setprimarygroup $CONFIG testuser gsg
79 testit "user getgroups primary first" user_getgroups_primary_first gsg
81 # reset group (without testit, because I do not know how to quote the groupname)
82 $PYTHON $samba_tool user setprimarygroup $CONFIG testuser 'Domain Users'
84 #test removing test users from all groups by their username
85 testit "group removemembers" $PYTHON $samba_tool group removemembers $CONFIG dsg testuser,testuser1
86 testit "group removemembers" $PYTHON $samba_tool group removemembers $CONFIG gsg testuser,testuser1
87 testit "group removemembers" $PYTHON $samba_tool group removemembers $CONFIG usg testuser,testuser1
88 testit "group removemembers" $PYTHON $samba_tool group removemembers $CONFIG ddg testuser,testuser1
89 testit "group removemembers" $PYTHON $samba_tool group removemembers $CONFIG gdg testuser,testuser1
90 testit "group removemembers" $PYTHON $samba_tool group removemembers $CONFIG udg testuser,testuser1
92 #test adding test users to all groups by their cn
93 #testit "group addmembers" $samba_tool group addmembers $CONFIG dsg "User UT. Tester,User1 UT. Tester"
94 #testit "group addmembers" $samba_tool group addmembers $CONFIG gsg "User UT. Tester,User1 UT. Tester"
95 #testit "group addmembers" $samba_tool group addmembers $CONFIG usg "User UT. Tester,User1 UT. Tester"
96 #testit "group addmembers" $samba_tool group addmembers $CONFIG ddg "User UT. Tester,User1 UT. Tester"
97 #testit "group addmembers" $samba_tool group addmembers $CONFIG gdg "User UT. Tester,User1 UT. Tester"
98 #testit "group addmembers" $samba_tool group addmembers $CONFIG udg "User UT. Tester,User1 UT. Tester"
100 #test removing test users from all groups by their cn
101 #testit "group removemembers" $samba_tool group removemembers $CONFIG dsg "User UT. Tester,User1 UT. Tester"
102 #testit "group removemembers" $samba_tool group removemembers $CONFIG gsg "User UT. Tester,User1 UT. Tester"
103 #testit "group removemembers" $samba_tool group removemembers $CONFIG usg "User UT. Tester,User1 UT. Tester"
104 #testit "group removemembers" $samba_tool group removemembers $CONFIG ddg "User UT. Tester,User1 UT. Tester"
105 #testit "group removemembers" $samba_tool group removemembers $CONFIG gdg "User UT. Tester,User1 UT. Tester"
106 #testit "group removemembers" $samba_tool group removemembers $CONFIG ugg "User UT. Tester,User1 UT. Tester"
108 #test deletion of the groups
109 testit "group delete" $PYTHON $samba_tool group delete $CONFIG dsg
110 testit "group delete" $PYTHON $samba_tool group delete $CONFIG gsg
111 testit "group delete" $PYTHON $samba_tool group delete $CONFIG usg
112 testit "group delete" $PYTHON $samba_tool group delete $CONFIG ddg
113 testit "group delete" $PYTHON $samba_tool group delete $CONFIG gdg
114 testit "group delete" $PYTHON $samba_tool group delete $CONFIG udg
116 #test listing of all groups
117 testit "group list" $PYTHON $samba_tool group list $CONFIG
119 #test listing of members of a particular group
120 testit "group listmembers" $PYTHON $samba_tool group listmembers $CONFIG Users