setfacl命令基本用法

setfacl命令可以用来细分linux下的文件权限。
chmod命令可以把文件权限分为u,g,o三个组,而setfacl可以对每一个文件或目录设置更精确的文件权限。
换句话说,setfacl可以更精确的控制权限的分配。
比如:让某一个用户对某一个文件具有某种权限。

这种独立于传统的u,g,o的rwx权限之外的具体权限设置叫ACL(Access Control List)
ACL可以针对单一用户、单一文件或目录来进行r,w,x的权限控制,对于需要特殊权限的使用状况有一定帮助。
如,某一个文件,不让单一的某个用户访问。


 setfacl 参数
  -m:设置后续acl参数 
  -x:删除后续acl参数  
  -b:删除全部的acl参数
  -k:删除默认的acl参数
  -R:递归设置acl,包括子目录
  -d:设置默认acl

 
 
setfacl命令可以识别以下的规则格式:[d[efault]:] [u[ser]:]uid [:perms] 指定用户的权限,文件所有者的权限(如果uid没有指定)。[d[efault]:] g[roup]:gid [:perms] 指定群组的权限,文件所有群组的权限(如果gid未指定)[d[efault]:] m[ask][:] [:perms] 有效权限掩码[d[efault]:] o[ther] [:perms] 其他的权限 来自: http://man.linuxde.net/setfacl
例子:在/mnt 下建立一个test文件   将权限改为777  并查看其ACL设置 [root@yang ~]# cd /mnt [root@yang mnt]# touch test [root@yang mnt]# chmod 777 test [root@yang mnt]# getfacl test # file: test                                   //文件名 # owner: root                            //文件所属者 # group: root                            //文件所属组 user::rwx                                    //文件所属者权限 group::rwx                                //同组用户权限 other::rwx                                 /其它者权限 现在我们让kiosk用户只有读取的权限 [root@yang mnt]# setfacl -m u:kiosk:r test [root@yang mnt]# ll test -rwxrwxrwx+ 1 root root 0 Feb  5 18:22 test        //权限的最后多了一个“+” [root@yang mnt]# getfacl test # file: test # owner: root # group: root user::rwx user:kiosk:r--                                    //kiosk的权限为r group::rwx mask::rwx other::rwx 除了对某个文件的单个用户进行权限设置外,还可以对某个组进行同样的设置:g:[用户组]:[rwx] 还能对有效权限(mask)进行设置:有效权限(mask) 即用户或组所设置的权限必须要存在于mask的权限设置范围内才会生效               如上面的test文件,已经有了可读权限,如果我们把它的有效权限修改为只有写权限,则设置的ACL权限不在有效权限之内,               则用户kiosk就不可能再查看test文件中的内容了 操作:  setfacl  -m  m:w    /mnt/test 最后取消ACL权限: setfacl  -x u:kiosk  /mnt/test 恢复有效权限: setfacl -x m /mnt/test
setfacl命令是用来在命令行里设置ACL(访问控制列表)。在命令行里,一系列的命令跟随以一系列的文件名。 来自: http://man.linuxde.net/setfacl
setfacl命令是用来在命令行里设置ACL(访问控制列表)。在命令行里,一系列的命令跟随以一系列的文件名。 来自: http://man.linuxde.net/setfacl
setfacl命令是用来在命令行里设置ACL(访问控制列表)。在命令行里,一系列的命令跟随以一系列的文件名 来自: http://man.linuxde.net/setfacl
setfacl命令是用来在命令行里设置ACL(访问控制列表)。在命令行里,一系列的命令跟随以一系列的文件名 来自: http://man.linuxde.net/setfacl
setfacl命令是用来在命令行里设置ACL(访问控制列表)。在命令行里,一系列的命令跟随以一系列的文件名 来自: http://man.linuxde.net/setfacl
setfacl命令是用来在命令行里设置ACL(访问控制列表)。在命令行里,一系列的命令跟随以一系列的文件名 来自: http://man.linuxde.net/setfacl
setfacl命令是用来在命令行里设置ACL(访问控制列表)。在命令行里,一系列的命令跟随以一系列的文件名。 来自: http://man.linuxde.net/setfacl
setfacl命令是用来在命令行里设置ACL(访问控制列表)。在命令行里,一系列的命令跟随以一系列的文件名。 来自: http://man.linuxde.net/setfacl
setfacl命令是用来在命令行里设置ACL(访问控制列表)。在命令行里,一系列的命令跟随以一系列的文件名。 来自: http://man.linuxde.net/setfacl
setfacl命令是用来在命令行里设置ACL(访问控制列表)。在命令行里,一系列的命令跟随以一系列的文件名。 来自: http://man.linuxde.net/setfacl
setfacl命令是用来在命令行里设置ACL(访问控制列表)。在命令行里,一系列的命令跟随以一系列的文件名。 来自: http://man.linuxde.net/setfac
  • 38
    点赞
  • 112
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
setfacl命令Linux系统中用于设置文件或目录ACL(Access Control List)的工具。ACL是一种可以在文件或目录上设置的权限控制方式,可以更加精细地控制文件或目录的权限。 setfacl命令的语法如下: ``` setfacl [-bkndRLP] [-m|-M] [user[:group]]:perms file/dir ``` 其中,常用的选项和参数说明如下: - -m:添加ACL。 - -M:替换文件或目录的ACL。 - -b:删除文件或目录的ACL。 - -k:设置默认ACL,该ACL将应用于新创建的文件或目录。 - -n:不解析用户名和组名。 - -d:设置默认ACL。 - -R:递归处理子目录和文件。 - -L:递归处理符号链接。 - -P:不递归处理符号链接。 - user:用户名。 - group:组名。 - perms:权限。 例如,要为文件test.txt设置一个ACL,允许用户tom读取、写入和执行该文件,可以使用以下命令: ``` setfacl -m u:tom:rwx test.txt ``` 如果要删除该ACL,可以使用以下命令: ``` setfacl -b test.txt ``` 如果要为目录/var/www/html设置一个ACL,允许用户tom对该目录及其子目录和文件有读取、写入和执行权限,并且设置默认ACL,可以使用以下命令: ``` setfacl -R -m d:u:tom:rwx,u:tom:rwx /var/www/html ``` 需要注意的是,使用ACL设置文件或目录的权限时,ACL权限会与文件或目录的基本权限进行合并,较高的权限将覆盖较低的权限。因此,在使用setfacl命令时,需要谨慎设置ACL权限,以确保文件或目录的安全。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值