如果没有getfacl和setfacl命令,则需要安装,安装命令:
yum -y install libacl acl
setfacl 命令
命令名称:setfacl
命令所在路径:
执行权限:所有用户
功能描述:给文件或目录设置ACL权限
语法:setfacl [选项] [文件或目录名称]
-m:修改文件或目录的ACL规则权限
-x:删除指定用户或用户组对指定文件的ACL权限
-d:删除指定文件的全部ACL权限
-R:递归
## 范例
setfacl -m u:gmd:rwx /home/dhj ## 给gmd用户设置对/home/dhj目录的rwx权限
setfacl -m g:dhj:rw /home/libai.txt ## 给dhj用户组设置对/home/libai.txt文件的rw权限
getfacl 命令
命令名称:getfacl
命令所在路径:/usr/bin/getfacl
执行权限:所有用户
功能描述:查看文件或目录的ACL权限
语法:getfacl [文件或目录名称]
## 先查看study目录的权限,可以看到权限标识字段末尾的“.”变成了“+”,因此说明study配置ACL权限
[root@localhost tmp]# ll study
drwxrwx---+ 2 teacher classOne 39 5月 22 17:01 study
[root@localhost tmp]# getfacl study ## 查看study目录的ACL权限
# file: study ## 注释,文件或目录名称
# owner: teacher ## 注释,所有者
# group: classOne ## 所属组
user::rwx ## 所有者拥有的权限
user:gmd:r-x ## gmd用户拥有的权限(通过setfacl命令设置)
group::rwx ## 所属组拥有的权限
group:dhj:rwx ## dhj用户组拥有的权限(通过setfacl命令设置)
mask::rwx ## 该文件的最大有效权限(见下一小节)
other::--- ## 其他人拥有的权限
案例操作
说明上一小节的案例做法。 目录study,用户组classOne,student用户属于该组,临时学生studentTemp不在该组。 要求老师和学生都对该文件具有rwx权限,临时学生rx权限,其他人无权限。
## 范例,root用户
useradd teacher ## 添加老师teacher用户
useradd student ## 添加学生student用户
useradd studentTemp ## 添加临时学员sudentTemp用户
groupadd classOne ## 添加一班classOne用户组
mkdir stduy ## 创建study目录
chmod 770 study ## 设置study目录的权限为770
chown teacher study ## 修改study目录的所有者为teacher
chgrp classOne study ## 修改study目录的所属组为classOne
usermod -G classOne student ## 将student用户加入classOne用户组
setfacl -m u:studentTemp:rx study ## 给studentTemp用户设置对study目录的rx权限(ACL权限)