当前位置: 首页 > news >正文

Linux ACL权限策略

Linux ACL权限策略详细介绍

1. 什么是ACL?

ACL,全称 Access Control List,是Linux 文件系统中一种比传统Unix权限模式(用户-组-其他的 rwx 权限)更细粒度的权限管理机制。通过ACL,可以为单个文件或目录设置多个用户或组的访问权限,实现更灵活的访问控制。


2. 传统权限的限制

Linux传统的权限模型只有三类用户:文件所有者(User)、所属组(Group)、其他用户(Others),每类可以设置读(r)、写(w)、执行(x)权限。这种模型简单但有限,不能满足复杂多变的权限需求,例如:

  • 同一文件对不同用户需要不同的访问权限。
  • 一个用户可能需要获得特殊权限但不属于文件所属组。

为了解决这些问题,Linux引入了ACL。


3. ACL的组成和结构

ACL分为两大类条目:

  • 基本ACL条目(Base ACL) :包含了传统Unix权限的用户、组、其他用户权限,是ACL的基础部分。
  • 扩展ACL条目(Extended ACL) :允许为指定用户或组独立设置权限。

每个ACL条目包含以下信息:

  • 条目类型(用户、组或其他)
  • 目标对象(指定用户名或组名,可为“mask”)
  • 权限掩码(读、写、执行权限的组合)

4. Linux ACL的主要条目类型

条目类型含义
user::文件所有者的权限(基础ACL条目)
user:用户名:为特定用户设置权限(扩展ACL条目)
group::文件所属组的权限(基础ACL条目)
group:组名:为特定组设置权限(扩展ACL条目)
mask::访问权限掩码,限制扩展ACL条目和所属组的最大权限,生效范围包括 user:xxx 和 group:xxx 条目
other::其他用户的权限(基础ACL条目)

5. 查看ACL权限

使用命令:

getfacl <文件或目录路径>

示例输出:

# file: example.txt
# owner: alice
# group: staff
user::rw-
user:bob:r--
group::r--
mask::r--
other::---
  • 表示所有者alice有读写权限
  • 用户bob有只读权限
  • 所属组staff有只读权限
  • mask限制扩展ACL权限最大为读权限
  • 其他用户没有权限

6. 设置和修改ACL权限

使用命令:

  • 添加或修改权限
setfacl -m u:bob:rw- example.txt

为用户bob添加读写权限。

  • 移除特定ACL权限
setfacl -x u:bob example.txt

移除用户bob的ACL权限。

  • 给目录设置默认ACL
setfacl -d -m g:developers:rwx /project

为目录/project设置默认ACL,表示此目录下新创建的文件或目录继承该权限。

  • 清除文件所有ACL
setfacl -b example.txt

7. mask的作用

mask 是一个重要条目,用于限制扩展ACL条目(具体用户和组)的最大权限。设置mask时,扩展条目的权限会与mask做“与”操作,实际权限可能会被限制。例如:

  • 若给用户Bob设置 rwx 权限,但mask为 r-x,则Bob实际权限为 r-x。

8. ACL的实际应用场景

  • 多用户共享文件时,灵活分配读写权限。
  • 不改变文件所属组的情况下,给额外用户权限。
  • 设置项目组成员对特定文件夹的特殊访问权限。
  • 配合NFS共享中细粒度权限控制。

9. 常用ACL命令总结

命令作用
getfacl <文件/目录>显示当前文件或目录的ACL权限
setfacl -m u:<用户>:<权限> <文件>添加或修改用户权限
setfacl -m g:<组>:<权限> <文件>添加或修改组权限
setfacl -x u:<用户> <文件>删除指定用户的ACL权限
setfacl -b <文件>移除所有ACL,只保留基础权限
setfacl -d -m g:<组>:rwx <目录>设置目录的默认ACL权限
setfacl -R -m u:<用户>:rwx <目录>递归修改目录及其文件的ACL权限

10. 注意事项

  • 不是所有文件系统都支持ACL,ext3/ext4等主流文件系统支持,但需确保挂载时启用了ACL选项。
  • 过度使用ACL可能会使权限管理复杂,应合理规划权限策略。
  • ACL权限与传统权限共存,ACL权限对传统权限的扩展,需要理解其交互关系

11. 权限优先级

  • 文件拥有人>用户ACL>文件拥有组>组ACL>其他人
http://www.lryc.cn/news/588524.html

相关文章:

  • Faiss库
  • OFDM系统中关于信号同步的STO估计与CFO估计的MATLAB仿真
  • 基于Android的景点旅游信息系统App
  • DNS重绑定
  • 操作系统-第一章操作系统和第二章进程(知识点学习/期末复习/笔试/面试/考研)
  • 机载激光雷达目标识别:从点云到凝视成像的算法全景
  • 延迟双删懂不
  • 大数据领域开山鼻祖组件Hadoop核心架构设计
  • 逻辑代数中的基本规则,代入规则和反演规则,对偶规则
  • 九、官方人格提示词汇总(中-3)
  • 【C语言进阶】指针面试题详解(2)
  • LeetCode|Day11|557. 反转字符串中的单词 III|Python刷题笔记
  • 【Bluedroid】蓝牙协议栈enable流程深度解析
  • LogUtil日志工具类你真的封装对了么?
  • 19.数据增强技术
  • LeetCode 692题解 | 前K个高频单词
  • JAVA进阶--JVM
  • C#——数据与变量
  • Brooks 低温泵On-Board Cryopump 安装和维护手法Installation and Maintenance Manual
  • 文献查找任务及其方法
  • 信息学奥赛一本通 1549:最大数 | 洛谷 P1198 [JSOI2008] 最大数
  • 7.14练习案例总结
  • YOLOv11开发流程
  • 数字化红头文件生成工具:提升群聊与团队管理效率的创新方案
  • H264的帧内编码和帧间编码
  • 每日mysql
  • RAG索引流程中的文档解析:工业级实践方案与最佳实践
  • 【Linux网络】:HTTP(应用层协议)
  • 学习软件测试的第十五天
  • 【DOCKER】-6 docker的资源限制与监控