setfacl命令基本用法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了setfacl命令基本用法相关的知识,希望对你有一定的参考价值。

setfacl命令可以用来细分linux下的文件权限。 chmod命令可以把文件权限分为u,g,o三个组,而setfacl可以对每一个文件或目录设置更精确的文件权限。 换句话说,setfacl可以更精确的控制权限的分配。 比如:让某一个用户对某一个文件具有某种权限。 这种独立于传统的u,g,o的rwx权限之外的具体权限设置叫ACL(Access Control List) ACL可以针对单一用户、单一文件或目录来进行r,w,x的权限控制,对于需要特殊权限的使用状况有一定帮助。 如,某一个文件,不让单一的某个用户访问。  setfacl 参数 Usage: setfacl [-bkndRLP] { -m|-M|-x|-X ... } file ...   -m, --modify=acl        modify the current ACL(s) of file(s)   -M, --modify-file=file  read ACL entries to modify from file   -x, --remove=acl        remove entries from the ACL(s) of file(s)   -X, --remove-file=file  read ACL entries to remove from file   -b, --remove-all        remove all extended ACL entries   -k, --remove-default    remove the default ACL       --set=acl           set the ACL of file(s), replacing the current ACL       --set-file=file     read ACL entries to set from file       --mask              do recalculate the effective rights mask   -n, --no-mask           don't recalculate the effective rights mask   -d, --default           operations apply to the default ACL   -R, --recursive         recurse into subdirectories   -L, --logical           logical walk, follow symbolic links   -P, --physical          physical walk, do not follow symbolic links       --restore=file      restore ACLs (inverse of `getfacl -R')       --test              test mode (ACLs are not modified)   -v, --version           print version and exit   -h, --help              this help text 例子:在/test 下建立一个test文件   将权限改为777  并查看其ACL设置 [[email protected] ~]# cd /test/ [[email protected] test]# touch test.txt [[email protected] test]# echo 123  > test.txt  [[email protected] test]# cat test.txt  123 [[email protected] test]# chmod 777 test.txt  [[email protected] test]# ll 总用量 0 -rwxrwxrwx. 1 root root 0 2月   6 20:40 test.txt [[email protected] test]# getfacl test.txt  # file: test.txt                          //文件名 # owner: root                            //文件所属者 # group: root                             //文件所属组 user::rwx                                    //文件所属者权限 group::rwx                                 //同组用户权限 other::rwx                                  /其它者权限 现在我们让handsome用户只有读取的权限 [[email protected] test]# setfacl -m u:handsome:r test.txt  [[email protected] test]# ll 总用量 4 -rwxrwxrwx+ 1 root root 0 2月   6 20:40 test.txt        //权限的最后多了一个“+” [[email protected] test]# getfacl test.txt  # file: test.txt # owner: root # group: root user::rwx user:handsome:r--                                    //handsome的权限为r group::rwx mask::rwx other::rwx 通过handsome用户验证一下: [[email protected] test]# su - handsome  [[email protected] ~]$ cat /test/test.txt  123 [[email protected] ~]$ echo 456 >> /test/test.txt  -bash: /test/test.txt: 权限不够 除了对某个文件的单个用户进行权限设置外,还可以对某个组进行同样的设置:g:[用户组]:[rwx] 还能对有效权限(mask)进行设置:有效权限(mask) 即用户或组所设置的权限必须要存在于mask的权限设置范围内才会生效                最后取消ACL权限: [[email protected] test]# setfacl -x u:handsome test.txt  [[email protected] test]# ll 总用量 8 -rwxrwxrwx+ 1 root root 4 2月   6 20:47 test.txt 删除所有acl [[email protected] test]# setfacl -b test.txt  [[email protected] test]# ll 总用量 4 -rwxrwxrwx. 1 root root 4 2月   6 20:47 test.txt                            //文件权限后面的“+”没了


以上是关于setfacl命令基本用法的主要内容,如果未能解决你的问题,请参考以下文章

Linux命令setfacl命令基本用法(文件权限设置)

Linux setfacl命令详解

setfacl权限访问控制列表用法

20181123基本权限FACL

linux 详解useradd 命令基本用法

iptables命令基本用法