Viewing: inheritance.test
ACL inheritance test. Run these tests on a filesystem with ACL support.
$ id -u
> 0
$ mkdir d
$ setfacl -d -m group:bin:r-x d
$ getfacl d
> # file: d
> # owner: root
> # group: root
> user::rwx
> group::r-x
> other::r-x
> default:user::rwx
> default:group::r-x
> default:group:bin:r-x
> default:mask::r-x
> default:other::r-x
>
$ mkdir d/subdir
$ getfacl d/subdir
> # file: d/subdir
> # owner: root
> # group: root
> user::rwx
> group::r-x
> group:bin:r-x
> mask::r-x
> other::r-x
> default:user::rwx
> default:group::r-x
> default:group:bin:r-x
> default:mask::r-x
> default:other::r-x
>
$ touch d/f
$ ls -l d/f | awk -- '{ print $1 }'
> -rw-r--r--+
$ getfacl d/f
> # file: d/f
> # owner: root
> # group: root
> user::rw-
> group::r-x #effective:r--
> group:bin:r-x #effective:r--
> mask::r--
> other::r--
>
$ su bin
$ echo i >> d/f
> d/f: Permission denied
Changed by CFS: (1). reduce the tree level to 2 (for shortening
time of local tests). (2). add one more getfacl test since dir
might be distributed around MDS's.
$ su
$ rm d/f
$ rmdir d/subdir
$ mv d tree
$ ./make-tree
$ getfacl tree/dir0/dir5/file4
> # file: tree/dir0/dir5/file4
> # owner: root
> # group: root
> user::rw-
> group::r-x #effective:r--
> group:bin:r-x #effective:r--
> mask::r--
> other::r--
>
$ getfacl tree/dir0/dir6/file4
> # file: tree/dir0/dir6/file4
> # owner: root
> # group: root
> user::rw-
> group::r-x #effective:r--
> group:bin:r-x #effective:r--
> mask::r--
> other::r--
>
$ echo i >> tree/dir6/dir2/file2
$ echo i > tree/dir1/f
$ ls -l tree/dir1/f | awk -- '{ print $1 }'
> -rw-r--r--+
in following item, the error message is dependant on distributions.
success on FC3, but not on FC2 and SLES3 etc. comment out by CFS.
# $ su bin
# $ echo i > tree/dir6/dir2/f
# > tree/dir6/dir2/f: No such file or directory
# $ su
$ rm -rf tree
Original scripts, comment out by CFS.
#
# $ su
# $ rm d/f
# $ rmdir d/subdir
# $ mv d tree
# $ ./make-tree
# $ getfacl tree/dir0/dir5/dir7/file4
# > # file: tree/dir0/dir5/dir7/file4
# > # owner: root
# > # group: root
# > user::rw-
# > group::r-x #effective:r--
# > group:bin:r-x #effective:r--
# > mask::r--
# > other::r--
# >
# $ echo i >> tree/dir6/dir2/dir1/file2
# $ echo i > tree/dir1/f
# $ ls -l tree/dir1/f | awk -- '{ print $1 }'
# > -rw-r--r--+
# $ su bin
# $ echo i > tree/dir6/dir2/f
# > tree/dir6/dir2/f: No such file or directory
# $ su
#
# $ rm -rf tree