setfacl:用于设定或取消acl。getfacl:用于查看acl的设置。setfacl:    -m:设置acl。        格式为:setfacl -m u:uid:perm                setfacl -m g:gid:perm    -x:取消acl的设置。        格式为:setfacl -x u:uid filename                setfacl -x g:gid filename

示例1:

[root@Server3 tmp]# getfacl test # file: test# owner: root# group: rootuser::rw-group::r--other::r--[root@Server3 tmp]# setfacl -m u:frame:rw- test [root@Server3 tmp]# su frame[frame@Server3 tmp]$ echo aa > test bash: test: cannot overwrite existing file[frame@Server3 tmp]$ set +C[frame@Server3 tmp]$ echo aa >> test [frame@Server3 tmp]$ cat test 123aa[frame@Server3 tmp]$ exitexit[root@Server3 tmp]# getfacl test # file: test# owner: root# group: rootuser::rw-user:frame:rw-group::r--mask::rw-other::r--[root@Server3 tmp]#

注意:在ACL里面有一个mask,这个mask的作用是所有的扩展的ACL权限是不能超过该mask设定的值得。

设置mask的值:setfacl -m m[ask]:perm filename

示例2:

[root@Server3 tmp]# setfacl -m m:r-- test [root@Server3 tmp]# getfacl test # file: test# owner: root# group: rootuser::rw-user:frame:rw-#effective:r--group::r--mask::r--other::r--

取消acl的设置

示例3:

[root@Server3 tmp]# getfacl test # file: test# owner: root# group: rootuser::rw-user:frame:rw-group::r--mask::rw-other::r--[root@Server3 tmp]# setfacl -x u:frame test [root@Server3 tmp]# getfacl test # file: test# owner: root# group: rootuser::rw-group::r--mask::r--other::r--[root@Server3 tmp]#
针对一个目录设置默认的ACL,该目录下的所有的文件都会继承为指定的用户或组设置的ACL。格式为:setfacl -m d:u:uid:perms filename        setfacl -m d:g:gid:perms filename

示例4:

[root@Server3 tmp]# mkdir hello[root@Server3 tmp]# ls -ld hello/drwxr-xr-x 2 root root 4096 Jul 12 23:48 hello/[root@Server3 tmp]# ls -l hello/total 0[root@Server3 tmp]# setfacl -m d:u:frame:rw- hello/[root@Server3 tmp]# touch hello/a[root@Server3 tmp]# getfacl hello/a # file: hello/a# owner: root# group: rootuser::rw-user:frame:rw-group::r-x#effective:r--mask::rw-other::r--[root@Server3 tmp]# getfacl hello# file: hello# owner: root# group: rootuser::rwxgroup::r-xother::r-xdefault:user::rwxdefault:user:frame:rw-default:group::r-xdefault:mask::rwxdefault:other::r-x[root@Server3 tmp]#

setfacl常用的选项:

-b:移除所有扩展的ACL的设置。-k:移除所有默认的ACL的设置。-R:递归的设置ACL。

示例5:

[root@Server3 tmp]# getfacl hello# file: hello# owner: root# group: rootuser::rwxgroup::r-xother::r-xdefault:user::rwxdefault:user:frame:rw-default:group::r-xdefault:mask::rwxdefault:other::r-x[root@Server3 tmp]# setfacl -k hello/[root@Server3 tmp]# getfacl hello/# file: hello/# owner: root# group: rootuser::rwxgroup::r-xother::r-x[root@Server3 tmp]#
[root@Server3 tmp]# setfacl -m u:frame:rw- test [root@Server3 tmp]# getfacl test # file: test# owner: root# group: rootuser::rw-user:frame:rw-group::r--mask::rw-other::r--[root@Server3 tmp]# setfacl -b test[root@Server3 tmp]# getfacl test # file: test# owner: root# group: rootuser::rw-group::r--other::r--[root@Server3 tmp]#