Linux下的访问控制列表

  • acl是基于文件系统的,所以支不支持acl在于使用什么文件系统。
    FAT32文件系统不支持权限,也不区分大小写

  • 如果一个分区不是安装系统时分的分区,是一个新的分区的话,默认是不支持acl

CentOS7 之前版本,默认手工创建的ext4文件系统无ACL功能,需手动增加

tune2fs –o acl /dev/sdb1
mount –o acl /dev/sdb1 /mnt/test
  • CentOS7 默认创建的xfs和ext4文件系统具有ACL功能

ACL生效的顺序

  • 顺序:所有者------->自定义用户------->自定义组------->其他人
[root@centos7 aubin]# getfacl file 
# file: file
# owner: root
# group: root
user::rw-                                    #所有者
user:aubin:-w-                               #自定义用户
group::r--                                   #冒号中间为空,指的是所属组
group:aubin:---                              #自定义组
mask::rw-
other::r--
  • 权限的最后一位变成 + 这里设置了acl
[root@centos7 app]# ls -al
-rw-r--r--+  1 root root    8 Jul 25 09:54 file
  • ACL写权限
  • acl只给用户写权限,不给读权限。那么用户无法查看文件内容。
    用户可以追加,但是直接编辑会覆盖
[root@centos7 app]# setfacl -m u:aubin:w file 

acl的设置与查看

  • acl的设置与删除
#设置用户的acl权限
[root@centos7 aubin]# setfacl -m u:aubin:rw fstab 
#设置组的acl权限
[root@centos7 aubin]# setfacl -m g:root:rx fstab
[root@centos7 aubin]# getfacl fstab 
# file: fstab
# owner: aubin
# group: aubin
user::---
user:aubin:rw-
group::rw-
group:root:r-x
mask::rwx
other::---
#
#删除指定的acl权限
[root@centos7 aubin]# setfacl -x g:root fstab 

acl的递归

  • acl的复制与清除
#复制文件的acl权限
[root@centos7 aubin]# getfacl fstab | setfacl --set-file=- file 
#清除acl的默认
[root@centos7 aubin]# setfacl -k fstab 
#删除所有的acl权限
[root@centos7 aubin]# setfacl -b fstab

acl的备份与恢复

主要的文件操作命令cp和mv都支持ACL,只是cp命令需要加上-p 参数。但是tar等常见的备份工具是不会保留目录和文件的ACL信息

#将acl信息重定向到acl.bak
[root@centos7 aubin]# getfacl -R fstab > ./acl.bak         
[root@centos7 aubin]# cat acl.bak 
# file: fstab
# owner: aubin
# group: aubin
user::---
user:aubin:rw-
group::rw-
mask::rw-
other::---
#清除文件或文件夹的acl规则
[root@centos7 aubin]# setfacl -R -b fstab 
#恢复
[root@centos7 aubin]# setfacl -R --set-file=acl.bak /app/aubin/fstab 

你可能感兴趣的:(Linux下的访问控制列表)