Whamcloud - gitweb
add more and adjust acl test script.
[fs/lustre-release.git] / lustre / tests / acl / misc.test
1 Pretty comprehensive ACL tests.
2  
3 This must be run on a filesystem with ACL support. Also, you will need
4 two dummy users (bin and daemon) and a dummy group (daemon).
5  
6         $ umask 027
7         $ touch f
8           
9 Only change a base ACL:
10         $ setfacl -m u::r f
11         $ setfacl -m u::rw,u:bin:rw f
12         $ ls -dl f | awk '{print $1}'
13         > -rw-rw----+
14         
15         $ getfacl --omit-header f
16         > user::rw-
17         > user:bin:rw-
18         > group::r--
19         > mask::rw-
20         > other::---
21         > 
22
23         $ rm f
24         $ umask 022
25         $ touch f
26         $ setfacl -m u:bin:rw f
27         $ ls -dl f | awk '{print $1}'
28         > -rw-rw-r--+
29
30         $ getfacl --omit-header f
31         > user::rw-
32         > user:bin:rw-
33         > group::r--
34         > mask::rw-
35         > other::r--
36         > 
37
38         $rm f
39         $ umask 027
40         $ mkdir d
41         $ setfacl -m u:bin:rwx d
42         $ ls -dl d | awk '{print $1}'
43         > drwxrwx---+
44
45         $ getfacl --omit-header d
46         > user::rwx
47         > user:bin:rwx
48         > group::r-x
49         > mask::rwx
50         > other::---
51         > 
52
53         $ rmdir d
54         $ umask 022
55         $ mkdir d
56         $ setfacl -m u:bin:rwx d
57         $ ls -dl d | awk '{print $1}'
58         > drwxrwxr-x+
59
60         $ getfacl --omit-header d
61         > user::rwx
62         > user:bin:rwx
63         > group::r-x
64         > mask::rwx
65         > other::r-x
66         > 
67
68         $ rmdir d
69          
70
71 Multiple users
72          
73         $ umask 022
74         $ touch f
75         $ setfacl -m u:bin:rw,u:daemon:r f
76         $ ls -dl f | awk '{print $1}'
77         > -rw-rw-r--+
78
79         $ getfacl --omit-header f
80         > user::rw-
81         > user:bin:rw-
82         > user:daemon:r--
83         > group::r--
84         > mask::rw-
85         > other::r--
86         > 
87          
88 Multiple groups
89          
90         $ setfacl -m g:users:rw,g:daemon:r f
91         $ ls -dl f | awk '{print $1}'
92         > -rw-rw-r--+
93
94         $ getfacl --omit-header f
95         > user::rw-
96         > user:bin:rw-
97         > user:daemon:r--
98         > group::r--
99         > group:daemon:r--
100         > group:users:rw-
101         > mask::rw-
102         > other::r--
103         > 
104          
105 Remove one group
106          
107         $ setfacl -x g:users f
108         $ ls -dl f | awk '{print $1}'
109         > -rw-rw-r--+
110
111         $ getfacl --omit-header f
112         > user::rw-
113         > user:bin:rw-
114         > user:daemon:r--
115         > group::r--
116         > group:daemon:r--
117         > mask::rw-
118         > other::r--
119         > 
120          
121 Remove one user
122          
123         $ setfacl -x u:daemon f
124         $ ls -dl f | awk '{print $1}'
125         > -rw-rw-r--+
126
127         $ getfacl --omit-header f
128         > user::rw-
129         > user:bin:rw-
130         > group::r--
131         > group:daemon:r--
132         > mask::rw-
133         > other::r--
134         > 
135
136         $ rm f
137          
138 Default ACL
139          
140         $ umask 027
141         $ mkdir d
142         $ setfacl -m u:bin:rwx,u:daemon:rw,d:u:bin:rwx,d:m:rx d
143         $ ls -dl d | awk '{print $1}'
144         > drwxrwx---+
145
146         $ getfacl --omit-header d
147         > user::rwx
148         > user:bin:rwx
149         > user:daemon:rw-
150         > group::r-x
151         > mask::rwx
152         > other::---
153         > default:user::rwx
154         > default:user:bin:rwx  #effective:r-x
155         > default:group::r-x
156         > default:mask::r-x
157         > default:other::---
158         > 
159          
160 Umask now ignored?
161  
162         $ umask 027
163         $ touch d/f
164         $ ls -dl d/f | awk '{print $1}'
165         > -rw-r-----+
166
167         $ getfacl --omit-header d/f
168         > user::rw-
169         > user:bin:rwx  #effective:r--
170         > group::r-x    #effective:r--
171         > mask::r--
172         > other::---
173         > 
174
175         $ rm d/f
176         $ umask 022
177         $ touch d/f
178         $ ls -dl d/f | awk '{print $1}'
179         > -rw-r-----+
180
181         $ getfacl --omit-header d/f
182         > user::rw-
183         > user:bin:rwx  #effective:r--
184         > group::r-x    #effective:r--
185         > mask::r--
186         > other::---
187         > 
188
189         $ rm d/f
190          
191 Default ACL copying
192  
193         $ umask 000
194         $ mkdir d/d
195         $ ls -dl d/d | awk '{print $1}'
196         > drwxr-x---+
197
198         $ getfacl --omit-header d/d
199         > user::rwx
200         > user:bin:rwx  #effective:r-x
201         > group::r-x
202         > mask::r-x
203         > other::---
204         > default:user::rwx
205         > default:user:bin:rwx  #effective:r-x
206         > default:group::r-x
207         > default:mask::r-x
208         > default:other::---
209         > 
210
211         $ rmdir d/d
212         $ umask 022
213         $ mkdir d/d
214         $ ls -dl d/d | awk '{print $1}'
215         > drwxr-x---+
216
217         $ getfacl --omit-header d/d
218         > user::rwx
219         > user:bin:rwx  #effective:r-x
220         > group::r-x
221         > mask::r-x
222         > other::---
223         > default:user::rwx
224         > default:user:bin:rwx  #effective:r-x
225         > default:group::r-x
226         > default:mask::r-x
227         > default:other::---
228         > 
229          
230 Add some users and groups
231  
232         $ setfacl -nm u:daemon:rx,d:u:daemon:rx,g:users:rx,g:daemon:rwx d/d
233         $ ls -dl d/d | awk '{print $1}'
234         > drwxr-x---+
235
236         $ getfacl --omit-header d/d
237         > user::rwx
238         > user:bin:rwx  #effective:r-x
239         > user:daemon:r-x
240         > group::r-x
241         > group:daemon:rwx      #effective:r-x
242         > group:users:r-x
243         > mask::r-x
244         > other::---
245         > default:user::rwx
246         > default:user:bin:rwx  #effective:r-x
247         > default:user:daemon:r-x
248         > default:group::r-x
249         > default:mask::r-x
250         > default:other::---
251         > 
252          
253 Symlink in directory with default ACL?
254          
255         $ ln -s d d/l
256         $ ls -dl d/l | awk '{print $1}'
257         > lrwxrwxrwx
258
259         $ ls -dl -L d/l | awk '{print $1}'
260         > drwxr-x---+
261
262         $ getfacl --omit-header d/l
263         > user::rwx
264         > user:bin:rwx  #effective:r-x
265         > user:daemon:r-x
266         > group::r-x
267         > group:daemon:rwx      #effective:r-x
268         > group:users:r-x
269         > mask::r-x
270         > other::---
271         > default:user::rwx
272         > default:user:bin:rwx  #effective:r-x
273         > default:user:daemon:r-x
274         > default:group::r-x
275         > default:mask::r-x
276         > default:other::---
277         > 
278
279         $ rm d/l
280          
281 Does mask manipulation work?
282          
283         $ setfacl -m g:daemon:rx,u:bin:rx d/d
284         $ ls -dl d/d | awk '{print $1}'
285         > drwxr-x---+
286
287         $ getfacl --omit-header d/d
288         > user::rwx
289         > user:bin:r-x
290         > user:daemon:r-x
291         > group::r-x
292         > group:daemon:r-x
293         > group:users:r-x
294         > mask::r-x
295         > other::---
296         > default:user::rwx
297         > default:user:bin:rwx  #effective:r-x
298         > default:user:daemon:r-x
299         > default:group::r-x
300         > default:mask::r-x
301         > default:other::---
302         > 
303
304         $ setfacl -m d:u:bin:rwx d/d
305         $ ls -dl d/d | awk '{print $1}'
306         > drwxr-x---+
307
308         $ getfacl --omit-header d/d
309         > user::rwx
310         > user:bin:r-x
311         > user:daemon:r-x
312         > group::r-x
313         > group:daemon:r-x
314         > group:users:r-x
315         > mask::r-x
316         > other::---
317         > default:user::rwx
318         > default:user:bin:rwx
319         > default:user:daemon:r-x
320         > default:group::r-x
321         > default:mask::rwx
322         > default:other::---
323         > 
324
325         $ rmdir d/d
326          
327 Remove the default ACL
328          
329         $ setfacl -k d
330         $ ls -dl d | awk '{print $1}'
331         > drwxrwx---+
332
333         $ getfacl --omit-header d
334         > user::rwx
335         > user:bin:rwx
336         > user:daemon:rw-
337         > group::r-x
338         > mask::rwx
339         > other::---
340         > 
341          
342 Reset to base entries
343          
344         $ setfacl -b d
345         $ ls -dl d | awk '{print $1}'
346         > drwxr-x---
347
348         $ getfacl --omit-header d
349         > user::rwx
350         > group::r-x
351         > other::---
352         > 
353          
354 Now, chmod should change the group_obj entry
355          
356         $ chmod 775 d
357         $ ls -dl d | awk '{print $1}'
358         > drwxrwxr-x
359         
360         $ getfacl --omit-header d
361         > user::rwx
362         > group::rwx
363         > other::r-x
364         > 
365
366         $ rmdir d
367         $ umask 002
368         $ mkdir d
369         $ setfacl -m u:daemon:rwx,u:bin:rx,d:u:daemon:rwx,d:u:bin:rx d
370         $ ls -dl d | awk '{print $1}'
371         > drwxrwxr-x+
372
373         $ getfacl --omit-header d
374         > user::rwx
375         > user:bin:r-x
376         > user:daemon:rwx
377         > group::rwx
378         > mask::rwx
379         > other::r-x
380         > default:user::rwx
381         > default:user:bin:r-x
382         > default:user:daemon:rwx
383         > default:group::rwx
384         > default:mask::rwx
385         > default:other::r-x
386         > 
387
388         $ chmod 750 d
389         $ ls -dl d | awk '{print $1}'
390         > drwxr-x---+
391
392         $ getfacl --omit-header d
393         > user::rwx
394         > user:bin:r-x
395         > user:daemon:rwx       #effective:r-x
396         > group::rwx    #effective:r-x
397         > mask::r-x
398         > other::---
399         > default:user::rwx
400         > default:user:bin:r-x
401         > default:user:daemon:rwx
402         > default:group::rwx
403         > default:mask::rwx
404         > default:other::r-x
405         > 
406
407         $ chmod 750 d
408         $ ls -dl d | awk '{print $1}'
409         > drwxr-x---+
410
411         $ getfacl --omit-header d
412         > user::rwx
413         > user:bin:r-x
414         > user:daemon:rwx       #effective:r-x
415         > group::rwx    #effective:r-x
416         > mask::r-x
417         > other::---
418         > default:user::rwx
419         > default:user:bin:r-x
420         > default:user:daemon:rwx
421         > default:group::rwx
422         > default:mask::rwx
423         > default:other::r-x
424         > 
425
426         $ rmdir d