kizumi_header_banner_img

这里是幻灬十一的博客,欢迎来到我的世界

加载中

文章导读

Linux 文件 ACL–访问控制列表


avatar
11 2026年5月31日 12

一、Linux 文件 ACL 是什么?

传统的 Linux 文件权限只有 ugo(用户/组/其他) 三级控制,粒度不够细。
文件 ACL(Access Control List) 就是给文件 / 目录额外加一套 “访问控制列表”,可以针对单个用户、单个组设置独立的读写执行权限,解决传统权限无法精细化控制的问题。使用 ACL 要求文件系统挂载时开启 acl 功能。

二、核心命令详解

1. getfacl — 查看文件 / 目录的 ACL 权限

作用:查看文件 / 目录的完整权限信息,包括传统权限 + ACL 扩展权限。

  • file: hello.sh
  • owner: xianwenfeng
  • group: xianwenfeng
  • user::rw-
  • user:alice:r– # ACL给用户 alice 单独设置了只读权限
    group::rw-
    group:dev:rw- # ACL给组 dev 单独设置了读写权限
    mask::rw-# 权限上限
    other::r–

2. setfacl — 设置 / 修改文件 / 目录的 ACL 权限

作用:给文件 / 目录添加、修改或删除 ACL 规则。

常用参数

  • -m:添加 / 修改 ACL 规则(最常用)
  • -x:删除指定的 ACL 规则
  • -b:清空所有 ACL 规则(恢复传统权限)
  • -R:递归设置(目录及所有子文件 / 子目录)
  • -d:设置默认 ACL(目录下新建的文件 / 目录自动继承)

常见用法示例

  • 给用户 alice 赋予 test.txt 的读写权限

setfacl -m u:alice:rw- test.txt

  • 给组 dev 赋予 test.txt 的只读权限

setfacl -m g:dev:r– test.txt

  • 递归给目录 mydir 下所有内容设置 ACL

setfacl -R -m u:bob:rwx mydir/

  • 设置目录的默认 ACL(新建文件自动继承)

setfacl -d -m u:charlie:r-x mydir/

  • 删除用户 alice 的 ACL 权限

setfacl -x u:alice test.txt

  • 清空所有 ACL 规则

setfacl -b test.txt

三、拓展chown / chgrp

1、chown — 修改文件 / 目录的所有者和所属组
运行

基本格式

  • sudo chown 新用户名:新组名 文件名

  • 示例:把 test.txt 的所有者改成 alice,所属组改成 dev

sudo chown alice:dev test.txt

  • 递归修改目录及所有内容的所有者和组

sudo chown -R bob:staff mydir/

2、chgrp — 单独修改文件 / 目录的所属组
运行

基本格式

chgrp 新组名 文件名

  • 示例:把 test.txt 的所属组改成 dev

chgrp dev test.txt

  • 递归修改目录的所属组

chgrp -R dev mydir/

四、权限为标识

chmod 权限修改
u 属主(所有者)
g 属组
o 其他用户
a 所有用户(u+g+o)
+ 添加权限
– 去掉权限
= 直接设置权限
r 读
w 写
x 执行
r=4 w=2 x=1
常用权限(背下来)
755 → 目录、脚本、程序 rwxr-xr-x
644 → 普通文件、配置文件 rw-r–r–
600 → 私密文件、密钥 rw——-
777 → 所有权限(慎用)
suid-4000 临时变成文件的所有者(对目录不生效,只对文件生效,权限仅对编译好的二进制的可执行文件)
sgid-2000 临时变成文件的所属组
stidcy bit-1000 只有文件所有者或者root可以删除
rws——4700
rwx–s– 2710
rws–s– 4710



评论(0)

查看评论列表

暂无评论


发表评论

表情 颜文字
插入代码