访问控制列表(ACL)

访问控制列表(ACL)

ACL:Access Control List 访问控制列表

作用:作用:实现更加灵活的权限管理,打破了三类用户的权限管理

CentOS 7 默认创建的xfs和ext4文件系统具有ACL功能

CentOS 7 之前版本,系统安装时候创建的文件系统有ACL功能,默认手工创建的ext4文件系统无ACL功 能,需手动增加。

ACL 生效 顺序:所有者,自定义用户,自定义组,其 他

ACL基本操作

  • getfacl : 获取文件或目录访问控制列表
    # getfacl file       # 获取文件权限
    # getfacl dir        # 获取目录权限
  • setfacl : 设置文件或目录访问权限列表
添加ACL权限

    setfacl -m u:lpx:000 file      # 禁止lpx 用户对file文件操作

    setfacl -m g:lv:000 file        # 禁止 lv 组对file文件操作

    setfacl -m u:lpx:rw file       # 使lpx 用户对指定file文件有读写权限

    setfacl -m g:lv:rw file      # 使lv组对指定file文件有读写权限

删除ACL权限

    setfacl -x u:lv file         # 删除lv 用户对指定file文件的ACL权限

    setfacl -X g:lv file         # 批量删除lv 组对指定file文件的ACL权限

ACL权限下的mask

facl的mask是高压线,是影响自定义用户和自定义组的权限,有了mask后,会与自定义的用户和组的权限做逻辑与,这之后是自定义用户和组的真实权限。

默认是没有高压线的,默认值一般都是所有自定义用户和组的最高权限累加。

如果设置了,就相当于设定了高压线,高于这个高压线的权限,会降低到高压线之下。

    # setfacl -m u:lpx:rwx file    # 修改file文件的acl权限,添加一个lpx用户权限
    # setfacl -m g:lv:rw- file    # 修改file文件的acl权限,添加一个lv组权限
    # setfacl -m m:r-- file       # 设置了高压线
    # getfacl file4           #查看访问控制列表
        # file: file
        # owner: root
        # group: root
            user::rw-
            user:lpx:rwx            #effective:r--
            group::r--
            group:lv:rw-            #effective:r--
            mask::r--
            other::r--
我们可以看到,设置了高压线后,自定义用户和自定义组的有效值(effective)是不超过mask的r--

ACL权限下的备份和恢复

  • ACL权限的备份和恢复
    # getfacl -R . > acl.txt       # 将当前目录下的所有文件的权限备份到acl.txt 文件中

    # setfacl --restore=acl.txt   # 恢复acl.txt文件中备份的文件权限

猜你喜欢

转载自blog.csdn.net/lv8549510/article/details/80273647