Linux 访问控制列表(Access Control List)

news2024/11/14 20:33:41

在Linux中,目录或文件的权限是针对的所有者(owner),所属组(group),其他人(others)这3种类别来设置的。这种根据类别控制权限的方法无法精确控制每个用户的行为。为了解决这个问题,Linux引入了访问控制列表(Access Control Lists,简称 ACL),它可以进行精确的权限控制。

文章目录

  • 一、访问控制列表简介
  • 二、访问控制列表设置示例
    • 2.1 设置某个用户的ACL
    • 2.2 设置组或其他人的的ACL
    • 2.3 清除ACL
    • 2.4 设置掩码
    • 2.5 设置默认ACL

一、访问控制列表简介

访问控制列表的功能是由acl包实现的,其中包含了设置、修改、删除和查看ACL的工具。

ACL权限总共有2种:
1. access ACLs,可以设置在目录或文件上
2. default ACLs,仅可以设置在目录上
如果目录中的文件没有显式设置ACLs,那么则会继承目录的ACLs。

二、访问控制列表设置示例

ACL通过setfacl工具进行权限的设置、修改和删除。设置的类别有4种:
• 设置某个用户的ACL
• 设置某个组的ACL
• 设置其他人的ACL
• 设置ACL的掩码(权限上限)

设置完成后可以通过getfacl工具查看ACL的具体规则。

2.1 设置某个用户的ACL

这里用root用户在/tmp目录下新建一个file.txt,要求权限如下,所有者:rwx,所属组:rw,其他人:r

touch file.txt
chmod u=rwx,g=rwx,o=r file.txt
ls -l file.txt

在这里插入图片描述

现有一个用户userA,要求其没有任何权限。而此文件即使是others也有读的权限,即仅针对userA限制文件权限,此时只能通过ACL实现。使用setfacl命令为userA设置权限,其语法为:setfacl -m u:user:perms file

setfacl -m u:userA:--- file.txt 

在这里插入图片描述
命令的选项解释如下:

  • -m 代表修改/设置权限,常用的选项还有-x 删除ACL,-b清除所有ACL
  • u:userA:—,这是规则组合,u代表用户,userA是用户名,也可以用uid代替,—对应rwx权限,这里要求无任何权限,因此是—
  • file.txt 文件名

设置完成后可以使用getfacl file.txt来查看文件上的ACLs:

getfacls file.txt

在这里插入图片描述
红框处的userA:—代表userA对此文件没有任何权限

切换到userA测试一下

ls -l file.txt
cat file.txt

在这里插入图片描述
可以看到文件的所有者,所属组,其他人都有r的权限,但是userA却无法查看文件内容。同时文件权限的最后多了一个+号,这意味着文件设置了ACL。

2.2 设置组或其他人的的ACL

组的ACL设置和用户设置类似,只是影响范围由用户扩展到组,需要变化的部分只有规则组合,u:user:perms需要变为g:group:perms。其中g代表组,group为组名或gid,perms对应具体的rwx权限。例如:

setfacl -m g:root:rxw file.txt

设置其他人的ACL,只需要将规则组合部分变为o:perms,这里o代表others,perms代表具体的权限。

2.3 清除ACL

使用setfacl的-x选项可以清除指定ACL规则,其格式和设置的语法很像,只是没有了perms部分,例如清除userA在file.txt上的ACL:

setfacl -x u:userA file.txt
getfacl file.txt

在这里插入图片描述

通过getfacl可以看到ACL规则已经被清除

或者,使用-b选项清除指定文件或目录上所有的ACL规则:

setfacl -b file.txt

在这里插入图片描述

2.4 设置掩码

掩码可以看作ACL规则权限的上限设置,你设置所有的ACLs规则都会和掩码进行交集运算,只有在掩码范围内的权限才会生效。

首先我们将userA的属组修改为root

usermod -g root userA

在这里插入图片描述
我们设置ACLs属组的权限为rw:

setfacl -m g:root:rw file.txt
getfacl file.txt

在这里插入图片描述
注意此时root组的权限和mask都是rw-。

下面我们将mask修改为r,修改掩码的语法将规则部分修改为m:perms

setfacl -m m:r file.txt
getfacl file.txt

在这里插入图片描述
可以看到组的权限依然是rw,但是后面多了一行注释effective:r–,表示只有r生效,这是因为下面的mask被修改为r–,所以最高权限只能是r–。这个掩码规则会应用到所有的组和用户ACLs上(这里仅演示了组)。

2.5 设置默认ACL

设置默认的ACL规则,只需要将规则组合前面的字母替换为d,且只能应用在目录上,当在目录上设置ACL时,其下的文件都会继承,如果在文件上设置ACL,则会覆盖所属目录的ACL规则。对于目录,普通的目录权限一般就足够了,通常不会使用ACL控制。

新建一个目录acldir,默认其他人的权限设置为r-x:

mkdir acldir
setfacl -m d:o:r-x acldir

在这里插入图片描述
这里只是演示了设置方法,这里目录本身对于其他人的权限是other:—。即使设置default:other::r-x,依然是无法进入目录或查看内容的。这里列举的权限是从上到下依次生效的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2122160.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

网络安全知识:什么是访问控制列表 (ACL)?

访问控制列表 (ACL) 是网络安全和管理的基础。它们在确定谁或什么可以访问网络内的特定资源方面发挥着重要作用。 本文深入探讨了 ACL 的复杂性,探索了其类型、组件、应用程序和最佳实践。我们还将比较不同操作系统的 ACL,并讨论它们在网络架构中的战略…

基于C#的UDP协议消息传输

1. 服务端 internal class Program{static void Main(string[] args){//1.创建SocketSocket socketServer new Socket(AddressFamily.InterNetwork,SocketType.Dgram,ProtocolType.Udp);//2.绑定IP、端口号EndPoint endPoint new IPEndPoint(IPAddress.Parse("127.0.0.1&…

Grid布局常用属性梳理

布局属性 aligin-items 作用:CSS align-items 属性设置了所有直接子元素的 align-self 值作为一个组。在 Flexbox 中,它控制子元素在交叉轴上的对齐。在 Grid 布局中,它控制了子元素在其网格区域内的块向轴上的对齐。 应用对象:…

VIC leak detection MS40-MS50检漏仪手侧

VIC leak detection MS40-MS50检漏仪手侧

web基础之XSS

一、搭建XSS平台 安装 1、我这里安装在本地的Phpstudy上,安装过程就是一路下一步(可以改安装路径),附上下载链接: # 官网:https://www.xp.cn/download.html# 蓝莲花 - github下载 https://github.com/fi…

报名啦|PolarDB数据库创新设计赛(天池杯)等你来战

2024年全国大学生计算机系统能力大赛PolarDB数据库创新设计赛(天池杯)现已正式启动报名,大赛面向全国普通高等学校全日制在读本专科学生,欢迎同学们踊跃参加! 大赛介绍 2024年全国大学生计算机系统能力大赛PolarDB数…

C语言:刷题日志(3)

一.猴子选大王 一群猴子要选新猴王。新猴王的选择方法是:让N只候选猴子围成一圈,从某位置起顺序编号为1~N号。从第1号开始报数,每轮从1报到3,凡报到3的猴子即退出圈子,接着又从紧邻的下一只猴子开始同样的报数。如此不…

计算机二级自学笔记(选择题1部分)

A 问题规模越大,越需要多次的循环处理数据,不能说无关。 A 冒泡排序最坏次数n(n-1)/2,每一个数据都需要从最下方依次对比到最上方。 A 栈顶栈底指针都可以随操作而变化。头尾指针相同可能为空,循环队列可…

数据集 HO3D一种用于手和物体姿态的3D数据 >> DataBall

数据集 HO3D一种用于手和物体姿态的3D标注方法 手部姿态估计 姿态检测 HO-3D是一个包含手和物体在严重相互遮挡情况下的3D姿态注释的数据集。 数据集中的68个序列包含10个不同的人操作10个不同的物体,这些物体来自YCB物体数据集。当前数据集包含77,558张图像的注释…

Hive SQL查询汇总分析

目录 SQL查询汇总分析 成绩查询 查询编号为“02”的课程的总成绩 查询参加考试的学生个数 分组查询 查询各科成绩最高和最低的分 查询每门课程有多少学生参加了考试(有考试成绩) 查询男生、女生人数 分组结果的条件 查询平均成绩大于60分的学生的学号和平均成绩 查询至少…

后谷歌时代

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…

【精彩回顾·成都】成都 UG 生成式 AI 工作坊:探索未来职场新边界!

文章目录 前言一、活动介绍二、精彩分享内容及活动议程2.1、亚马逊云科技社区情况和活动介绍2.2、《构建优势思维,打造高效团队》2.3、《成为有影响力的技术领导者》2.4、现场互动情况2.5、休息茶歇时间2.6、《向内探索-更多可能》2.7、《即刻起飞 —— 通过 Amazon…

一起对话式学习-机器学习01——贝叶斯学习

【一】声明 由于时间关系,这个系列主要推理内容可能大部分以手写笔记的形式展示,但是对于有大量公式形式及数学推导的科目来说,将更多的精力专注于对内容本身的理解中应该是更合理的。(之后会规范字体QAQ) 【二】贝叶斯…

骨传导耳机哪个牌子最好?五款热门高销骨传导耳机力荐

随着人们健康意识的增强和运动习惯的养成,骨传导耳机因其独特的优势逐渐成为许多运动爱好者的首选。然而,在众多品牌和型号中选择一款合适的骨传导耳机并非易事。市场上充斥着各种关于骨传导耳机的传言,这些传言有时会让消费者感到困惑&#…

C2P 因果推理链:让大模型具备人类级的因果推理能力

C2P 因果推理链:让大模型具备人类级的因果推理能力 C2P 框架创意翻译 论文:C2P: Featuring Large Language Models with Causal Reasoning 代码:https://anonymous.4open.science/r/C2P-5C2A/README.md C2P 框架 ├── C2P框架的主要子任务…

保姆级离线+windows环境+私有化部署大模型

基于gis数据的高敏感高保密性要求,相信gis的小伙伴都有如下的需求:在内网,无外网环境下,部署自己的私有化大模型。 1.环境背景: 没有Linux环境,只是windows 无外网,内网环境 2.安装部署过程…

【第27章】Spring Cloud之适配Sentinel

文章目录 前言一、准备1. 引入依赖2. 配置控制台信息 二、定义资源1. Controller2. Service3. ServiceImpl 三、访问控制台1. 发起请求2. 访问控制台 总结 前言 Spring Cloud Alibaba 默认为 Sentinel 整合了 Servlet、RestTemplate、FeignClient 和 Spring WebFlux。Sentinel…

光伏电站的工程量造价怎么算的

光伏电站的工程量造价怎么算的 光伏电站的工程量造价是一个复杂且多变的过程,受多种因素影响,包括项目规模、设备选型、施工条件、地区差异、原材料价格波动等。以下是对光伏电站工程量造价的详细分析: 造价的构成: 设备的费用&…

分享人工智能训练师不同级别对应职位和薪酬

2024年4月,九部委联合发文《加快数字人才培育支撑数字经济发展行动方案(2024—2026年)》的通知(以下简称“通知”)。 重点将人工智能领域人才培养放在首位,可见人工智能训练师作为连接技术与应用的桥梁…