Linux之ACL权限

news2024/11/28 20:34:49

目录

Linux之ACL权限

场景

设定ACL权限

ACL权限管理命令

参数及作用

给用户和用户组添加ACL权限

案例

创建 目录 /project 的所有者和所属组其他人权限设定为 770 

创建旁听用户pt,并赋予ACL权限rx

查看目录/project的ACL权限

验证pt 用户对于 /project 目录没有写权限

最大有效权限 mask

通过getfacl 文件名 也能查看 mask 的权限的相关配置

案例

删除ACL权限

删除指定用户的ACL权限

删除指定用户的ACL权限

删除文件的所有ACL权限

递归ACL权限

默认ACL权限


Linux之ACL权限

场景

        某大牛在QQ 群内直播讲解 Linux 系统的权限管理,讲解完之后,他在一个公有的 Linux 系统中创建了一个 /project 目录,里面存放的是课后参考资料。那么 /project 目录对于 大牛 而言是所有者,拥有读写可 执行(rwx)权限 ,对于 Q Q群内的所有用户 他们都分配的 一个所属组 里面,也都 拥有读写可执行(rwx)权限 ,而对于 QQ 群外的其他人 ,那么我们 不给他访问/project 目录的任何权限 ,那么 /project目录的所有者和所属组权限都是(rwx ),其他人权限无
        问题来了,这时候直播有旁听的人参与(不属于QQ 群内),听完之后,我们允许他访问 /project 目录查看参考资料,但是不能进行修改,也就是拥有(r-x )的权限,这时候我们该怎么办呢?我们知道 一个文件只能有一个所属组 ,我们将他 分配到QQ群所在的所属组 内,那么他 拥有了写的权限 ,这是 不被允许 的;如果将这个旁听的人 视为目录/project 的其他人 ,并且 将/project目录的其他人权限改为(r-x) ,那么不是 旁听的人也能访问我们/project目录 了,这显然 也是不被允许 的。怎么解决呢?

对应到Linux系统也是这样,我们给指定的用户指定目录分配指定的权限,也就是 ACL 权限分配

设定ACL权限

ACL权限管理命令

        getfacle  文件名 --- 查看ACL权限

        setfacl  选项  文件名 --- 设定ACL权限

参数及作用

参数作用
-m
设定 ACL 权限。如果是 给予用户 ACL 权限 ,则使用 "u: 用户名:权限 " 格式赋予;如果是 给予组 ACL 权限 ,则使用 "g: 组名:权限 " 格式赋予
-x删除指定的ACL权限
-b删除所有的ACL权限
-d设定默认ACL权限。只对目录生效,指目录中新建立的文件拥有此默认权限
-k
删除默认 ACL 权限
-R
递归设定 ACL 权限。指设定的 ACL 权限会对 目录下的所有子文件生效

给用户和用户组添加ACL权限

        用户 --- setfacl -m u:用户名:权限 指定文件名

        用户组 --- setfacl -m g:组名:权限 指定文件名

注意:     

        我们给用户或用户组设定 ACL 权限其实并不是真正我们设定的权限,是与 mask 的权限 “相与”之后的权限才是用户的真正权限 一般默认mask权限都是rwx ,与 我们所设定的权限相与 就是我们设定的权限。

案例

        示例 --- 所有者root用户在根目录下创建一个文件目录/project,然后创建一个QQ群所属组,所属组里面创建两个用户zhangsanlisi。所有者和所属组权限和其他人权限是770,然后创建一个旁听用户 pt,给他设定/project目录的 ACL r-x

创建 目录 /project 的所有者和所属组其他人权限设定为 770 

[root@localhost ~]# mkdir /project --- 创建 project文件目录
[root@localhost ~]# useradd zhangsan --- 创建zhangsan用户
[root@localhost ~]# useradd lisi --- 创建lisi用户
[root@localhost ~]# groupadd QQgroup --- 创建用户组QQgroup
[root@localhost ~]# gpasswd -M zhangsan,lisi QQgroup --- 将zhangsan,lisi 放入QQgroup用户组中
[root@localhost ~]# chown root:QQgroup /project/ --- 将project文件目录的拥有者改为QQgroup用户组
[root@localhost ~]# chmod 770 /project/ --- 修改project目录的权限 管理者rwx,用户组rwx,其他用户---

创建旁听用户pt,并赋予ACL权限rx

[root@localhost ~]# useradd pt --- 创建用户pt
[root@localhost ~]# setfacl -m u:pt:rx /project 赋予旁听用户pt对project列表rx的权限

 注意:

        如果某个目录或文件下有 + 标志,说明其具有 ACL权限

查看目录/project的ACL权限

[root@localhost ~]# getfacl /project/

验证pt 用户对于 /project 目录没有写权限

        用 su 命令切换到 pt 用户,然后进入 /project 目录,在此目录下创建文件,看是否能成功
[root@localhost ~]# su - pt
[pt@localhost ~]$ cd /project/
[pt@localhost project]$ touch test.txt

         touch: 无法创建 'test.txt': 权限不够

最大有效权限 mask

        前面说过我们给用户或用户组设定 ACL 权限其实并不是真正我们设定的权限,是与 mask 的权限相与之后的权限才是用户的真正权限,一般默认mask权限都是rwx,与我们所设定的权限相与就是我们设定的权限

通过getfacl 文件名 也能查看 mask 的权限的相关配置

         setfacl -m m:权限 文件名

案例

[root@localhost ~]# setfacl -m m:rw /project/

删除ACL权限

删除指定用户的ACL权限

setfacl -x u:用户名 文件名

删除指定用户的ACL权限

setfacl -x g:组名 文件名

删除文件的所有ACL权限

setfacl -b 文件名

递归ACL权限

        通过加上选项 -R 递归设定文件的 ACL 权限,所有的子目录和子文件也会拥有相同的 ACL 权限
setfacl -m u:用户名:权限 -R 文件名

默认ACL权限

        如果给父目录设定了默认的 ACL 权限,那么父目录中所有新建的子文件会继承父目录 ACL 权限

setfacl -m d:u:用户名:权限 文件名

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

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

相关文章

el-element-admin实现双路由菜单

需求: 1、输入用户名登录企业级菜单 2、点击企业级菜单中的首页,右边显示项目列表,点击某一行跳转到项目级菜单 注意: 企业级菜单和项目级菜单,后端分别给接口 具体实施: 1、点击面包靴首页的时候设置标记…

第14届蓝桥杯国赛真题剖析-2023年5月28日Scratch编程初中级组

[导读]:超平老师的《Scratch蓝桥杯真题解析100讲》已经全部完成,后续会不定期解读蓝桥杯真题,这是Scratch蓝桥杯真题解析第149讲。 第14届蓝桥杯Scratch国赛真题,这是2023年5月28日上午举办的全国总决赛,比赛仍然采取…

基于java springboot的图书管理系统设计和实现

基于java springboot的图书管理系统设计和实现 博主介绍:5年java开发经验,专注Java开发、定制、远程、指导等,csdn特邀作者、专注于Java技术领域 作者主页 超级帅帅吴 Java项目精品实战案例《500套》 欢迎点赞 收藏 ⭐留言 文末获取源码联系方式 文章目录…

load_dataset加载huggingface数据集失败

1. 一般的加载方式 from datasets import load_dataset dataset_dict load_dataset(cmrc2018)这种加载方式可能会显示因为连接问题导致失败,此时可以在hugging face里面找到对应的页面下载下来 然后改一下代码: from datasets import load_dataset d…

关于TFTP传输协议

TFTP(Trivial File Transfer Protocol,简单文件传输协议):实现客户端与服务器之间简单文件传输。小文件传输,端口:69。协议简单,易于实现。 缺点: 传输效率低对于超时机制没有明确说明每包长度…

华为OD机试真题B卷 JavaScript 实现【数组拼接】,附详细解题思路

一、题目描述 现在有多组整数数组,需要将它们合并成一个新的数组。 合并规则,从每个数组里按顺序取出固定长度的内容合并到新的数组中,取完的内容会删除掉,如果该行不足固定长度或者已经为空,则直接取出剩余部分的内…

第18章:逻辑架构

一、逻辑架构剖析 1.1服务器处理客户端请求 ①MySQL是典形的C/S架构,服务器端使用mysqld ②客户端进程向服务器进程发送SQL语句,服务器进程在向客户端进程发送处理结果。 查询请求演示图 查询请求详细图 1.2第1层:连接层 ①客户端访问My…

如何使用 NGINX Service Mesh 进行速率限制

原文作者:NGINX 原文链接:如何使用 NGINX Service Mesh 进行速率限制 转载来源:NGINX 官方网站 ​ NGINX 唯一中文官方社区 ,尽在 nginx.org.cn 无论 HTTP 请求是恶意的(暴力破解密码或 DDoS 攻击)还是正常…

day07--java高级编程:JDK8的新特性,JDK9的新特性,JDK10的新特性,JDK11的新特性,JDK15的新特性

1 JDK8的其它新特性 说明:一些8中的新特性在,java高级部分学习的同时顺便讲过了。 1.1 JDK8新特性的总体结构 1.2 Java 8新特性简介 1.3 Lambda表达式 1.3.1 出现背景 1.3.2 Lambda表达式的使用举例 package com.atguigu.java1;import org.junit.Tes…

2023年软件测试简历没有邀约?为什么?8类细节通通告诉你(附赠高薪简历)

求职不顺,没有邀约,大概率是你的简历出现了问题。 本篇文章列出高薪简历应该注意的细节,合计36处,涉及简历的八大组成部分。 现在就讲: 一、简历样式要求(3点要求) 1、简历格式,…

某游戏登录密码加密,webpack

注意:文章内容仅用于学习和技术交流,切勿做出违法的事情,如有侵权请联系我删除。 网址(今天的大冤种):aHR0cHM6Ly93d3cuZ205OS5jb20v 一,分析 从上面图片可以看到,他的密码是加密了…

FinGPT:以数据为中心的方法革新开源金融

FinGPT 由 AI4Finance Foundation 开发,是一种以数据为中心的工具,可使大型语言模型 (LLM) 的金融数据民主化。它旨在成为开放式金融的开源解决方案,旨在彻底改变金融业。本文将深入探讨 FinGPT 的复杂性、它的好处,以及它如何成为…

vscode使用latex环境无法编译,是否与anaconda环境冲突

Vscode使用latex环境无法编译,是否与anaconda环境冲突 在 VSCode 中使用 LaTeX 环境无法编译,可能与 Anaconda 环境冲突。这是因为 Anaconda 默认会将环境变量PATH 设置为 Anaconda 所在的路径,如果你使用的是 Anaconda 内置的 Python环境&am…

如何三分钟快速制作自定义ppt

目录 利用ChatGPTMindShow三分钟生成PPT 机器人 道合顺 莓用ai 百晓生 aichat 结合提词器以达到更好地提问效果: 更好地提问ChatGPT_常用prompt表_小黄同学LL的博客-CSDN博客 举个栗子: 利用ChatGPTMindShow三分钟生成PPT 提词:…

LeCun世界模型出场!Meta震撼发布首个「类人」模型,理解世界后补全半张图,自监督学习众望所归

LeCun世界模型出场!Meta震撼发布首个「类人」模型,理解世界后补全半张图,自监督学习众望所归 原创 新智元 新智元 2023-06-14 12:19 发表于北京 【新智元导读】LeCun的世界模型终于来了,可谓是众望所归。既然大模型已经学会了理解…

Unity入门6——光源组件

一、参数面板 二、参数介绍 Type:光源类型 Spot:聚光灯 Range:发光距离Spot Angle:光锥角度Directional:方向光Point:点光源Area(Baked Only):面光源 仅烘焙。预先算好&…

如何选择好用的效果图渲染平台

在现代的建筑设计、室内设计、电影动画等行业中,效果图已经成为了一个重要的工具,能够帮助设计师和制作人员更好地呈现他们的想法和概念。而要制作出高质量的效果图,一个好用的效果图渲染平台是非常必要的。 如何选择好用的效果图渲染平台呢…

【Flutter】Flutter 如何获取安装来源信息

文章目录 一、 前言二、 安装来源信息的基本概念1. 什么是安装来源信息2. 为什么我们需要获取安装来源信息 三、 如何在 Flutter 中获取安装来源信息1. 准备工作2. 安装必要的依赖库3. 编写代码获取安装来源信息 四、 完整示例代码五、总结 一、 前言 在这篇文章中&#xff0c…

图像处理实战01-OpenCV 入门指南

Python OpenCV 入门指南 OpenCV是一个强大的计算机视觉库,它可以用于处理图像和视频数据,以及进行目标检测和跟踪等任务。,将学会如何使用Python编写OpenCV代码来进行基础和进阶的图像处理和分析。 学习OpenCV可以帮助你掌握基本的图像处理…

(哈希表) 1002. 查找共用字符 ——【Leetcode每日一题】

❓1002. 查找共用字符 难度:简单 给你一个字符串数组 words ,请你找出所有在 words 的每个字符串中都出现的共用字符( 包括重复字符),并以数组形式返回。你可以按 任意顺序 返回答案。 示例 1: 输入&…