如果没有getfacl和setfacl命令,则需要安装,安装命令:yum -y install libacl acl

setfacl 命令

命令名称:setfacl
命令所在路径:
执行权限:所有用户
功能描述:给文件或目录设置ACL权限
语法:setfacl [选项] [文件或目录名称]
-m:修改文件或目录的ACL规则权限
-x:删除指定用户或用户组对指定文件的ACL权限
-d:删除指定文件的全部ACL权限
-R:递归

  1. ## 范例
  2. setfacl -m u:gmd:rwx /home/dhj ## 给gmd用户设置对/home/dhj目录的rwx权限
  3. setfacl -m g:dhj:rw /home/libai.txt ## 给dhj用户组设置对/home/libai.txt文件的rw权限

getfacl 命令

命令名称:getfacl
命令所在路径:/usr/bin/getfacl
执行权限:所有用户
功能描述:查看文件或目录的ACL权限
语法:getfacl [文件或目录名称]

  1. ## 先查看study目录的权限,可以看到权限标识字段末尾的“.”变成了“+”,因此说明study配置ACL权限
  2. [root@localhost tmp]# ll study
  3. drwxrwx---+ 2 teacher classOne 39 5 22 17:01 study
  4. [root@localhost tmp]# getfacl study ## 查看study目录的ACL权限
  5. # file: study ## 注释,文件或目录名称
  6. # owner: teacher ## 注释,所有者
  7. # group: classOne ## 所属组
  8. user::rwx ## 所有者拥有的权限
  9. user:gmd:r-x ## gmd用户拥有的权限(通过setfacl命令设置)
  10. group::rwx ## 所属组拥有的权限
  11. group:dhj:rwx ## dhj用户组拥有的权限(通过setfacl命令设置)
  12. mask::rwx ## 该文件的最大有效权限(见下一小节)
  13. other::--- ## 其他人拥有的权限

案例操作

说明上一小节的案例做法。 目录study,用户组classOne,student用户属于该组,临时学生studentTemp不在该组。 要求老师和学生都对该文件具有rwx权限,临时学生rx权限,其他人无权限。

  1. ## 范例,root用户
  2. useradd teacher ## 添加老师teacher用户
  3. useradd student ## 添加学生student用户
  4. useradd studentTemp ## 添加临时学员sudentTemp用户
  5. groupadd classOne ## 添加一班classOne用户组
  6. mkdir stduy ## 创建study目录
  7. chmod 770 study ## 设置study目录的权限为770
  8. chown teacher study ## 修改study目录的所有者为teacher
  9. chgrp classOne study ## 修改study目录的所属组为classOne
  10. usermod -G classOne student ## 将student用户加入classOne用户组
  11. setfacl -m u:studentTemp:rx study ## 给studentTemp用户设置对study目录的rx权限(ACL权限)