用户身份与文件权限---文件访问控制列表

用户身份与文件权限---文件访问控制列表

一般权限、特殊权限、隐藏权限的一个共性——权限时针对某一类用户设置的。

如果希望对某个指定用户进行单独权限控制,需要用到文件的访问控制列表(ACL)

  • 基于普通文件或目录设置ACL,其实是针对指定用户或用户组设置文件或目录的操作权限
  • 针对某个目录设置了ACL,则目录中文件会继承其ACL
  • 若针对文件设置了ACL,则文件不再继承其所在目录的ACL

1,setfacl 命令

setfacl命令用于管理文件的ACL规则,格式为 setfacl [参数] 文件名称

  • 文件的ACL提供的是在所有者、所属组、其他人的 rwx 之外的特殊权限控制
  • 使用setfacl命令可以针对单一用户或用户组、单一文件或目录来进行 rwx 的权限控制
  • 针对目录文件需要用 -R 递归参数
  • 针对普通文件使用 -m 参数
  • 删除某个文件的ACL,使用 -b 参数

示例:为普通用户增加 /root 的 rwx 权限

[root@study doc]# su - chen
Last login: Wed Dec 19 17:44:47 CST 2018 on pts/0
[chen@study ~]$ cd /root
-bash: cd: /root: Permission denied
[chen@study ~]$ exit
logout
[root@study doc]# setfacl -Rm u:chen:rwx /root
[root@study doc]# su - chen
Last login: Thu Dec 20 15:04:42 CST 2018 on pts/0
[chen@study ~]$ cd /root
[chen@study root]$ ls
backup.taar.gz  linux  mysql80-community-release-el7-1.noarch.rpm
[chen@study root]$ echo "for test" > test
[chen@study root]$ exit
logout
[root@study doc]# ls -ld /root/
dr-xrwx---+ 5 root root 4096 Dec 20 15:06 /root/

注意:文件的权限最后一个点(.)变成了加号(+),这意味该文件已经设置了ACL

2,getfacl 命令

getfacl 用于显示文件上设置的ACL信息,格式为 getfacl 文件名称

示例
显示 root 用户家目录的所有 ACL 信息

[root@study doc]# getfacl /root
getfacl: Removing leading '/' from absolute path names
# file: root
# owner: root
# group: root
user::r-x
user:chen:rwx
group::r-x
mask::rwx
other::---

删除 /root 的ACL

[root@study doc]# setfacl -Rb /root
[root@study doc]# getfacl /root
getfacl: Removing leading '/' from absolute path names
# file: root
# owner: root
# group: root
user::r-x
group::r-x
other::---

[root@study doc]# ls -ld /root/
dr-xr-x---. 5 root root 4096 Dec 20 15:06 /root/

文件权限的最后一个加号(+)变成了一个点(.)

你可能感兴趣的:(用户身份与文件权限---文件访问控制列表)