FACL

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]#


你可能感兴趣的:(setfacl,getfacl,facl)