前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >setfacl命令基本用法[通俗易懂]

setfacl命令基本用法[通俗易懂]

作者头像
全栈程序员站长
发布2022-07-04 09:22:01
1.9K0
发布2022-07-04 09:22:01
举报
文章被收录于专栏:全栈程序员必看

大家好,又见面了,我是你们的朋友全栈君。

代码语言:javascript
复制
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

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/148842.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档