linux学习之acl权限详解

-wenli -wenli     2023-03-05     225

关键词:

Linux系统ACL权限详解

 

目录

ACL权限简介与开启
查看与设定ACL权限
最大有效权限与删除ACL权限
默认ACL权限和递归ACL权限

  

 

ACL权限简介与开启权限

 

 

ACL权限简介

用户权限管理始终是Linux系统管理中最重要的环节。大家对Linux/Unix的UGO权限管理方式一定不陌生,还有最常用的chmod命令。

为了实现一些比较复杂的权限管理,往往不得不创建很多的组,并加以详细的记录和区分。

有一种方法可以实现灵活的权限管理(文件的额外赋权机制)除了文件的所有者,所属组和其他人,可以对更多的用户设置权限,这就是访问控制列表(Access Control List)。

  

 

开启权限

ACL权限是需要分区支持的,默认情况下分区是支持的,如果不支持就需要开启ACL权限。
这里只做介绍,可以跳过,因为现在linux系统分区默认支持ACL。

  

 

两种方法:
临时开启ACL权限:
mount -o remount,acl /


永久开启分区ACL权限
1.vi /etc/fstab

2.mount -o remount /

  

 第一种方法很简单,下面只介绍第二种方法

打开文件

技术图片

 

 在第一行有效行的defaults后面加上acl

技术图片

 

然后重新挂载一次根分区

mount -o remount /

 

 

 

查看与设定ACL权限

 

 

设定ACL权限

setfacl [选项] 文件名

  

技术图片

 

 

 查看ACL权限

getfacle 文件名

  

 

实际演示

比如有如下场景:

  某大牛在QQ群内直播讲解Linux系统的权限管理,讲解完之后,他在一个公有的Linux系统中创建了一个 /project 目录,里面存放的是课后参考资料。那么 /project 目录对于大牛而言是所有者,拥有读写可执行(rwx)权限,对于QQ群内的所有用户他们都分配的一个所属组里面,也都拥有读写可执行(rwx)权限,而对于 QQ 群外的其他人,那么我们不给他访问/project 目录的任何权限,那么 /project 目录的所有者和所属组权限都是(rwx),其他人权限无。

  问题来了,这时候直播有旁听的人参与(不属于QQ群内),听完之后,我们允许他访问/project目录查看参考资料,但是不能进行修改,也就是拥有(r-x)的权限,这时候我们该怎么办呢?我们知道一个文件只能有一个所属组,我们将他分配到QQ群所在的所属组内,那么他拥有了写的权限,这是不被允许的;如果将这个旁听的人视为目录/project 的其他人,并且将/project目录的其他人权限改为(r-x),那么不是旁听的人也能访问我们/project目录了,这显然也是不被允许的。怎么解决呢?

 技术图片

下面 我们 来完成这整个过程 

第一步:创建一个/project目录

第二步:新建两个用户(在这个场景里属于群内学员)

第三步:新建一个组

第四步:将两个用户添加到组里面

 技术图片

第五步:更改目录的所有者和所属组 

第六步:赋予权限770

第七步:查看权限

 技术图片

 第八步:新建一个用户 (别的群的学员)

第九步:给这个用户设置ACL权限,权限为r-w

 技术图片

 第十步:查看/project的ACL

 技术图片

 

 

 

 

最大有效权限与删除ACL权限

 

 

最大有效权限

技术图片

 

可能会有点不好理解,什么意思呢?

如果A为mask权限 ,B为ACL权限,and为用户的有效权限

其实到这里,大家就会明白,mask权限是用来约束用户权限的,如果我们给用户给的ACL权限过大就不好了,所以我们事先把mask权限设置好,这样用户的有效权限就不会超过mask权限了。

技术图片

 

 

 查看与设置mask权限

查看mask权限
getfacl 文件名

设置mask权限
setfacl -m m:权限 文件名

  

 

 

删除ACL权限

 删除指定用户的 ACL 权限

setfacl -x u:用户名 文件名

  

删除指定用户组的 ACL 权限

setfacl -x g:组名 文件名

  

删除文件的所有 ACL 权限

setfacl -b 文件名

  

 

 

 

 

 

 默认ACL权限和递归ACL权限

 

 

递归 ACL 权限

通过加上选项 -R 递归设定文件的 ACL 权限,所有的子目录和子文件也会拥有相同的 ACL 权限。

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

  

默认 ACL 权限

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

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

  










linux学习之管道符和重定向详解(代码片段)

3、管道符、重定向与环境变量3.1、输入输出重定向标准输入重定向(STDIN,文件描述符为0)默认从键盘输入,还可以从其他文件或命令输入标准输出重定向(STDOUT,文件描述符为1):默认输出到屏幕错误输出重定向(STDERR,文件描述符为2)... 查看详情

从零入门机器学习之linux系统详解

  大家好,我是herosunly。985院校硕士毕业,现担任算法研究员一职,热衷于机器学习算法研究与应用。曾获得阿里云天池比赛第一名,科大讯飞比赛第三名,CCF比赛第四名。拥有多项发明专利。对机器学习和深度学习拥有自己... 查看详情

从零入门机器学习之linux系统详解

  大家好,我是herosunly。985院校硕士毕业,现担任算法研究员一职,热衷于机器学习算法研究与应用。曾获得阿里云天池比赛第一名,科大讯飞比赛第三名,CCF比赛第四名。拥有多项发明专利。对机器学习和深度学习拥有自己... 查看详情

linux命令学习之—每天发一个命令—mkdir

Linux命令学习之—每天发一个命令—mkdirmkdir 命令用来创建指定的名称的目录,要求创建目录的用户在当前目录中具有写权限,并且指定的目录名不能是当前目录中已有的目录。1.命令格式:mkdir [选项] 目录...2.命令... 查看详情

深度学习之图像分类(二十六)--convmixer网络详解(代码片段)

深度学习之图像分类(二十六)ConvMixer网络详解目录深度学习之图像分类(二十六)ConvMixer网络详解1.前言2.ASimpleModel:ConvMixer2.1PatchEmbedding2.2ConvMixerLayer2.3ConvMixer网络结构2.4实现代码:3.WeightVisualizations4 查看详情

linux学习之在搭建java开发环境

首先,在官网上下载你需要的JDK然后解压包   tar-zxvf包名 配置环境变量    vim/etc/profile如果权限不够,就使用sudovim/etc/profile在profile里添加以下变量: 编辑完成后使用source/etc/profile使该环境变量生效 这个... 查看详情

elasticsearch学习之配置文件详解(代码片段)

Elasticsearch配置文件#####################ElasticsearchConfigurationExample#######################只是挑些重要的配置选项进行注释,其实自带的已经有非常细致的英文注释了!#https://www.elastic.co/guide/en/elasticsearch/reference/current/module 查看详情

大数据学习之_01_linux学习_02_组管理和权限管理+定时任务调度+linux磁盘分区挂载+linux的网络配置+进程管理(重点)+软件包管理+大厂面试题+感悟分享+资料附录(代码片段)

10组管理和权限管理10.1Linux组的基本介绍10.2文件/目录的所有者10.3文件/目录的所在组10.4权限的基本介绍10.5rwx权限详解10.6修改权限指令-chmod10.7修改文件所有者-chown10.8修改文件所在组-chgrp10.9最佳实践-警察和土匪游戏11定时任务调... 查看详情

wpf学习之x名称空间详解

X名称空间里面的成员(如X:Name,X:Class)都是写给XAML编译器看的、用来引导XAML代码将XAML代码编译为CLR代码。4.1X名称空间里面到底都有些什么?x名称空间映射的是:http://schemas.microsoft.com/winfx/2006/xaml,望文生义,它包含的类均与解析XA... 查看详情

mybatis学习之核心配置详解(代码片段)

  MyBatis的配置文件包含了会深深影响MyBatis行为的设置和属性信息。配置文档的顶层结构如下:    一、属性(properties)  这些属性可以在外部进行配置,并可以进行动态替换。你既可以在典型的Java属性文件中配置... 查看详情

zookeeper节点权限控制acl详解(代码片段)

一:zooKeeperACL权限控制概述Zookeeper类似于unix文件系统,节点类比文件,客户端可以删除节点,创建节点,修改节点。Zookeeper可以使用ACL(accesscontrollist)访问控制列表来对节点的权限进行控制。acl权限... 查看详情

zookeeper节点权限控制acl详解(代码片段)

一:zooKeeperACL权限控制概述Zookeeper类似于unix文件系统,节点类比文件,客户端可以删除节点,创建节点,修改节点。Zookeeper可以使用ACL(accesscontrollist)访问控制列表来对节点的权限进行控制。acl权限... 查看详情

zookeeper节点权限控制acl详解(代码片段)

一:zooKeeperACL权限控制概述Zookeeper类似于unix文件系统,节点类比文件,客户端可以删除节点,创建节点,修改节点。Zookeeper可以使用ACL(accesscontrollist)访问控制列表来对节点的权限进行控制。acl权限... 查看详情

hive学习之五《hive进阶—udf操作案例》详解

hive—UDF操作udf的操作过程:在HIVE会话中add 自定义函数的jar文件,然后创建function,继而使用函数。 下面就以下面课题为例:课题:统计每个活动的PV和UV一、Java通过正则表达式,截取标题名称。以链接,截取标红的... 查看详情

安卓开发学习之015imageview基础属性详解

一、ImageView简介显示任意图像,例如图标。ImageView类可以加载各种来源的图片(如资源或图片库或网络图片)其结构关系图如下:二、主要XML属性属性名关联方法描述:adjustViewBoundssetAdjustViewBounds(boolean)设置该属性... 查看详情

运维学习之文件&目录权限的设定等

文件权限1.文件属性的查看ls-lfilename-|rw-r--r--.|1|root|root| 46|Oct 105:03|filename—————————— — ———— ————  —— ———————————— ———————— 1  2 &nbs... 查看详情

qt学习之qmainwindow详解(代码片段)

文章目录1、菜单栏2、工具栏3、状态栏4、铆接部件5、核心部件(中心部件)6、资源文件有关QT的学习我们会采取连载更新,传送门:有C++基础如何直接上手QT?最适合新手的第一个Qt小程序今天更新内容... 查看详情

springboot学习之权限系统登录验证springsecurity

SpringSecurity核心功能:认证、授权、攻击防护(防止伪造身份)涉及的依赖如下:<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-security</artifactId></dependency&g 查看详情