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