]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - tests/sys/acl/tools-nfs4-psarc.test
MFV r368464:
[FreeBSD/FreeBSD.git] / tests / sys / acl / tools-nfs4-psarc.test
1 # Copyright (c) 2008, 2009 Edward Tomasz NapieraƂa <trasz@FreeBSD.org>
2 #
3 # Redistribution and use in source and binary forms, with or without
4 # modification, are permitted provided that the following conditions
5 # are met:
6 # 1. Redistributions of source code must retain the above copyright
7 #    notice, this list of conditions and the following disclaimer.
8 # 2. Redistributions in binary form must reproduce the above copyright
9 #    notice, this list of conditions and the following disclaimer in the
10 #    documentation and/or other materials provided with the distribution.
11 #
12 # THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
13 # ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
14 # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
15 # ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
16 # FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
17 # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
18 # OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
19 # HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
20 # LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
21 # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
22 # SUCH DAMAGE.
23 #
24 # $FreeBSD$
25 #
26
27 # This is a tools-level test for NFSv4 ACL functionality with PSARC/2010/029
28 # semantics.  Run it as root using ACL-enabled kernel:
29 #
30 # /usr/src/tools/regression/acltools/run /usr/src/tools/regression/acltools/tools-nfs4-psarc.test
31 #
32 # WARNING: Creates files in unsafe way.
33
34 $ whoami
35 > root
36 $ umask 022
37
38 # Smoke test for getfacl(1).
39 $ touch xxx
40 $ getfacl xxx
41 > # file: xxx
42 > # owner: root
43 > # group: wheel
44 >             owner@:rw-p--aARWcCos:-------:allow
45 >             group@:r-----a-R-c--s:-------:allow
46 >          everyone@:r-----a-R-c--s:-------:allow
47
48 $ getfacl -q xxx
49 >             owner@:rw-p--aARWcCos:-------:allow
50 >             group@:r-----a-R-c--s:-------:allow
51 >          everyone@:r-----a-R-c--s:-------:allow
52
53 # Check verbose mode formatting.
54 $ getfacl -v xxx
55 > # file: xxx
56 > # owner: root
57 > # group: wheel
58 >             owner@:read_data/write_data/append_data/read_attributes/write_attributes/read_xattr/write_xattr/read_acl/write_acl/write_owner/synchronize::allow
59 >             group@:read_data/read_attributes/read_xattr/read_acl/synchronize::allow
60 >          everyone@:read_data/read_attributes/read_xattr/read_acl/synchronize::allow
61
62 # Test setfacl -a.
63 $ setfacl -a2 u:0:write_acl:allow,g:1:read_acl:deny xxx
64 $ getfacl -n xxx
65 > # file: xxx
66 > # owner: root
67 > # group: wheel
68 >             owner@:rw-p--aARWcCos:-------:allow
69 >             group@:r-----a-R-c--s:-------:allow
70 >             user:0:-----------C--:-------:allow
71 >            group:1:----------c---:-------:deny
72 >          everyone@:r-----a-R-c--s:-------:allow
73
74 # Test user and group name resolving.
75 $ rm xxx
76 $ touch xxx
77 $ setfacl -a2 u:root:write_acl:allow,g:daemon:read_acl:deny xxx
78 $ getfacl xxx
79 > # file: xxx
80 > # owner: root
81 > # group: wheel
82 >             owner@:rw-p--aARWcCos:-------:allow
83 >             group@:r-----a-R-c--s:-------:allow
84 >          user:root:-----------C--:-------:allow
85 >       group:daemon:----------c---:-------:deny
86 >          everyone@:r-----a-R-c--s:-------:allow
87
88 # Check whether ls correctly marks files with "+".
89 $ ls -l xxx | cut -d' ' -f1
90 > -rw-r--r--+
91
92 # Test removing entries by number.
93 $ setfacl -x 1 xxx
94 $ getfacl -n xxx
95 > # file: xxx
96 > # owner: root
97 > # group: wheel
98 >             owner@:rw-p--aARWcCos:-------:allow
99 >             user:0:-----------C--:-------:allow
100 >            group:1:----------c---:-------:deny
101 >          everyone@:r-----a-R-c--s:-------:allow
102
103 # Test setfacl -m.
104 $ setfacl -a0 everyone@:rwx:deny xxx
105 $ setfacl -a0 everyone@:rwx:deny xxx
106 $ setfacl -a0 everyone@:rwx:deny xxx
107 $ setfacl -m everyone@::deny xxx
108 $ getfacl -n xxx
109 > # file: xxx
110 > # owner: root
111 > # group: wheel
112 >          everyone@:--------------:-------:deny
113 >          everyone@:--------------:-------:deny
114 >          everyone@:--------------:-------:deny
115 >             owner@:rw-p--aARWcCos:-------:allow
116 >             user:0:-----------C--:-------:allow
117 >            group:1:----------c---:-------:deny
118 >          everyone@:r-----a-R-c--s:-------:allow
119
120 # Test getfacl -i.
121 $ getfacl -i xxx
122 > # file: xxx
123 > # owner: root
124 > # group: wheel
125 >          everyone@:--------------:-------:deny
126 >          everyone@:--------------:-------:deny
127 >          everyone@:--------------:-------:deny
128 >             owner@:rw-p--aARWcCos:-------:allow
129 >          user:root:-----------C--:-------:allow:0
130 >       group:daemon:----------c---:-------:deny:1
131 >          everyone@:r-----a-R-c--s:-------:allow
132
133 # Make sure cp without any flags does not copy copy the ACL.
134 $ cp xxx yyy
135 $ ls -l yyy | cut -d' ' -f1
136 > -rw-r--r--
137
138 # Make sure it does with the "-p" flag.
139 $ rm yyy
140 $ cp -p xxx yyy
141 $ getfacl -n yyy
142 > # file: yyy
143 > # owner: root
144 > # group: wheel
145 >          everyone@:--------------:-------:deny
146 >          everyone@:--------------:-------:deny
147 >          everyone@:--------------:-------:deny
148 >             owner@:rw-p--aARWcCos:-------:allow
149 >             user:0:-----------C--:-------:allow
150 >            group:1:----------c---:-------:deny
151 >          everyone@:r-----a-R-c--s:-------:allow
152
153 $ rm yyy
154
155 # Test removing entries by...  by example?
156 $ setfacl -x everyone@::deny xxx
157 $ getfacl -n xxx
158 > # file: xxx
159 > # owner: root
160 > # group: wheel
161 >             owner@:rw-p--aARWcCos:-------:allow
162 >             user:0:-----------C--:-------:allow
163 >            group:1:----------c---:-------:deny
164 >          everyone@:r-----a-R-c--s:-------:allow
165
166 # Test setfacl -b.
167 $ setfacl -b xxx
168 $ getfacl -n xxx
169 > # file: xxx
170 > # owner: root
171 > # group: wheel
172 >             owner@:rw-p--aARWcCos:-------:allow
173 >             group@:r-----a-R-c--s:-------:allow
174 >          everyone@:r-----a-R-c--s:-------:allow
175
176 $ ls -l xxx | cut -d' ' -f1
177 > -rw-r--r--
178
179 # Check setfacl(1) and getfacl(1) with multiple files.
180 $ touch xxx yyy zzz
181
182 $ ls -l xxx yyy zzz | cut -d' ' -f1
183 > -rw-r--r--
184 > -rw-r--r--
185 > -rw-r--r--
186
187 $ setfacl -m u:42:x:allow,g:43:w:allow nnn xxx yyy zzz
188 > setfacl: nnn: acl_get_file() failed: No such file or directory
189
190 $ ls -l nnn xxx yyy zzz | cut -d' ' -f1
191 > ls: nnn: No such file or directory
192 > -rw-r--r--+
193 > -rw-r--r--+
194 > -rw-r--r--+
195
196 $ getfacl -nq nnn xxx yyy zzz
197 > getfacl: nnn: stat() failed: No such file or directory
198 >            user:42:--x-----------:-------:allow
199 >           group:43:-w------------:-------:allow
200 >             owner@:rw-p--aARWcCos:-------:allow
201 >             group@:r-----a-R-c--s:-------:allow
202 >          everyone@:r-----a-R-c--s:-------:allow
203 >
204 >            user:42:--x-----------:-------:allow
205 >           group:43:-w------------:-------:allow
206 >             owner@:rw-p--aARWcCos:-------:allow
207 >             group@:r-----a-R-c--s:-------:allow
208 >          everyone@:r-----a-R-c--s:-------:allow
209 >
210 >            user:42:--x-----------:-------:allow
211 >           group:43:-w------------:-------:allow
212 >             owner@:rw-p--aARWcCos:-------:allow
213 >             group@:r-----a-R-c--s:-------:allow
214 >          everyone@:r-----a-R-c--s:-------:allow
215
216 $ setfacl -b nnn xxx yyy zzz
217 > setfacl: nnn: acl_get_file() failed: No such file or directory
218
219 $ ls -l nnn xxx yyy zzz | cut -d' ' -f1
220 > ls: nnn: No such file or directory
221 > -rw-r--r--
222 > -rw-r--r--
223 > -rw-r--r--
224
225 $ rm xxx yyy zzz
226
227 # Test applying mode to an ACL.
228 $ touch xxx
229 $ setfacl -a0 user:42:r:allow,user:43:w:deny,user:43:w:allow,user:44:x:allow -x everyone@::allow xxx
230 $ chmod 600 xxx
231 $ getfacl -n xxx
232 > # file: xxx
233 > # owner: root
234 > # group: wheel
235 >             owner@:rw-p--aARWcCos:-------:allow
236 >             group@:------a-R-c--s:-------:allow
237 >          everyone@:------a-R-c--s:-------:allow
238
239 $ ls -l xxx | cut -d' ' -f1
240 > -rw-------
241
242 $ rm xxx
243 $ touch xxx
244 $ chown 42 xxx
245 $ setfacl -a0 user:42:r:allow,user:43:w:deny,user:43:w:allow,user:44:x:allow xxx
246 $ chmod 600 xxx
247 $ getfacl -n xxx
248 > # file: xxx
249 > # owner: 42
250 > # group: wheel
251 >             owner@:rw-p--aARWcCos:-------:allow
252 >             group@:------a-R-c--s:-------:allow
253 >          everyone@:------a-R-c--s:-------:allow
254 $ ls -l xxx | cut -d' ' -f1
255 > -rw-------
256
257 $ rm xxx
258 $ touch xxx
259 $ chown 43 xxx
260 $ setfacl -a0 user:42:r:allow,user:43:w:deny,user:43:w:allow,user:44:x:allow xxx
261 $ chmod 124 xxx
262 $ getfacl -n xxx
263 > # file: xxx
264 > # owner: 43
265 > # group: wheel
266 >             owner@:rw-p----------:-------:deny
267 >             group@:r-------------:-------:deny
268 >             owner@:--x---aARWcCos:-------:allow
269 >             group@:-w-p--a-R-c--s:-------:allow
270 >          everyone@:r-----a-R-c--s:-------:allow
271 $ ls -l xxx | cut -d' ' -f1
272 > ---x-w-r--
273
274 $ rm xxx
275 $ touch xxx
276 $ chown 43 xxx
277 $ setfacl -a0 user:42:r:allow,user:43:w:deny,user:43:w:allow,user:44:x:allow xxx
278 $ chmod 412 xxx
279 $ getfacl -n xxx
280 > # file: xxx
281 > # owner: 43
282 > # group: wheel
283 >             owner@:-wxp----------:-------:deny
284 >             group@:-w-p----------:-------:deny
285 >             owner@:r-----aARWcCos:-------:allow
286 >             group@:--x---a-R-c--s:-------:allow
287 >          everyone@:-w-p--a-R-c--s:-------:allow
288 $ ls -l xxx | cut -d' ' -f1
289 > -r----x-w-
290
291 $ mkdir ddd
292 $ setfacl -a0 group:44:rwapd:allow ddd
293 $ setfacl -a0 group:43:write_data/delete_child:d:deny,group@:ad:allow ddd
294 $ setfacl -a0 user:42:rx:fi:allow,group:42:write_data/delete_child:d:allow ddd
295 $ setfacl -m everyone@:-w-p--a-R-c--s:fi:allow ddd
296 $ getfacl -n ddd
297 > # file: ddd
298 > # owner: root
299 > # group: wheel
300 >            user:42:r-x-----------:f-i----:allow
301 >           group:42:-w--D---------:-d-----:allow
302 >           group:43:-w--D---------:-d-----:deny
303 >             group@:-----da-------:-------:allow
304 >           group:44:rw-p-da-------:-------:allow
305 >             owner@:rwxp--aARWcCos:-------:allow
306 >             group@:r-x---a-R-c--s:-------:allow
307 >          everyone@:-w-p--a-R-c--s:f-i----:allow
308
309 $ chmod 777 ddd
310 $ getfacl -n ddd
311 > # file: ddd
312 > # owner: root
313 > # group: wheel
314 >             owner@:rwxp--aARWcCos:-------:allow
315 >             group@:rwxp--a-R-c--s:-------:allow
316 >          everyone@:rwxp--a-R-c--s:-------:allow
317
318 # Test applying ACL to mode.
319 $ rmdir ddd
320 $ mkdir ddd
321 $ setfacl -a0 u:42:rwx:fi:allow ddd
322 $ ls -ld ddd | cut -d' ' -f1
323 > drwxr-xr-x+
324
325 $ rmdir ddd
326 $ mkdir ddd
327 $ chmod 0 ddd
328 $ setfacl -a0 owner@:r:allow,group@:w:deny,group@:wx:allow ddd
329 $ ls -ld ddd | cut -d' ' -f1
330 > dr----x---+
331
332 $ rmdir ddd
333 $ mkdir ddd
334 $ chmod 0 ddd
335 $ setfacl -a0 owner@:r:allow,group@:w:fi:deny,group@:wx:allow ddd
336 $ ls -ld ddd | cut -d' ' -f1
337 > dr---wx---+
338
339 $ rmdir ddd
340 $ mkdir ddd
341 $ chmod 0 ddd
342 $ setfacl -a0 owner@:r:allow,group:43:w:deny,group:43:wx:allow ddd
343 $ ls -ld ddd | cut -d' ' -f1
344 > dr--------+
345
346 $ rmdir ddd
347 $ mkdir ddd
348 $ chmod 0 ddd
349 $ setfacl -a0 owner@:r:allow,user:43:w:deny,user:43:wx:allow ddd
350 $ ls -ld ddd | cut -d' ' -f1
351 > dr--------+
352
353 # Test inheritance.
354 $ rmdir ddd
355 $ mkdir ddd
356 $ setfacl -a0 group:43:write_data/write_acl:fin:deny,u:43:rwxp:allow ddd
357 $ setfacl -a0 user:42:rx:fi:allow,group:42:write_data/delete_child:dn:deny ddd
358 $ setfacl -a0 user:42:write_acl/write_owner:fi:allow ddd
359 $ setfacl -a0 group:41:read_data/read_attributes:dni:allow ddd
360 $ setfacl -a0 user:41:write_data/write_attributes:fn:allow ddd
361 $ getfacl -qn ddd
362 >            user:41:-w-----A------:f--n---:allow
363 >           group:41:r-----a-------:-din---:allow
364 >            user:42:-----------Co-:f-i----:allow
365 >            user:42:r-x-----------:f-i----:allow
366 >           group:42:-w--D---------:-d-n---:deny
367 >           group:43:-w---------C--:f-in---:deny
368 >            user:43:rwxp----------:-------:allow
369 >             owner@:rwxp--aARWcCos:-------:allow
370 >             group@:r-x---a-R-c--s:-------:allow
371 >          everyone@:r-x---a-R-c--s:-------:allow
372
373 $ cd ddd
374 $ touch xxx
375 $ getfacl -qn xxx
376 >            user:41:--------------:------I:allow
377 >            user:42:--------------:------I:allow
378 >            user:42:r-------------:------I:allow
379 >           group:43:-w---------C--:------I:deny
380 >             owner@:rw-p--aARWcCos:-------:allow
381 >             group@:r-----a-R-c--s:-------:allow
382 >          everyone@:r-----a-R-c--s:-------:allow
383
384 $ rm xxx
385 $ umask 077
386 $ touch xxx
387 $ getfacl -qn xxx
388 >            user:41:--------------:------I:allow
389 >            user:42:--------------:------I:allow
390 >            user:42:--------------:------I:allow
391 >           group:43:-w---------C--:------I:deny
392 >             owner@:rw-p--aARWcCos:-------:allow
393 >             group@:------a-R-c--s:-------:allow
394 >          everyone@:------a-R-c--s:-------:allow
395
396 $ rm xxx
397 $ umask 770
398 $ touch xxx
399 $ getfacl -qn xxx
400 >             owner@:rw-p----------:-------:deny
401 >             group@:rw-p----------:-------:deny
402 >            user:41:--------------:------I:allow
403 >            user:42:--------------:------I:allow
404 >            user:42:--------------:------I:allow
405 >           group:43:-w---------C--:------I:deny
406 >             owner@:------aARWcCos:-------:allow
407 >             group@:------a-R-c--s:-------:allow
408 >          everyone@:rw-p--a-R-c--s:-------:allow
409
410 $ rm xxx
411 $ umask 707
412 $ touch xxx
413 $ getfacl -qn xxx
414 >             owner@:rw-p----------:-------:deny
415 >            user:41:-w------------:------I:allow
416 >            user:42:--------------:------I:allow
417 >            user:42:r-------------:------I:allow
418 >           group:43:-w---------C--:------I:deny
419 >             owner@:------aARWcCos:-------:allow
420 >             group@:rw-p--a-R-c--s:-------:allow
421 >          everyone@:------a-R-c--s:-------:allow
422
423 $ umask 077
424 $ mkdir yyy
425 $ getfacl -qn yyy
426 >           group:41:------a-------:------I:allow
427 >            user:42:-----------Co-:f-i---I:allow
428 >            user:42:r-x-----------:f-i---I:allow
429 >           group:42:-w--D---------:------I:deny
430 >             owner@:rwxp--aARWcCos:-------:allow
431 >             group@:------a-R-c--s:-------:allow
432 >          everyone@:------a-R-c--s:-------:allow
433
434 $ rmdir yyy
435 $ umask 770
436 $ mkdir yyy
437 $ getfacl -qn yyy
438 >             owner@:rwxp----------:-------:deny
439 >             group@:rwxp----------:-------:deny
440 >           group:41:------a-------:------I:allow
441 >            user:42:-----------Co-:f-i---I:allow
442 >            user:42:r-x-----------:f-i---I:allow
443 >           group:42:-w--D---------:------I:deny
444 >             owner@:------aARWcCos:-------:allow
445 >             group@:------a-R-c--s:-------:allow
446 >          everyone@:rwxp--a-R-c--s:-------:allow
447
448 $ rmdir yyy
449 $ umask 707
450 $ mkdir yyy
451 $ getfacl -qn yyy
452 >             owner@:rwxp----------:-------:deny
453 >           group:41:r-----a-------:------I:allow
454 >            user:42:-----------Co-:f-i---I:allow
455 >            user:42:r-x-----------:f-i---I:allow
456 >           group:42:-w--D---------:------I:deny
457 >             owner@:------aARWcCos:-------:allow
458 >             group@:rwxp--a-R-c--s:-------:allow
459 >          everyone@:------a-R-c--s:-------:allow
460
461 # There is some complication regarding how write_acl and write_owner flags
462 # get inherited.  Make sure we got it right.
463 $ setfacl -b .
464 $ setfacl -a0 u:42:Co:f:allow .
465 $ setfacl -a0 u:43:Co:d:allow .
466 $ setfacl -a0 u:44:Co:fd:allow .
467 $ setfacl -a0 u:45:Co:fi:allow .
468 $ setfacl -a0 u:46:Co:di:allow .
469 $ setfacl -a0 u:47:Co:fdi:allow .
470 $ setfacl -a0 u:48:Co:fn:allow .
471 $ setfacl -a0 u:49:Co:dn:allow .
472 $ setfacl -a0 u:50:Co:fdn:allow .
473 $ setfacl -a0 u:51:Co:fni:allow .
474 $ setfacl -a0 u:52:Co:dni:allow .
475 $ setfacl -a0 u:53:Co:fdni:allow .
476 $ umask 022
477 $ rm xxx
478 $ touch xxx
479 $ getfacl -nq xxx
480 >            user:53:--------------:------I:allow
481 >            user:51:--------------:------I:allow
482 >            user:50:--------------:------I:allow
483 >            user:48:--------------:------I:allow
484 >            user:47:--------------:------I:allow
485 >            user:45:--------------:------I:allow
486 >            user:44:--------------:------I:allow
487 >            user:42:--------------:------I:allow
488 >             owner@:rw-p--aARWcCos:-------:allow
489 >             group@:r-----a-R-c--s:-------:allow
490 >          everyone@:r-----a-R-c--s:-------:allow
491
492 $ rmdir yyy
493 $ mkdir yyy
494 $ getfacl -nq yyy
495 >            user:53:--------------:------I:allow
496 >            user:52:--------------:------I:allow
497 >            user:50:--------------:------I:allow
498 >            user:49:--------------:------I:allow
499 >            user:47:--------------:fd----I:allow
500 >            user:46:--------------:-d----I:allow
501 >            user:45:-----------Co-:f-i---I:allow
502 >            user:44:--------------:fd----I:allow
503 >            user:43:--------------:-d----I:allow
504 >            user:42:-----------Co-:f-i---I:allow
505 >             owner@:rwxp--aARWcCos:-------:allow
506 >             group@:r-x---a-R-c--s:-------:allow
507 >          everyone@:r-x---a-R-c--s:-------:allow
508
509 $ setfacl -b .
510 $ setfacl -a0 u:42:Co:f:deny .
511 $ setfacl -a0 u:43:Co:d:deny .
512 $ setfacl -a0 u:44:Co:fd:deny .
513 $ setfacl -a0 u:45:Co:fi:deny .
514 $ setfacl -a0 u:46:Co:di:deny .
515 $ setfacl -a0 u:47:Co:fdi:deny .
516 $ setfacl -a0 u:48:Co:fn:deny .
517 $ setfacl -a0 u:49:Co:dn:deny .
518 $ setfacl -a0 u:50:Co:fdn:deny .
519 $ setfacl -a0 u:51:Co:fni:deny .
520 $ setfacl -a0 u:52:Co:dni:deny .
521 $ setfacl -a0 u:53:Co:fdni:deny .
522 $ umask 022
523 $ rm xxx
524 $ touch xxx
525 $ getfacl -nq xxx
526 >            user:53:-----------Co-:------I:deny
527 >            user:51:-----------Co-:------I:deny
528 >            user:50:-----------Co-:------I:deny
529 >            user:48:-----------Co-:------I:deny
530 >            user:47:-----------Co-:------I:deny
531 >            user:45:-----------Co-:------I:deny
532 >            user:44:-----------Co-:------I:deny
533 >            user:42:-----------Co-:------I:deny
534 >             owner@:rw-p--aARWcCos:-------:allow
535 >             group@:r-----a-R-c--s:-------:allow
536 >          everyone@:r-----a-R-c--s:-------:allow
537
538 $ rmdir yyy
539 $ mkdir yyy
540 $ getfacl -nq yyy
541 >            user:53:-----------Co-:------I:deny
542 >            user:52:-----------Co-:------I:deny
543 >            user:50:-----------Co-:------I:deny
544 >            user:49:-----------Co-:------I:deny
545 >            user:47:-----------Co-:fd----I:deny
546 >            user:46:-----------Co-:-d----I:deny
547 >            user:45:-----------Co-:f-i---I:deny
548 >            user:44:-----------Co-:fd----I:deny
549 >            user:43:-----------Co-:-d----I:deny
550 >            user:42:-----------Co-:f-i---I:deny
551 >             owner@:rwxp--aARWcCos:-------:allow
552 >             group@:r-x---a-R-c--s:-------:allow
553 >          everyone@:r-x---a-R-c--s:-------:allow
554
555 $ rmdir yyy
556 $ rm xxx
557 $ cd ..
558 $ rmdir ddd
559 $ rm xxx
560
561 # Test basic recursive setting of ACLs.
562 $ mkdir ddd
563 $ touch ddd/xxx
564 $ mkdir ddd/eee
565 $ touch ddd/eee/yyy
566 $ setfacl -R -m owner@:full_set:f:allow,group@:full_set::allow,everyone@:full_set::allow ddd
567 $ getfacl -q ddd
568 >             owner@:rwxpDdaARWcCos:f------:allow
569 >             group@:rwxpDdaARWcCos:-------:allow
570 >          everyone@:rwxpDdaARWcCos:-------:allow
571 $ getfacl -q ddd/xxx
572 >             owner@:rwxpDdaARWcCos:-------:allow
573 >             group@:rwxpDdaARWcCos:-------:allow
574 >          everyone@:rwxpDdaARWcCos:-------:allow
575 $ getfacl -q ddd/eee
576 >             owner@:rwxpDdaARWcCos:f------:allow
577 >             group@:rwxpDdaARWcCos:-------:allow
578 >          everyone@:rwxpDdaARWcCos:-------:allow
579 $ getfacl -q ddd/eee/yyy
580 >             owner@:rwxpDdaARWcCos:-------:allow
581 >             group@:rwxpDdaARWcCos:-------:allow
582 >          everyone@:rwxpDdaARWcCos:-------:allow
583
584 $ rm -r ddd