当前位置:首页>Linux>每日一问|Linux除RWX权限外,setfacl如何设置ACL权限

每日一问|Linux除RWX权限外,setfacl如何设置ACL权限

  • 2026-10-11 06:23:50
每日一问|Linux除RWX权限外,setfacl如何设置ACL权限

哈喽~ 各位运维、服务器小伙伴们,作为一个测试环境管理员, 除了要了解ACL权限在文件/目录中带+后,是什么权限,更要学会如何设置ACL权限。

在这里把自己的学习内容写出来,记录一下,跟大家也一同学习下, 加深理解~!

一、设置ACL权限的命令-setfacl

setfacl:给文件/目录配置ACL访问控制列表,弥补传统 Linux rwx 权限的短板。

二、setfacl详解

完整命令语法:

setfacl [参数] <acl规则> 文件/目录

1. 参数说明:
参数
全称
功能说明
-m
--modify
新增/修改 ACL 规则,不会清空原有 ACL
-x
--remove
删除单条指定 ACL 条目(用户 / 组)
-b
--remove-all
删除所有扩展 ACL,仅保留原生 ugo 权限
-R
--recursive
递归处理目录下所有已有文件 / 子目录(仅存量,不影响未来新建)
-d
--default
操作默认 ACL,仅对目录生效;新建文件 / 文件夹自动继承该 ACL
--set
—
覆盖全部   ACL,直接替换原有所有规则
2. acl规则:

4 种标准条目规则: 

    • u:用户名:权限 → 指定用户权限

    • g:组名:权限 → 指定用户组权限

    • m:权限 → 手动设置 mask 掩码

    • o:权限 → 其他人权限(等同于传统 other)

    • d:u:xxx:rwx → 默认 ACL(搭配 -d 参数)

    三、实操命令(复制粘贴就能用,避免输错)

    1. 操作前提,查看test和zhangsan用户目录,以及文件权限

    [root@localhost home]# ls -trltotal 8drwx------.  4 zhangsan zhangsan 4096 Jun 30 08:29 zhangsandrwx------. 27 test     test     4096 Jun 30 09:02 test
    ✨ 结果解读:test和zhangsan用户目录仅自己用户有rwx权限
    [root@localhost test]# su - test[test@localhost ~]$ iduid=500(test) gid=500(test) groups=500(test) [test@localhost ~]$ ls -trldrwxr-xr-x. 2 test test 4096 Jun 30 03:51 Documents-rw-rw-r--. 1 test test    0 Jun 30 09:23 setfacl.log
    ✨ 结果解读:test用户下的setfacl.log文件权限为-rw-rw-r--, 以及test用户的组为test
    [root@localhost ~]# su - zhangsan[zhangsan@localhost ~]$ iduid=501(zhangsan) gid=501(zhangsan) groups=501(zhangsan)
    ✨ 结果解读:zhangsan用户的组为zhangsan

    2. 给指定用户赋rw权限;

    [test@localhost ~]$ setfacl -m u:zhangsan:rw- setfacl.log[test@localhost ~]$ ls -trl setfacl.log-rw-rw-r--+ 1 test test 0 Jun 30 09:23 setfacl.log[test@localhost ~]$ getfacl setfacl.log # file: setfacl.log# owner: test# group: testuser::rw-user:zhangsan:rw-group::rw-mask::rw-other::r--
    ✨ 结果解读:zhangsan用户对test用户下的setfacl.log有了写w的权限。

    3. 给指定组分配权限

    [test@localhost ~]$ setfacl -m g:zhangsan:r-- setfacl.log[test@localhost ~]$ getfacl setfacl.log # file: setfacl.log# owner: test# group: testuser::rw-user:zhangsan:rw-group::rw-group:zhangsan:r--mask::rw-other::r--
    ✨ 结果解读:zhangsan用户组对test用户下的setfacl.log有了写w的权限。
    4. 递归批量设置已有文件ACL
    [test@localhost ~]$ setfacl -R -m u:zhangsan:rw- /home/test/[test@localhost ~]$ ls -trldrwxrwxr-x+ 2 test test 4096 Jun 30 03:51 Documents-rw-rw-r--+ 1 test test    0 Jun 30 09:23 setfacl.log[test@localhost ~]$ getfacl Documents/# file: Documents/# owner: test# group: testuser::rwxuser:zhangsan:rw-group::r-xmask::rwxother::r-x
    ✨ 结果解读:zhangsan用户对test用户下的所有文件和目录有了rw的权限。
    5. 删除单条 ACL权限
    [test@localhost ~]$ setfacl -x u:zhangsan Documents[test@localhost ~]$ getfacl Documents/# file: Documents/# owner: test# group: testuser::rwxgroup::r-xmask::r-xother::r-x
    ✨ 结果解读:zhangsan用户对test用户的Dcouments目录ACL权限删除。

    五、总结&避坑提醒(重点划重点)

    1. 记住命令语法:setfacl [参数] <acl规则> 文件/目录

    2. 参数&acl规则 参考二中各选项,交互使用即可。

    3. 只要文件带+,如果1s查看的值与getactl查看的值不一致,实施权限以getactl值为准。

    你有没有学到设置Setfacl权限?评论区留言说说你的踩坑经历~
    喜欢记得点赞+在看,收藏起来慢慢看,后续持续更新技术/职场干货~

    最新文章

    随机文章