文件管理 · 2022年02月20日 0

setfacl命令 – 设置文件ACL规则

setfacl的英文全称是“ set file access control list ”,即“设置文件访问控制列表”。改命令可以更精确的控制权限的分配,比如让某一个用户对某一个文件具有某种权限。 ACL指文件的所有者、所属组、其他人的读/写/执行之外的特殊的权限, 对于需要特殊权限的使用状况有一定帮助。 如,某一个文件,不让单一的某个用户访问。 **语法格式:** setfacl [参数] [文件] **常用参数:** | -m | --modify-acl 更改文件的访问控制列表 | | ---- | ----------------------------------------------------- | | -M | --modify-file=file 从文件读取访问控制列表条目更改 | | -x | --remove=acl 根据文件中访问控制列表移除条目 | | -X | --remove-file=file 从文件读取访问控制列表条目并删除 | | -b | --remove-all 删除所有扩展访问控制列表条目 | | -k | --remove-default 移除默认访问控制列表 | | -d | --default 应用到默认访问控制列表的操作 | | -P | --physical 依照自然逻辑,不跟随符号链接 | | -v | --version 显示版本并退出 | | -R | --recursive 递归操作子目录 | **参考实例** 修改一个文件的acl权限,添加一个用户权限: ``` [root@anycode ~]# getfacl test file: test owner: root group: root user::rwx user:zwx:rw- group::r-x mask::rwx other::r-x [root@anycode ~]# setfacl -Rm u:zwx:rw- test [root@anycode ~]# getfacl test file: test owner: root group: root user::rwx user:zwx:rw- group::r-x mask::rwx other::r-x ``` 清除一个目录的ACL权限: ``` [root@anycode ~]# setfacl -x u:zwx test [root@anycode ~]# getfacl test file: test owner: root group: root user::rwx group::r-x other::r-x ```