Linux ACL权限规划:getfacl,setfacl使用

转载  来源:Linux社区  作者:guodong810

ACL的使用

ACL即Access Control List 主要的目的是提供传统的owner,group,others的read,write,execute权限之外的具体权限设置,ACL可以针对单一用户、单一文件或目录来进行r,w,x的权限控制,对于需要特殊权限的使用状况有一定帮助。如,某一个文件,不让单一的某个用户访问。

ACL使用两个命令来对其进行控制
    getfacl:取得某个文件/目录的ACL设置项目
    setfacl:设置某个文件/目录的ACL设置项目
  
 setfacl 参数
  -m:设置后续acl参数 
  -x:删除后续acl参数  
  -b:删除全部的acl参数
  -k:删除默认的acl参数
  -R:递归设置acl,包括子目录
  -d:设置默认acl

例:创建一文件test,将其权限修改为777,并查看其默认ACL权限配置
    [[email protected] www.linuxidc.com ~]# touch /test
    [[email protected] www.linuxidc.com ~]# chmod 777 /test
    [[email protected] www.linuxidc.com ~]# getfacl /test            //获得文件的ACL权限
    getfacl: Removing leading ‘/‘ from absolute path names
    # file: test                                //文件名
    # owner: root                            //文件所属者
    # group: root                            //文件所属组
    user::rwx                                //文件所属者权限
    group::rwx                              //同组用户权限
    other::rwx                              //其它者权限

[[email protected] www.linuxidc.com ~]#

可以看到其它者的权限也是可读可写可执行,可以自行测试,现在我们修改其ACL策略,使用用户code只有读取的权限
 [[email protected] www.linuxidc.com ~]# setfacl -m u:code:r /test
[[email protected] www.linuxidc.com ~]# ll /test
-rwxrwxrwx+ 1 root root 1 Apr 11 07:25 /test            //可以看到权限的最后多了一个”+”号
[[email protected] www.linuxidc.com ~]# 
现在再次查看一下此文件的ACL属性
[[email protected] www.linuxidc.com ~]# getfacl /test
getfacl: Removing leading ‘/‘ from absolute path names
# file: test
# owner: root
# group: root
user::rwx
user:code:r--                          //可以看到code单独的权限为r--
group::rwx
mask::rwx
other::rwx

[[email protected] www.linuxidc.com ~]# 
注:code的权限并不是只根据ACL配置来决定的,它是由code用户基本权限与配置的ACL权限的“与”运算决定的,即other:rwx 与 code:r--  = code:r--
现在使用code用户,测试是否可写
 在写文件时,会出现-- INSERT -- W10: Warning: Changing a readonly file提示。

除了对单个用户进行设置外,还可以对用户组、有效权限(mask)进行设置如对用户组设置:    g:[用户组]:[rwx] 
注:有效权限(mask) 即用户或组所设置的权限必须要存在于mask的权限设置范围内才会生效
 如上面的/test文件,已经有了可读权限,如果我们把它的有效权限修改为只有写权限,则设置的acl权限不在有效权限之内,则用户code就不可能再查看/test文件中的内容了
 [[email protected] www.linuxidc.com ~]# setfacl -m m:w /test              //设置有效权限为只写
可以查看/test acl属性
[[email protected] www.linuxidc.com ~]# getfacl /test
getfacl: Removing leading ‘/‘ from absolute path names
# file: test
# owner: root
# group: root
user::rwx
user:code:r-- #effective:---
group::rwx #effective:-w-
mask::-w-                      //可以看到有效权限已经修改成功
other::rwx

[[email protected] www.linuxidc.com ~]#

使用code用户查看文件内容,首先使用root用户写入一些内容,会使测试更加直观
[[email protected] www.linuxidc.com ~]# echo "this is a test getfacl " >/test
[[email protected] www.linuxidc.com ~]$ vim /test 
 "/test" [Permission Denied]                    //可以在最下面看到不允许访问的提示,并且看不到任何内容

取消acl权限
[[email protected] www.linuxidc.com ~]# setfacl -x u:code /test            //取消/test对用户code的权限
    [[email protected] www.linuxidc.com ~]# setfacl -x m /test                //恢复有效权限
    [[email protected] www.linuxidc.com ~]# getfacl /test              
    getfacl: Removing leading ‘/‘ from absolute path names
    # file: test
    # owner: root
    # group: root
    user::rwx
    group::rwx
    other::rwx

[[email protected] www.linuxidc.com ~]# ll /test
    -rwxrwxrwx 1 root root 24 Apr 11 08:01 /test              //已经可以正常使用

时间: 2024-12-25 17:58:53

Linux ACL权限规划:getfacl,setfacl使用的相关文章

ACL权限设置命令setfacl

setfacl setfacl Linux命令--setfacl 命令名 setfacl- 设置文件访问控制列表 setfacl,顾名思义就是设置文件的ACL规则. 而Acl(Access Control List)就是访问控制列表,最初好像是unix里面为了提供更高级的权限管理而搞出来的. 可能是被chmod命令的3个权限控制无法满足,而被迫搞出来的吧! ACL的设置技巧 getfacl:取得某个文件/目录的ACL设置项目 setfacl:设置某个目录/文件的ACL规定 [[email pro

Linux ACL权限

01. 查看分区ACKL是否支持 =>  dumpe2fs -h /dev/sda3 dumpe2fs命令是查询指定分区详细文件系统信息的命令 -h:近显示超级块中信息,而不显示磁盘块组的详细信息 df  -h:查看当前系统分区 02.临时开启分区ACL权限  =>  mount  -o remount,acl/ 03.永久开启分区ACL权限  =>  vim  /etc/fstab UUID=c59976fa-8607-46f2-9cfb-b065731a834c / ext4 def

linux ACL权限的使用

一.ACL使用介绍 ACL即Access Control List 主要的目的是提供传统的owner,group,others的read,write,execute权限之外的具体权限设置,ACL可以针对单一用户.单一文件或目录来进行r,w,x的权限控制,对于需要特殊权限的使用状况有一定帮助.如,某一个文件,不让单一的某个用户访问. 二.getfacl.setfacl两个命令的介绍和常用选项 1.ACL使用两个命令来对其进行控制 getfacl:取得某个文件/目录的ACL设置项目 setfacl:

Linux文件目录权限浅谈

1.基本权限三种(1)r (read) 读 针对目录,有读(r)权限就代表能对此目录有列表功能,就是可以执行ls命令进行查看,另外还有cp的功能.针对文件,有读(r)权限就代表能对此文件有阅读功能,可以通过cat等命令查看文件内容. (2)w (write) 写 针对目录,有写(w)权限就代表着在此目录下创建文件和目录,可以通过touch,mkdir等命令创建文件和目录,另外还可以删除此目录下的文件.针对文件,有写(w)权限就代表着对此文件可以写入新的内容和修改文件内容. (3)x (execu

Linux中权限管理之ACL权限

1.简介: a.作用: 是为了防止权限不够用的情况,一般的权限有所有者.所属组.其他人这三种,当这三种满足不了我们的需求的时候就可以使用ACL权限 b.故事背景: 一个老师,给一个班的学员上课,他在linux的根目录下面建立了一个文件夹,只允许本班级的学员对该目录进行读写执行操作,其他人都不行,这时该目录的权限一般是770(一般我们设置权限都是所有者的权限大于所属组的权限,所属组的权限大于其他人的权限,依次往下),此时有个同学想试听我们的课程,他们只有读和执行的权限,没有写的权限,那么此时该怎么

[转]Linux之ACL权限

转自:http://www.2cto.com/os/201110/108736.html 引言 前面的内容中,我们讲到传统的权限仅有三种身份(owner,group,others)搭配三种权限(r,w,x)以及三种特殊的权限(SUID,SGID,SBIT),随着应用的发展,这些权限组合已不能适应现在复杂的文件系统权限控制要求. 例如,目录data的权限为:drwxr-x—,所有者与所属组均为root,在不改变所有者和所属组的前提下,要求用户yufei对该目录有完全访问权限(rwx),但又不能让其

Linux中ACL权限列表

1.ACL权限列表是什么? 为什么要使用ACL列表? 传统的权限仅有三种身份(owner,group,other)搭配三种权限(r,w,x),并没有办法单纯的针对某一个使用者或某一个群组来设定的权限需求,此时就是要使用ACL(文件访问控制列表,Acess Control List)这个机制.注意:因此目前ACL几乎已经默认加入在所有常见的Linux文件系统的挂载参数中(ext2/ext3/ext4/xfs等等),但rhtl6.0以及之前的版本默认不支持acl的功能.2有关facl的命令 查看权限

linux中ACL权限

1.ACL权限简介与开启 一.ACL权限是为了解决所有者/所属组/其他人三种身份不足的问题 二.查看分区ACL权限是否开启 dumpe2fs命令是查询指定分区详细文件系统信息的命令 dumpe2fs -h /dev/sda3 -h 仅显示超级块中信息,而不显示磁盘块组的详细信息 [[email protected] ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/vda1 40G 14G 25G 36% / devtmpfs 9

Linux中ACL权限管理

用户的特殊权限 我们在之前的课程中已经讲过了基本权限.所谓的基本权限指得是,用户对文件拥有所有者所属组和其他人每个身份都有三个权限分别是读.写.执行,今天我们将介绍特殊权限ACL权限. 所谓了ACL权限指的针对一个目录或文件指定一个用户,为这个用户分配指定的权限. 这个ACL权限一般用在需要指定的用户拥有一定的权限的时候才会使用,就相当于windows的文件夹或文件的权限一样的,需要哪个用户有哪些权限就分配就可以了. 举一个例子 图1 上图为一个班级的共享目录,老师属于这个目录的所属主,拥有rw