传统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 ======================================================== 文件权限设置: 可以赋于某个用户或组 能够以何种方式 访问某个文件 ...
随机推荐
- HMM - (补充) 参数求解之 F/B 算法细节
回顾 上篇通过EM算法思想来求解 HMM 的参数 \(\theta=(\pi, A,B)\) 即 初始状态概率(向量), 状态转移概率(矩阵), 发射概率矩阵. 在上帝视角, 即已知隐变量 Z , 则 ...
- React-Native开发鸿蒙NEXT-权限处理
.markdown-body { line-height: 1.75; font-weight: 400; font-size: 16px; overflow-x: hidden; color: rg ...
- A* 合集
板子那篇烂尾了,等 \(25\) 年 \(csp\) 时再继续写吧 CF1620E Replace the Numbers 点击查看代码 #include<bits/stdc++.h> u ...
- 深入理解Nginx-模块开发与架构解析(第2版)第二章
Nginx的配置 运行中Nginx进程间的关系 # 为什么产品环境下安装master-worker方式配置同时启动多个进程? - master进程不会对用户提供服务,只用于管理真正提供服务的worke ...
- vivo Pulsar万亿级消息处理实践(1)-数据发送原理解析和性能调优
作者:vivo 互联网大数据团队- Quan Limin 本文是vivo互联网大数据团队<vivo Pulsar万亿级消息处理实践>系列文章第1篇. 文章以Pulsar client模块中 ...
- 对比分析LinkedBlockingQueue和SynchronousQueue
缘起 最近在 review 同事代码时,看到其使用了org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor 来构建线程池,而没 ...
- 网络策略NetworkPolicy
网络策略 在 Kubernetes 里,网络隔离能力的定义,是依靠一种专门的 API 对象来描述的,即: NetworkPolicy. Kubernetes 里的 Pod 默认都是"允许所有 ...
- es常用命令
删除索引某个字段时间范围的数据 curl -XPOST "http://127.0.0.1:9200/event_log_hulianwang_v3/event_log_hulianwang ...
- 数据库的DML与DQL语句
1: DML语句 insert into values 1 insert into 表 values(值1,值2,值n); 2 insert into 表(字段1,字段2,字段n) values( ...
- kubernetes如何将pod运行在master节点
一.简单说明 这里我们部署的Kubernetes集群,master节点默认是unscheduled的状态,也就是默认拒绝将Pod调度到master节点运行.专业术语就是:Master节点被赋予了一个或 ...