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: root user::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 123 aa [frame@Server3 tmp]$ exit exit [root@Server3 tmp]# getfacl test # file: test # owner: root # group: root user::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: root user::rw- user:frame:rw-#effective:r-- group::r-- mask::r-- other::r--
取消acl的设置
示例3:
[root@Server3 tmp]# getfacl test # file: test # owner: root # group: root user::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: root user::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: root user::rw- user:frame:rw- group::r-x#effective:r-- mask::rw- other::r-- [root@Server3 tmp]# getfacl hello # file: hello # owner: root # group: root user::rwx group::r-x other::r-x default:user::rwx default:user:frame:rw- default:group::r-x default:mask::rwx default:other::r-x [root@Server3 tmp]#
setfacl常用的选项:
-b:移除所有扩展的ACL的设置。 -k:移除所有默认的ACL的设置。 -R:递归的设置ACL。
示例5:
[root@Server3 tmp]# getfacl hello # file: hello # owner: root # group: root user::rwx group::r-x other::r-x default:user::rwx default:user:frame:rw- default:group::r-x default:mask::rwx default:other::r-x [root@Server3 tmp]# setfacl -k hello/ [root@Server3 tmp]# getfacl hello/ # file: hello/ # owner: root # group: root user::rwx group::r-x other::r-x [root@Server3 tmp]#
[root@Server3 tmp]# setfacl -m u:frame:rw- test [root@Server3 tmp]# getfacl test # file: test # owner: root # group: root user::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: root user::rw- group::r-- other::r-- [root@Server3 tmp]#
转载于:https://blog.51cto.com/hezhang/1437606