美文网首页
3-17 Linux中用户权限 --- acl

3-17 Linux中用户权限 --- acl

作者: 捌千里路雲和月 | 来源:发表于2021-05-25 19:00 被阅读0次

文件权限 --- setfacl 和 getfacl。

acl:针对单一使用者,单一文件和目录来进行rwx的权限修改。

setfacl:配置单一使用者,对单一文件和目录的权限。

-m 配置 acl 参数。

-x 移除单项的 acl。

-b 移除所有 acl 的配置。

-R 递归配置 acl 参数。


setfacl 用法:

setfacl -m u:用户名:rwx 文件/目录。                                                                                           针对特定的用户设置文件或者目录的 rwx 权限。 

setfacl -m g:组名:rwx 文件或者目录。                                                                                            针对特定的组设置文件或者目录的 rwx 权限。 

setfacl -m m:rwx 修改 mask 值。                                                                                                  mask 定义权限的上限。                                                                                                                1、权限的合集(特定用户,特定组,所属组的并集)                                                                  2、如果 mask 中没有的权限,即使 setfacl 设定了,也不会有 setfal 设置的权限。

getfact 文件名:查看文件或目录的权限相关信息。 


getfact 文件名:查看文件或目录的权限相关信息。 

1、红色下划线:创建 test01.txt 文件。

2、黄色下划线:getfacl test01.txt,查看文件或目录的权限相关信息。 

3、# file: test01.txt:文件名。

    # owner: root:拥有者。

    # group: root:所属组。

    user::rw-:拥有者权限。

    group::r--:所属组权限。

    other::r--:其他人权限:


-m 配置 acl 参数:

1、setfacl -m u:用户名:rwx 文件名 / 目录。设置特定用户 rwx 权限。

2、红色下划线:setfacl -m u:user1:rwx test01.txt,单独设置 user1 用户对 test01.txt 文件拥有 rwx 权限。

3、黄色下划线:getfacl test01.txt。此时,多了一项特定用户的权限。user:user1:rwx 表明 user1 特定用户对 test01.txt 这个文件有 rwx的权限。

4、通过 ll 查看文件详情。可以观察到文件权限最后有一个 + 号。这个标识是管理员(root)对 test01.txt 这个文件运用了 acl 。


1、setfacl -m g:组名:rwx 文件或者目录。设置特定组 rwx 权限。

2、红色下划线:setfacl -m g:user1:rwx test01.txt,单独设置 user1 组对 test01.txt 文件拥有 rwx 权限。

3、黄色下划线:getfacl test01.txt。group:user1:rwx 表明 user1 特定组内成员对 test01.txt 这个文件有 rwx的权限。


-x 移除单项的 acl:

1、setfacl -x u:用户名 文件名。(移除指定用户对文件或目录的 acl)

2、红色下划线:通过 ll 查看 test01.txt 文件,权限后面有 + 号。知道这是设置了 acl 的文件。

3、黄色下划线:getfacl test01.txt 查看到 test01.txt 这个文件拥有特定用户(user1)和特定组(user1)。

4、蓝色下划线:setfacl -x u:user1 test01.txt。移除 test01.txt 文件特定用户 user1 的权限。

5、绿色下划线:getfacl test01.txt,再查看 test01.txt 的时候,特定用户 user1 已经被移除。只剩下特定组的权限。由于还有特定组的存在,所以 ll 查看 test01.txt 的时候,权限最后还是有一个 + 号存在。表明这个文件还有管理员(root)设置的 acl。

移除特定组也是一样。

1、红色下划线:test01.txt 现在有特定用户和特定组。

2、黄色下划线:setfacl -x g:user1 test01.txt。移除特定组,剩下一个特定用户的权限。


-b 移除所有 acl 的配置:

1、setfacl -b 文件名 / 目录名。(移除文件 / 目录的 acl)

2、红色下划线:管理者(root)设置了 acl 的 test01.txt 文件通过 ll 查看详细信息,权限最后会有 + 号。

3、黄色下划线:getfacl test01.txt,查看 test01.txt 文件有哪些特定用户 和 特定组。例中有特定用户 user1 和 特定组 user1。

4、蓝色下划线:setfacl -b test01.txt 移除 test01.txt 的所有特定权限。并通过 getfacl test01.txt 查看移除成功。

5、绿色下划线:移除了acl 特定权限的文件通过 ll 查看,文件权限会恢复原样,没有 + 号。


mask 权限:

1、绿色下划线:mask 定义权限的上限 rwx。     

2、mask权限的定义,它是(特定用户,特定组,所属组)的并集。也就是红色下划线特定用户 user、黄色下划线所属组 group 和 蓝色下划线特定组 group 所拥有的权限并集提取出来组成 mask 权限。如图例 红色下划线特定用户 user1 的权限是 rwx、黄色下划线所属组权限 r-- 和蓝色下划线特定组权限 rwx。它们三者的权限并集是 rwx。所以 mask 权限是 rwx。


如果 mask 中没有的权限,即使 setfacl 设定了,实际权限也不会有 setfacl 设置的权限。

1、红色下划线:test01.txt 的 mask 权限是 rwx。

2、黄色下划线:setfacl -m m:r test01.txt 设置 test01.txt 的 mask 值为 r--。

3、蓝色下划线:再次 getfacl test01.txt 查看,虽然特定用户和特定组通过 setfacl 设置了权限为 rwx。实际上它们的有效权限是 r--。


-R 递归配置 acl 参数:

1、首先创建测试目录和文件。创建路径如下。

2、setfacl -R -m u:user1:rwx /tmp/test/:针对 user1 用户递归创建 test 目录的 rwx 权限。加上 -R 选项后,user1 用户对于test 目录下的子目录,文件都是 rwx 的权限。

红色下划线:针对 user1 用户递归创建 test 目录的 rwx 权限。

黄色下划线:getfacl test/ 查看 test 目录的特定权限。从 file 可以看出路径是 test/,特定用户是 user1。

蓝色下划线:getfacl test / test01 查看 test01 目录的特定权限。从 file 可以看出路径是 test/test01/,特定用户是 user1。

绿色下划线:getfacl test / test01 / test01.txt 查看 test01.txt 文件的特定权限。从 file 可以看出路径是 test / test01 / test01.txt,特定用户是 user1。

另外,可以通过 ll 查看每层每级的详细信息。可以看出 test 目录下的每层每级的目录 和 文件权限最后都会有 + 号。setfacl -R -m 可以递归创建特定权限。


-x 移除单项最底层的 acl 对递归层级的关系:

1、红色下划线:setfacl -x u:user1 test/test01/test01.txt:移除最底层 text01.txt 文件的特定权限。

2、黄色下划线:test01.txt 文件的特定权限被移除。

3、蓝色下划线:test01.txt 文件的上一层目录 test01 仍然有特定权限。


-x 移除单项中间层的 acl 对递归层级的关系:

1、通过 getfacl 查看 test 目录以及递归的子目录和文件,它们都存在特定用户 user1 的 rwx 权限。

2、setfacl 移除中间层的 test01 目录的特定用户 user1。

3、通过 getfacl 查看 test 目录以及递归的子目录和文件,除了执行 setfacl -x 的 test01 目录移除了特定用户 user1之外,它的父母目录 test 目录 和 它的子文件 test.txt 文件仍有特定用户 user1。也就是说,setfacl -x 移除只针对单一文件或目录,不会对上层 或 下层构成影响。


-x 移除单项父级的 acl 对递归层级的关系:

1、同理,shefacl -x 移除了父目录的特殊用户,不影响子目录 / 子文件的特定用户权限。

红色下划线:setfacl -x u:user1 test/ :移除 test 目录的 user1 特定用户。

黄色下划线:test 目录的 user1 特定用户被移除。

蓝色下划线:test 的子目录,test01 的user1 特定用户还在。

绿色下划线:test 的子文件,test01.txt 的user1 特定用户还在。

-x 移除只针对当前文件 / 目录起效。不会对存在特定用户的父级 和 存在特定用户递归的目录 / 文件有影响。 


-b 移除所有的 acl 对递归层级的关系:

1、首先,setfacl 添加 test 目录以及递归下的子目录 和 子文件的特定用户 user1。

2、test 目录移除了所有特定用户,所以 test 目录已经没有了特定用户。而,test 目录下的 test01目录 和 test01目录下的 test01.txt 文件仍存在特定用户user1。

setfacl -b 移除所有特定用户也是针对单一目录或文件,它不会影响子目录下的特定用户权限。

相关文章

  • 3-17 Linux中用户权限 --- acl

    文件权限 --- setfacl 和 getfacl。 acl:针对单一使用者,单一文件和目录来进行rwx的权限修...

  • Linux权限管理--ACL权限

    Linux setfacl 命令帮助: 选项 Linux权限管理--ACL权限 ACL权限不是针对某个文件或某个目...

  • hadoop中使用ACL管理HDFS权限

    hadoop中使用ACL管理HDFS权限,ACL的权限划分是在hadoop2.4中新加的权限控制,类似linux的...

  • 20170724 文件权限

    概要 linux文件权限linux文件特殊权限ACL 访问控制列表 一、linux文件权限 (一)linux文件属...

  • ACL默认权限与递归权限

    默认ACL权限setfacl -m d:u:用户名:权限 目录名递归ACL权限setfacl -m u:用户...

  • CephFS Jewel/Luminous对POSIX ACL的

    Linux ACL简介 用户权限管理始终是 Unix 系统管理中最重要的环节。大家对 Linux/Unix 的 U...

  • CentOS 用户管理

    整理来源:《鸟哥的Linux私房菜第四版》的第十三章 “账号管理与 ACL 权限设定” 用户账号 Linux 如何...

  • ACL权限的查看与设定

    设定acl权限的命令:setfacl 选项 文件名查看acl权限的命令:getfacl 文件名 给用户添加a...

  • (八)权限管理

    第一节 ACL权限的简介与开启 1.ACL权限简介 解决用户身份不足的情况下,文件对用户的权限无法分配的问题 2....

  • Linux常用命令之--ACL(getfacl,setfacl)

    文件访问控制列表(ACL) ACL可以为某个文件单独设置该文件具体的某用户或组的权限,不走三类权限位默认 ACL ...

网友评论

      本文标题:3-17 Linux中用户权限 --- acl

      本文链接:https://www.haomeiwen.com/subject/tunnjltx.html