传统UGO权限+ACL权限管理结合 控制权限案例分析
以下是CentOS系统中传统UGO权限管理与ACL权限管理的详细对比及其结合应用场景的解析,附实际案例说明:
一、传统UGO权限管理
1. 核心机制
权限模型:将用户分为三类:
- User (u):文件所有者,拥有最高控制权。
- Group (g):文件所属用户组的成员。
- Others (o):既非所有者也非组成员的用户。
权限类型:
- 读 (r):查看文件内容或目录列表(数值4)。
- 写 (w):修改文件或增删目录内容(数值2)。
- 执行 (x):运行程序或进入目录(数值1)。
权限表示:
-rwxr-xr-- # 所有者:读写执行(rwx=7);组:读执行(r-x=5);其他:只读(r--=4)
2. 操作命令
修改权限:
chmod u+x file.txt # 为所有者添加执行权限(符号模式)
chmod 754 file.txt # 数字模式:u=rwx(7), g=r-x(5), o=r--(4)
修改归属:
chown user:group file # 同时修改所有者和属组
chgrp developers dir/ # 仅修改目录的属组
3. 局限性
- 无法精细化控制:例如,需授权多个不同用户不同权限时,UGO仅支持一个组,无法单独设置非组内用户的权限。
二、ACL权限管理:UGO的扩展
1. 核心优势
多用户/组控制:可对任意用户或组单独授权,突破UGO的三类限制。
权限优先级:ACL规则优先于UGO规则(如ACL拒绝某用户访问,即使UGO的others有权限也无效)。
2. 操作命令
设置ACL:
setfacl -m u:alice:rw file.txt # 授予alice读写权限
setfacl -m g:hr:rx dir/ # 授予hr组读执行权限
查看与删除:
getfacl file.txt # 查看所有ACL规则
setfacl -x u:alice file.txt # 删除alice的ACL规则
setfacl -b file.txt # 清除所有ACL规则
3. 特殊机制:ACL掩码(Mask)
- 作用:限制额外用户/组的最大权限(不影响所有者)。
setfacl -m m::r file.txt # 设置掩码为只读,则额外用户即使被赋rwx也仅生效r
三、UGO与ACL对比总结
| 特性 | UGO | ACL |
|---|---|---|
| 控制粒度 | 粗粒度(三类用户) | 细粒度(任意用户/组) |
| 多用户支持 | 仅一个组 | 支持多用户、多组 |
| 权限优先级 | 基础规则 | 高于UGO |
| 适用场景 | 简单权限分配(如私有文件) | 复杂共享(如团队协作目录) |
| 管理复杂度 | 简单(chmod/chown) | 较高(需setfacl/getfacl) |
四、结合应用场景与案例
场景1:共享研发目录(精细化控制)
需求:目录
/project需允许:- 所有者
dev_lead完全控制。 - 组
developers可读写。 - 外部测试员
tester1仅可读。
- 所有者
解决方案:
# 设置基础UGO权限
chown dev_lead:developers /project
chmod 770 /project # 组内可读写,其他无权限
# 添加ACL规则
setfacl -m u:tester1:r-x /project # 单独授予tester1读和执行(进入目录)
setfacl -m m::rx /project # 限制额外用户最大权限为读执行
场景2:Web服务器目录(安全隔离)
需求:网站目录
/var/www/html:- 用户
apache需读写权限(写入日志/上传)。 - 开发者组
web_dev需读写,但禁止执行脚本(防漏洞)。
- 用户
解决方案:
# 基础权限:所有者可读写执行,组可读写,其他无权限
chmod 750 /var/www/html
# ACL细化
setfacl -m g:web_dev:rw /var/www/html # 组可读写
setfacl -m d:g:web_dev:rw /var/www/html # 默认规则(新文件继承)
find /var/www/html -type f -name "*.php" -exec chmod -x {} \; # 禁用PHP执行
场景3:敏感文件保护(结合特殊权限)
需求:配置文件
/etc/app.conf需:- 拒绝所有非root用户的修改(包括所有者)。
- 允许应用用户
app_user只读。
解决方案:
# 锁定文件(禁止任何修改)
chattr +i /etc/app.conf # 使用chattr加锁
# 授予app_user只读(ACL优先)
setfacl -m u:app_user:r /etc/app.conf
五、最佳实践建议
最小权限原则:优先用UGO满足基础需求,复杂场景叠加ACL。
权限继承:ACL的默认规则(如
setfacl -d)确保新文件自动继承父目录权限。定期审计:通过
getfacl检查权限分布,避免冗余规则。特殊权限慎用:SUID/SGID(如
chmod u+s)可能导致提权漏洞,非必要不启用。
️ 注意:ACL权限在
ls -l显示中末尾出现+标记(如drwxr-x---+),此时需用getfacl查看完整规则。
通过结合UGO的简洁性与ACL的灵活性,可高效实现从简单到复杂的权限管控,同时兼顾安全性与可维护性。
传统UGO权限+ACL权限管理结合 控制权限案例分析的更多相关文章
- Linux权限及归属管理 磁盘管理 文件系统 LVM管理
第五六七章 alias 查看系统别名 67 chmod 设置文件或目录的权限 -R表示以递归的方式设置目录及目录下的所有子目录及文件的权限 u:属主 g:属组 o:其他人 a:所有人 +:添加 ...
- Linux系统管理第五六七章 权限及归属管理 磁盘管理 文件系统与lvm
第五六七章 alias 查看系统别名 67 chmod 设置文件或目录的权限 -R表示以递归的方式设置目录及目录下的所有子目录及文件的权限 u:属主 g:属组 o:其他人 a:所有人 +:添加 ...
- ClickHouse学习系列之六【访问权限和账户管理】
背景 在之前写的文章[用户权限管理]里已经介绍了应该如何设置用户密码以及权限控制.但是只是针对修改配置文件的方式来进行用户权限管理,其实ClickHouse也支持基于RBAC(Role-Based A ...
- Linux UGO和ACL权限管理
自主访问控制(Discretionary Access Control, DAC)是指对象(比如程序.文件.进程)的拥有者可以任意修改或者授予此对象相应的权限.Linux的UGO(User, Grou ...
- linux入门系列9--用户管理及文件权限控制
前面文章分享了Linux下常用命令以及Shell编程相关知识,本节继续学习Linux用户管理及文件权限控制. Linux是多用户多任务操作系统,具有很好的稳定性和安全性.既然是多用户,那就意味 ...
- linux下通过acl配置灵活目录文件权限(可用于ftp,web服务器的用户权限控制)
linux下通过acl配置灵活目录文件权限(可用于ftp,web服务器的用户权限控制) 发表于2012//07由feng linux 本身的ugo rwx的权限,对于精确的权限控制很是力不从心的,ac ...
- Linux_CentOS用户管理 和 用户权限管理 chmod、ACL、 visudo
一.用户管理 Linux 系统同时可以支持多个用户,每个用户对自己的文件设备有特殊的权利,能够保 证用户之间互不干扰.就像手机开了助手一样,同时登陆多个 qq 账号,当硬件配置非常高 时,每个用户还可 ...
- 【Linux】 Linux权限管理与特殊权限
Linux权限管理 权限管理这方面,非常清楚地记得刚开始实习那会儿是仔细研究过的,不知道为什么没有笔记留痕..除了一些基本的知识点早就忘光了,无奈只好从头开始学习一遍.. ■ 基本权限知识 这部分实在 ...
- linux用户权限 -> ACL访问控制
UGO设置基本权限: 只能一个用户,一个组和其他人 ACL设置基本权限: r.w.x 设定acl只能是root管理员用户. 相关命令: getfacl , setfacl facl权限 简介 facl ...
- linux权限管理之基本权限
基本权限 UGO ======================================================== 文件权限设置: 可以赋于某个用户或组 能够以何种方式 访问某个文件 ...
随机推荐
- 21C++数组(2)
一.字符数组的输入与输出 (第65课 采访报道) 教学视频 大惊小怪报和小惊大怪报是两家全球性的报社,发表的文章全用英文.因风之巅小学的信息学社团开展得很出色,于是两家报社都派记者前来采访,大 ...
- 问题描述:libGL.so.1: cannot open shared object file: No such file or directory
问题截图: 在实验室服务器上跑代码,报如上错误 解决方案: sudo apt update sudo apt install libgl1-mesa-glx 因遇见多次该错误,特此记录下 (据说该问题 ...
- 我的白板工具支持 Markdown 转思维导图啦!
朋友们好,我的开源在线白板工具又更新啦,这次支持了 markdown 文本转思维导图的功能,可以将多级标题.多级列表等转化为思维导图,这次对于 markdown 转思维导图功能的主要识别父子关系 + ...
- 多级菜单(java GUI)
话不多说,先来效果: 源码如下: package javaBasic; import java.awt.*; import javax.swing.*; import java.awt.event.* ...
- 【语义分割专栏】:FCN实战篇(附上完整可运行的代码pytorch)
目录 前言 FCN全流程代码 模型搭建(model) 数据处理(dataloader) 评价指标(metric) 训练流程(train) 模型测试(test) 效果图 结语 前言 FCN原理篇讲解:[ ...
- RL之深夜有感
世界似乎就是一个巨大的强化学习环境(Env),身处其中的每个人就是里面的智能体,有的为生计四处奔波:有的要探寻精神上的欢娱:有的似乎想跳出Env,不想再继续下去了:可以说每个人的target都不尽相同 ...
- GStreamer开发笔记(五):gstreamer创建组件、管道和总线实现简单的播放器
前言 前面是自动构建管道.本篇实例化每个元素并将它们链接在一起来手动构建一个管道. 本篇创建管道分为:创建组件,连接组件,获取总线,阻塞提取需要的消息并处理. Demo 管道图 ...
- 理论+实操|一文掌握 RFM 模型在客户数据洞察平台内的落地实战
确定用户价值是整个用户运营过程中极其重要的一环.传统的工作流程中,业务人员向数据部门提出数据需求,等待返回结果后再进行价值分析是主要的准备工作,但这个过程非常耗时.为了提高工作效率,业务人员经常会基于 ...
- hot100之矩阵
矩阵置零(073) 先看代码 class Solution { public void setZeroes(int[][] matrix) { boolean col0_flag = false; i ...
- 查看Linux配置信息
cat gitlab.rb |grep -v "^[#,;]" |grep -v "^$"