1 QA output created by 051
3 === Test minimal ACE ===
5 -rwxrw-r-- id1 id2 file1
7 --- Test get and set of ACL ---
8 Note: Old interface gave an empty ACL - now output an ACL
9 file1 [u::rwx,g::rw-,o::r--]
10 Try using single colon separator
11 Note: Old interface FAILed because of single colon - new one allows it
13 file1 [u::r--,g::rwx,o::rw-]
15 --- Test sync of ACL with std permissions ---
16 -r--rwxrw- id1 id2 file1
17 -rw-rwxrw- id1 id2 file1
18 file1 [u::rw-,g::rwx,o::rw-]
20 --- Test owner permissions ---
21 file1 [u::r-x,g::---,o::---]
25 ./file1: Permission denied
27 --- Test group permissions ---
28 file1 [u::---,g::r-x,o::---]
29 Expect to FAIL - acl1 is owner
30 ./file1: Permission denied
31 Expect to PASS - acl2 matches group
33 Expect to PASS - acl2 matches sup group
35 Expect to FAIL - acl3 is not in group
36 ./file1: Permission denied
38 --- Test other permissions ---
39 file1 [u::---,g::---,o::r-x]
40 Expect to FAIL - acl1 is owner
41 ./file1: Permission denied
42 Expect to FAIL - acl2 is in group
43 ./file1: Permission denied
44 Expect to FAIL - acl2 is in sup. group
45 ./file1: Permission denied
46 Expect to PASS - acl3 is not owner or in group
49 === Test Extended ACLs ===
51 --- Test adding a USER ACE ---
52 Expect to FAIL as no MASK provided
53 chacl: access ACL 'u::---,g::---,o::---,u:id2:r-x': Missing or wrong entry at entry 3
54 Ensure that ACL has not been changed
55 file1 [u::---,g::---,o::r-x]
56 Expect to PASS - USER ACE matches user
57 file1 [u::---,u:id2:r-x,g::---,m::rwx,o::---]
59 Expect to FAIL - USER ACE does not match user
60 ./file1: Permission denied
62 --- Test adding a GROUP ACE ---
63 Expect to FAIL as no MASK provided
64 chacl: access ACL 'u::---,g::---,o::---,g:id2:r-x': Missing or wrong entry at entry 3
65 Ensure that ACL has not been changed
66 file1 [u::---,u:id2:r-x,g::---,m::rwx,o::---]
67 file1 [u::---,g::---,g:id2:r-x,m::rwx,o::---]
68 Expect to PASS - GROUP ACE matches group
70 Expect to PASS - GROUP ACE matches sup group
72 Expect to FAIL - GROUP ACE does not match group
73 ./file1: Permission denied
76 file1 [u::---,g::---,g:id2:r-x,m::-w-,o::---]
77 Expect to FAIL as MASK prohibits execution
78 ./file1: Permission denied
79 Expect to FAIL as MASK prohibits execution
80 ./file1: Permission denied
81 Expect to PASS as MASK allows execution
84 --- Test ACE priority ---
85 Expect to FAIL as should match on owner
86 ./file1: Permission denied
87 Expect to PASS as should match on user
90 === Test can read ACLs without access permissions ===
91 file1 [u::---,g::---,o::---]
93 === Test Default ACLs ===
94 acldir [u::rwx,g::rwx,o::rwx/u::r-x,g::r--,o::---]
96 file2 [u::r--,g::r--,o::---]
98 file3 [u::r--,g::r--,o::---]
100 === Removing ACLs ===
101 file1 [u::---,g::---,o::---]
102 acldir [u::rwx,g::rwx,o::rwx/u::r-x,g::r--,o::---]
103 acldir/file2 [u::r--,g::r--,o::---]
105 Note: Old interface would mean empty ACLs - now we show mode ACLs
106 file1 [u::---,g::---,o::---]
107 acldir [u::rwx,g::rwx,o::rwx]
108 acldir/file2 [u::r--,g::r--,o::---]
110 === Recursive change ACL ===
112 root [u::rwx,g::-w-,o::--x]
113 root/a [u::rwx,g::-w-,o::--x]
114 root/a/1 [u::rwx,g::-w-,o::--x]
115 root/a/1/mumble [u::rwx,g::-w-,o::--x]
116 root/a/2 [u::rwx,g::-w-,o::--x]
117 root/a/2/mumble [u::rwx,g::-w-,o::--x]
118 root/a/3 [u::rwx,g::-w-,o::--x]
119 root/a/3/mumble [u::rwx,g::-w-,o::--x]
120 root/a/4 [u::rwx,g::-w-,o::--x]
121 root/a/4/mumble [u::rwx,g::-w-,o::--x]
122 root/a/5 [u::rwx,g::-w-,o::--x]
123 root/a/5/mumble [u::rwx,g::-w-,o::--x]
124 root/a/6 [u::rwx,g::-w-,o::--x]
125 root/a/6/mumble [u::rwx,g::-w-,o::--x]
126 root/a/7 [u::rwx,g::-w-,o::--x]
127 root/a/7/mumble [u::rwx,g::-w-,o::--x]
128 root/a/8 [u::rwx,g::-w-,o::--x]
129 root/a/8/mumble [u::rwx,g::-w-,o::--x]
130 root/a/9 [u::rwx,g::-w-,o::--x]
131 root/a/9/mumble [u::rwx,g::-w-,o::--x]
132 root/a/0 [u::rwx,g::-w-,o::--x]
133 root/a/0/mumble [u::rwx,g::-w-,o::--x]
134 root/b [u::rwx,g::-w-,o::--x]
135 root/b/c1 [u::rwx,g::-w-,o::--x]
136 root/b/c1/1 [u::rwx,g::-w-,o::--x]
137 root/b/c2 [u::rwx,g::-w-,o::--x]
138 root/b/c2/2 [u::rwx,g::-w-,o::--x]
139 root/b/c3 [u::rwx,g::-w-,o::--x]
140 root/b/c3/3 [u::rwx,g::-w-,o::--x]
141 root/b/c4 [u::rwx,g::-w-,o::--x]
142 root/b/c4/4 [u::rwx,g::-w-,o::--x]
143 root/b/c5 [u::rwx,g::-w-,o::--x]
144 root/b/c5/5 [u::rwx,g::-w-,o::--x]
145 root/b/c6 [u::rwx,g::-w-,o::--x]
146 root/b/c6/6 [u::rwx,g::-w-,o::--x]
147 root/b/c7 [u::rwx,g::-w-,o::--x]
148 root/b/c7/7 [u::rwx,g::-w-,o::--x]
149 root/b/c8 [u::rwx,g::-w-,o::--x]
150 root/b/c8/8 [u::rwx,g::-w-,o::--x]
151 root/b/c9 [u::rwx,g::-w-,o::--x]
152 root/b/c9/9 [u::rwx,g::-w-,o::--x]
153 root/b/c0 [u::rwx,g::-w-,o::--x]
154 root/b/c0/0 [u::rwx,g::-w-,o::--x]
156 root [u::---,g::---,o::---]
157 root/a [u::---,g::---,o::---]
158 root/a/1 [u::---,g::---,o::---]
159 root/a/1/mumble [u::---,g::---,o::---]
160 root/a/2 [u::---,g::---,o::---]
161 root/a/2/mumble [u::---,g::---,o::---]
162 root/a/3 [u::---,g::---,o::---]
163 root/a/3/mumble [u::---,g::---,o::---]
164 root/a/4 [u::---,g::---,o::---]
165 root/a/4/mumble [u::---,g::---,o::---]
166 root/a/5 [u::---,g::---,o::---]
167 root/a/5/mumble [u::---,g::---,o::---]
168 root/a/6 [u::---,g::---,o::---]
169 root/a/6/mumble [u::---,g::---,o::---]
170 root/a/7 [u::---,g::---,o::---]
171 root/a/7/mumble [u::---,g::---,o::---]
172 root/a/8 [u::---,g::---,o::---]
173 root/a/8/mumble [u::---,g::---,o::---]
174 root/a/9 [u::---,g::---,o::---]
175 root/a/9/mumble [u::---,g::---,o::---]
176 root/a/0 [u::---,g::---,o::---]
177 root/a/0/mumble [u::---,g::---,o::---]
178 root/b [u::---,g::---,o::---]
179 root/b/c1 [u::---,g::---,o::---]
180 root/b/c1/1 [u::---,g::---,o::---]
181 root/b/c2 [u::---,g::---,o::---]
182 root/b/c2/2 [u::---,g::---,o::---]
183 root/b/c3 [u::---,g::---,o::---]
184 root/b/c3/3 [u::---,g::---,o::---]
185 root/b/c4 [u::---,g::---,o::---]
186 root/b/c4/4 [u::---,g::---,o::---]
187 root/b/c5 [u::---,g::---,o::---]
188 root/b/c5/5 [u::---,g::---,o::---]
189 root/b/c6 [u::---,g::---,o::---]
190 root/b/c6/6 [u::---,g::---,o::---]
191 root/b/c7 [u::---,g::---,o::---]
192 root/b/c7/7 [u::---,g::---,o::---]
193 root/b/c8 [u::---,g::---,o::---]
194 root/b/c8/8 [u::---,g::---,o::---]
195 root/b/c9 [u::---,g::---,o::---]
196 root/b/c9/9 [u::---,g::---,o::---]
197 root/b/c0 [u::---,g::---,o::---]
198 root/b/c0/0 [u::---,g::---,o::---]
200 === Test out error messages for ACL text parsing ===
201 Note: Old interface gave more informative error msgs
203 chacl: u - Invalid argument
205 chacl: u: - Invalid argument
206 + chacl u:rumpledumpleunknownuser file1
207 chacl: u:rumpledumpleunknownuser - Invalid argument
208 + chacl u:rumpledumpleunknownuser: file1
209 chacl: u:rumpledumpleunknownuser: - Invalid argument
210 + chacl g:rumpledumpleunknowngrp file1
211 chacl: g:rumpledumpleunknowngrp - Invalid argument
212 + chacl g:rumpledumpleunknowngrp: file1
213 chacl: g:rumpledumpleunknowngrp: - Invalid argument
214 + chacl o:user1:rwx file1
215 chacl: o:user1:rwx - Invalid argument
216 + chacl m:user1:rwx file1
217 chacl: m:user1:rwx - Invalid argument
219 chacl: a::rwx - Invalid argument
222 === Test out large ACLs ===
283 chacl: cannot set access acl on "largeaclfile": Invalid argument