Linux命令之精确控制文件访问权限setfacl

您所在的位置:网站首页 linux增加读的权限 Linux命令之精确控制文件访问权限setfacl

Linux命令之精确控制文件访问权限setfacl

2024-07-16 13:21| 来源: 网络整理| 查看: 265

概述

setfacl 命令可以更加精确的控制文件权限的分配,比如让某一个用户对某一个文件具有某种权限。setfacl 的全称是 set file access control list,即”设置文件访问控制列表“。

在这里插入图片描述

chmod 命令把文件权限分为所有者(u)、所属组(g)、其他人(o)三个组,而 setfacl 可以对每一个文件或目录设置更为精确的文件权限。如让某个用户对某一个文件具有具体某种权限,这种具体权限设置称之为 ACL(Access Control List),可以针对单一用户、单一文件、单一目录进行读、写、执行的权限控制。

适用于一些特殊情况,如某一个文件,不让单一的某个用户访问。

语法

该命令的语法如下:

setfacl [-bkndRLP] { -m|-M|-x|-X ... } file ...

该命令支持的选项有:

选项说明-m, --modify=acl更改文件的访问控制列表-M, --modify-file=file从文件读取访问控制列表条目更改-x, --remove=acl根据文件中访问控制列表移除条目-X, --remove-file=file从文件读取访问控制列表条目并删除-b, --remove-all删除所有扩展访问控制列表条目-k, --remove-default移除默认访问控制列表–set=acl设定替换当前的文件访问控制列表–set-file=file从文件中读取访问控制列表条目设定–mask重新计算有效权限掩码-n, --no-mask不重新计算有效权限掩码-d, --default应用到默认访问控制列表的操作-R, --recursive递归操作子目录-L, --logical依照系统逻辑,跟随符号链接-P, --physical依照自然逻辑,不跟随符号链接–restore=file恢复访问控制列表,和“getfacl -R”作用相反–test测试模式,并不真正修改访问控制列表属性-v, --version显示版本并退出-h, --help显示本帮助信息

其中 acl 规则如下:

[d[efault]:] [u[ser]:]uid [:perms] 指定用户的权限,文件所有者的权限(如果uid没有指定)。 [d[efault]:] g[roup]:gid [:perms] 指定群组的权限,文件所有群组的权限(如果gid未指定) [d[efault]:] m[ask][:] [:perms] 有效权限掩码 [d[efault]:] o[ther] [:perms] 其他的权限

各字段说明如下:

对于 u、g、m、o 都是固定字。对于 uid 可以是数字表示用户 ID,也可以是用户名。对于 gid 可以是数字表示组 ID,也可以是组名。对于 perms 域是一个代表各种权限的字母的组合:读(r)、写(w)和执行(x),执行只适合目录和一些可执行的文件。pers 域也可设置为八进制格式。 使用 给某个用户添加某个文件的某个权限

如果我们要么要像某个用户添加某个文件的权限,需要使用 -m 选项。命令格式如下:

# 语法 setfacl -m u:用户名或ID:权限 文件名 # 示例,给用户 zhangsan 向 test.txt 文件添加读和执行的权限的 acl 规则,然后 zhangsan 用户对该文件没有写权限不能进行修改 setfacl -m u:zhangsan:rx test.txt

在这里插入图片描述

如果是组或其他用户或 mask,修改的语法也类似,只是把 u: 改成 g: 或 o: 或 m:。如果是多条 ACL 规则,则它们之间通过逗号(,)进行分隔。

取消 ACL 权限

如果要取消在某个文件上的 ACL 权限,需要使用 -x 选项。命令格式如下:

#语法 setfacl -x ACL规则 文件名 # 示例,即取消在文件 test.txt 上关于用户 zhangsan 的 ACL 权限 setfacl -x u:zhangsan test.txt

在这里插入图片描述



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3