Linux中ACL(访问控制列表)权限设置

1、ACL的功能是应对复杂用户环境的权限问题。

系统是否支持ACL是与文件系统有关的,在CentOS7之前的系统版本中用户自己手动创建的分区默认是不支持ACL的,而在装系统的时候已存在的分区是支持的。

第二章课扩展作业ACL权限

setfacl: 设置文件或目录的ACL设置信息
命令:setfacl [-bkndRLP] { -m|-M|-x|-X ... } file ...
参数:

-m, --modify=acl:修改文件或目录的扩展ACL设置信息
-x, --remove=acl:从文件或目录删除一个扩展的ACL设置信息
-b, --remove-all:删除所有的扩展的ACL设置信息
-k, --remove-default:删除缺省的acl设置信息
-n, --no-mask:不要重新计算有效权限。setfacl默认会重新计算ACL mask,除非mask被明确的制定
-d, --default:设置默认的ACL设置信息(只对目录有效)
-R, --recursive:操作递归到所有子目录和 文件

1、设置用户权限:
setfacl -m u:用户名:权限 文件

2、设置组权限:
setfacl -m g:组名称:权限 文件 

3、设置最大有效权限:
setfacl -m m:权限 文件
说明:
acl权限中有个"mask"的选项,它就是ACL权限的最大权限,现在是rwx,当你设置某个用户或组的ACL权限时,要跟mask的权限“相与”之后产生的权限才是该用户的最终权限,也就是加入mask的最大权限是rx,但是你给st用户设置的是rwx权限,此时st用户它的权限只有rx的权限,因为与最大权限“相与”得出的结果就是rx

4.删除权限
删除用户权限:
setfacl -x u:用户名 文件名
删除组权限:
setfacl -x g:组名称 文件名
删除整个权限:
setfacl -b 文件名

5.设置默认权限和递归权限
递归权限:
setfacl -m u:用户名:权限 -R 文件
说明:
递归只对该目录下面现有的子文件或目录有用,对于该目录下面新添加的子文件或目录没用
默认权限:
setfacl -m d:u:用户名:权限 文件
说明:
默认权限只对该目录下面新建的文件或目录有效,对已经存在的子文件无效

试验:
准备环境:
  [[email protected] temp]# useradd student1
  [[email protected] temp]# useradd student2
  [[email protected] temp]# useradd visitor1
  [[email protected] temp]# passwd student1
  [[email protected] temp]# passwd student2
  [[email protected] temp]# passwd visitor1
  [[email protected] temp]# groupadd student_group
  [[email protected] temp]# groupadd other_student
  [[email protected] temp]# mkdir project
  [[email protected] temp]# chown root:student_group project/
  [[email protected] temp]# chmod 770 project/
  [[email protected] temp]# gpasswd -a student1 student_group
  [[email protected] temp]# gpasswd -a student2 student_group

  student1有权限:
  [[email protected] ~]$ cd /xiaol/temp/project/
  [[email protected] project]$ touch a.txt

  visitor1没有权限
  [[email protected] ~]$ cd /xiaol/temp/project/
  -bash: cd: /xiaol/temp/project/: 权限不够


给visitor1设置权限:
  [[email protected] temp]# setfacl -m u:visitor1:rx project/

  查看权限:
  [[email protected] temp]# getfacl project/
  # file: project/  
  # owner: root
  # group: student_group
  user::rwx
  user:visitor1:r-x
  group::rwx
  mask::rwx
  other::---

  visitor1有权限了
  [[email protected] ~]$ cd /xiaol/temp/project/
  [[email protected] project]$ 

给other_student组设置权限:
  [[email protected] temp]# setfacl -m g:other_student:rx project/

  查看权限:
  [[email protected] temp]# getfacl project/
  # file: project/
  # owner: root
  # group: student_group
  user::rwx
  user:visitor1:r-x
  group::rwx
  group:other_student:r-x
  mask::rwx
  other::---

设置最大权限:
  [[email protected] temp]# setfacl -m m:rx project/

  查看权限
  [[email protected] temp]# getfacl project/
  # file: project/
  # owner: root
  # group: student_group
  user::rwx
  user:visitor1:r-x
  group::rwx #effective:r-x
  group:other_student:r-x
  mask::r-x
  other::---

删除权限:
  删除visitor1权限
  [[email protected] temp]# setfacl -x u:visitor1 project/

  删除other_student权限
  [[email protected] temp]# setfacl -x g:other_student project/

  查看权限:
  [[email protected] temp]# getfacl project/
  # file: project/
  # owner: root
  # group: student_group
  user::rwx
  group::rwx
  mask::rwx
  other::---

设置递归权限
  [[email protected] temp]# setfacl -m u:visitor1:rx -R project/

  进入project查看内部文件权限
  [[email protected] project]$ getfacl a.txt 
  # file: a.txt
  # owner: student1
  # group: student1
  user::rw-
  user:visitor1:r-x
  group::rw-
  mask::rwx
  other::r--

  新建文件并查看权限
  [[email protected] project]# touch b.txt
  [[email protected] project]# getfacl b.txt 
  # file: b.txt
  # owner: root
  # group: root
  user::rw-
  group::r--
  other::r--

设置默认权限
  [[email protected] temp]# setfacl -m d:u:visitor1:rx project/

  新建文件并查看权限
  [[email protected] project]# touch c.txt
  [[email protected] project]# getfacl c.txt 
  # file: c.txt
  # owner: root
  # group: root
  user::rw-
  user:visitor1:r-x #effective:r--
  group::rwx #effective:rw-
  mask::rw-
  other::---

相关文章:

  • 2021-12-17
  • 2022-01-08
  • 2021-10-03
  • 2021-05-22
  • 2021-12-10
  • 2022-12-23
猜你喜欢
  • 2021-12-12
  • 2021-08-16
  • 2021-10-18
  • 2021-09-24
相关资源
相似解决方案