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学习之ACL权限详解(十)的更多相关文章

  1. Linux学习之用户配置文件详解(十四)

    Linux学习之用户配置文件详解 目录 用户信息文件/etc/password 影子文件/etc/shadow 组信息文件/etc/group 组密码文件/etc/gshadow 用户信息文件/etc ...

  2. linux shell 脚本攻略学习12--文件权限详解,chmod命令详解,chown命令详解,chattr命令详解

    文件权限详解 一.chmod命令详解 文件权限和所有权是Unix/Linux文件系统最显著的特征之一.linux中的每一个文件都与多种权限类型相关联,在这些权限中主要分类为3种: 用户(User)是文 ...

  3. 『学了就忘』Linux权限管理 — 53、ACL权限详解

    目录 1.什么是ACL权限 2.开启ACL 3.ACL权限的相关命令 (1)设定ACL权限 (2)查询文件的ACL权限 (3)设置文件ACL权限给用户组 (4)给文件夹和里边的文件同时赋予ACL权限 ...

  4. Linux学习之守护进程详解

    Linux系统守护进程详解                                                              ---转自:http://yuanbin.blog ...

  5. 【Linux】Linux系统中的权限详解

    我们linux服务器上有严格的权限等级,如果权限过高导致误操作会增加服务器的风险.所以对于了解linux系统中的各种权限及要给用户,服务等分配合理的权限十分重要. 一.文件基本权限 首先看下linux ...

  6. Linux学习之sed命令详解

    概述 sed是stream editor的简称,也就是流编辑器.它一次处理一行内容,处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区 ...

  7. Linux学习,ACL权限管理

    1.setfacl 得到指定文件的ACL权限 -m       表示后续有参数,不可与 -x参数配合使用 -x         删除后续的acl参数,不可与 -m 配合使用 -b        删除所 ...

  8. Linux学习之CentOS(八)----详解文件的搜寻、查找(转)

    which (寻找『运行档』) [root@www ~]# which [-a] command 选项或参数: -a :将所有由 PATH 目录中可以找到的命令均列出,而不止第一个被找到的命令名称 分 ...

  9. Linux下目录的权限详解

    在Linux文件系统模型中,每个文件都有一组9个权限位用来控制谁能够读写和执行该文件的内容.普通文件大家都了解,这里说说目录的情况. 对于目录来说,执行位的作用是控制能否进入或者通过该目录,而不是控制 ...

随机推荐

  1. 深入剖析ThreadLocal实现原理以及内存泄漏问题

    关于ThreadLocalMap<ThreadLocal, Object>弱引用问题: 当线程没有结束,但是ThreadLocal已经被回收,则可能导致线程中存在ThreadLocalMa ...

  2. GSON中Java对象与JSON互相转换——(一)

    json的转换插件是通过java的一些工具,直接将java对象或集合转换成json字符串. 常用的json转换工具有如下几种: 1)jsonlib 2)Gson:google 3)fastjson:阿 ...

  3. centos7入门

    yum install net-tools 设置IP和掩码 ifconfig eth0 1.1.1.20 netmask 255.255.255.0 设置网关 route add default gw ...

  4. IDEA常用快捷键[转]

    原文:http://www.cnblogs.com/wxdlut/p/3410541.html 查询快捷键CTRL+N   查找类CTRL+SHIFT+N  查找文件CTRL+SHIFT+ALT+N  ...

  5. 自助Linux之问题诊断工具strace【转】

    转自:http://www.cnblogs.com/bangerlee/archive/2012/02/20/2356818.html 引言 “Oops,系统挂死了..." “Oops,程序 ...

  6. root权限使用vim不能修改权限

    1.背景: 有时候我们会发现使用root权限不能修改某个文件,大部分原因是曾经使用chattr将文件锁定了 2.chattr命令介绍: 用来改变文件属性,能防止root用户误删文件等作用 3.使用方法 ...

  7. 执行update语句mysql5.6报错ERROR 1292 (22007): Truncated incorrect DOUBLE value: '糖糖的坤大叔'

    执行修改语句update tbl_user_details set nickname=CONCAT("用户",yunva_id) where nickname = yunva_id ...

  8. 14-jQuery补充

    jquery内容补充 jquery除了咱们上面讲解的常用知识点之外,还有jquery 插件.jqueryUI知识点 jqueryUI 官网: https://jqueryui.com/ jqueryU ...

  9. STM32学习及应用笔记二:一次运算符优先级造成的错误

    本人在最近一个项目的开发中,出现一个应为疏忽运算符优先级造成的问题,检查了很久才发现问题,所以觉得运算符的优先级问题还是有必要再研究一下.具体的问题是这样的,我采集了传感器的原始数据,然后会对数据进行 ...

  10. python for dl

    算是python的简明教程吧,总结的不错: https://zhuanlan.zhihu.com/p/24162430 python for opencv: https://zhuanlan.zhih ...