Whamcloud - gitweb
LU-6961 ldiskfs: buffer head leak in mmp
[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 # XXX:there is an issue with getfacl dealing symbol link
263 #       $ getfacl --omit-header d/l
264         $ cd d
265         $ getfacl --omit-header l
266         > user::rwx
267         > user:bin:rwx  #effective:r-x
268         > user:daemon:r-x
269         > group::r-x
270         > group:daemon:rwx      #effective:r-x
271         > group:users:r-x
272         > mask::r-x
273         > other::---
274         > default:user::rwx
275         > default:user:bin:rwx  #effective:r-x
276         > default:user:daemon:r-x
277         > default:group::r-x
278         > default:mask::r-x
279         > default:other::---
280         > 
281 # XXX
282         $ cd ..
283
284         $ rm d/l
285          
286 Does mask manipulation work?
287          
288         $ setfacl -m g:daemon:rx,u:bin:rx d/d
289         $ ls -dl d/d | awk '{print $1}'
290         > drwxr-x---+
291
292         $ getfacl --omit-header d/d
293         > user::rwx
294         > user:bin:r-x
295         > user:daemon:r-x
296         > group::r-x
297         > group:daemon:r-x
298         > group:users:r-x
299         > mask::r-x
300         > other::---
301         > default:user::rwx
302         > default:user:bin:rwx  #effective:r-x
303         > default:user:daemon:r-x
304         > default:group::r-x
305         > default:mask::r-x
306         > default:other::---
307         > 
308
309         $ setfacl -m d:u:bin:rwx d/d
310         $ ls -dl d/d | awk '{print $1}'
311         > drwxr-x---+
312
313         $ getfacl --omit-header d/d
314         > user::rwx
315         > user:bin:r-x
316         > user:daemon:r-x
317         > group::r-x
318         > group:daemon:r-x
319         > group:users:r-x
320         > mask::r-x
321         > other::---
322         > default:user::rwx
323         > default:user:bin:rwx
324         > default:user:daemon:r-x
325         > default:group::r-x
326         > default:mask::rwx
327         > default:other::---
328         > 
329
330         $ rmdir d/d
331          
332 Remove the default ACL
333          
334         $ setfacl -k d
335         $ ls -dl d | awk '{print $1}'
336         > drwxrwx---+
337
338         $ getfacl --omit-header d
339         > user::rwx
340         > user:bin:rwx
341         > user:daemon:rw-
342         > group::r-x
343         > mask::rwx
344         > other::---
345         > 
346          
347 Reset to base entries
348          
349         $ setfacl -b d
350         $ ls -dl d | awk '{print $1}'
351         > drwxr-x---
352
353         $ getfacl --omit-header d
354         > user::rwx
355         > group::r-x
356         > other::---
357         > 
358          
359 Now, chmod should change the group_obj entry
360          
361         $ chmod 775 d
362         $ ls -dl d | awk '{print $1}'
363         > drwxrwxr-x
364         
365         $ getfacl --omit-header d
366         > user::rwx
367         > group::rwx
368         > other::r-x
369         > 
370
371         $ rmdir d
372         $ umask 002
373         $ mkdir d
374         $ setfacl -m u:daemon:rwx,u:bin:rx,d:u:daemon:rwx,d:u:bin:rx d
375         $ ls -dl d | awk '{print $1}'
376         > drwxrwxr-x+
377
378         $ getfacl --omit-header d
379         > user::rwx
380         > user:bin:r-x
381         > user:daemon:rwx
382         > group::rwx
383         > mask::rwx
384         > other::r-x
385         > default:user::rwx
386         > default:user:bin:r-x
387         > default:user:daemon:rwx
388         > default:group::rwx
389         > default:mask::rwx
390         > default:other::r-x
391         > 
392
393         $ chmod 750 d
394         $ ls -dl d | awk '{print $1}'
395         > drwxr-x---+
396
397         $ getfacl --omit-header d
398         > user::rwx
399         > user:bin:r-x
400         > user:daemon:rwx       #effective:r-x
401         > group::rwx    #effective:r-x
402         > mask::r-x
403         > other::---
404         > default:user::rwx
405         > default:user:bin:r-x
406         > default:user:daemon:rwx
407         > default:group::rwx
408         > default:mask::rwx
409         > default:other::r-x
410         > 
411
412         $ chmod 750 d
413         $ ls -dl d | awk '{print $1}'
414         > drwxr-x---+
415
416         $ getfacl --omit-header d
417         > user::rwx
418         > user:bin:r-x
419         > user:daemon:rwx       #effective:r-x
420         > group::rwx    #effective:r-x
421         > mask::r-x
422         > other::---
423         > default:user::rwx
424         > default:user:bin:r-x
425         > default:user:daemon:rwx
426         > default:group::rwx
427         > default:mask::rwx
428         > default:other::r-x
429         > 
430
431         $ rmdir d