Shell初学(八)linux下的ACL
【1】ACL的作用
简单直接解释一下ACL的作用,即把权限的个别化额外添加。
可以解决如下问题~~比如:
【1.1】基于用户:
我有10个用户a1-a10,我有一个文件夹/tmp/test,我想给a1-a2 rw的权限,其他人只想给r的权限。
我们这里就不能通过改变other来实现,因为它改变的是所有用户。
【1.2】基于用户组
同理,我有10个用户组b1~b10,我想把一个文件/文件夹额外让b1~b2拥有,但不想给b3~b10拥有。
主要实现,基于3个命令
(1)setfacl (2)getfacl (3)chacl
【2】具体命令之 setfacl、getfack
(案例看不懂可以先往下看)
案例1:特定的用户权限添加设置
setfacl -m u:test:rw /tmp/test #给test用户添加 /tmp/test 文件夹的 rw权限
案例2:特定的用户组权限添加设置
setfacl -m g:test:rx /tmp/test #给test用户组添加 /tmp/test 文件夹的 rx权限
案例3:设置所有ACL的有效权限为 r
setfacl -m m:r /tmp/test #设置 /tmp/test 文件夹的ACL有效权限为 r,即案例1/2中的非mask权限都无效,这里mask只有r,所以acl的权限效用最多只有r
【2.1】我们如何确认文件/文件夹是否有设置ACL权限?
输入 ll ,未加ACL前
setfacl -m u:test:rw test (命令的意思是,让用户test 对当前目录下的test文件夹拥有rw权限) ,加了ACL后,目录/文件权限列表最后面有个+号
【2.2】命令中u、g、m的作用与体现
我们查看我们刚刚运行的
这里意思说明引用鸟哥的私房菜中的说明了;
顾名思义,setfacl中的
【u为 user】 【g为 group】 【m为 mask】: mask要特别说明一下,意思是有效权限(即如果mask只有r权限,那么你给user 用户 rwx权限也没用,user只有r权限有效)
注意:如果设置MASK权限前,先设置了,user与group,那么会与user/group权限冲突,当以mask权限为准,最终有效权限会以Effective显示。
$ setfacl -m u:user_name:rwx,g:user_name:rwx 文件/文件名 ,用户组与用户同时授权,以用户为主。
$ setfacl -m m::r 文件/文件名 mask优先级最高。
优先级从高到低为 mask/default->user->group
所以,我们刚刚分析的这一句,setfacl -m u:test:rw test
是设置u:test:rw 即,给与test用户rw的权限。综合起来就是给 test用户 对于当前目录下test文件夹 rw权限。
【2.3】添加了多个user下的getfacl是什么样子?
会分别列出来
【2.4】设置mask 之后,如何查看有效ACL的权限?
setfacl -m m:r test
会告诉你,这个组合这些用户的有效权限只有r
【2.5】如何给文件夹下所有的文件夹、文件都设置好ACL权限?
用 setfacl -R 参数即可
【2.6】如何删除所有的ACL权限?
用 setfacl -b 即可
为什么不用-x呢?
你即使用了setfacl -x删除了所有文件的ACL属性,那个+号还是会出现在文件的末尾.
所以正确的删除方法应该是用setfacl -b 或者 使用 chacl -B
【2.7】如果要同时使用u、g、m 应该怎么写?
用逗号分隔,比如这样:setfacl -m u:test:rw,m:rwx test
【3】d 即 default ,预设ACL 权限
如果我们想要给一个目录设置,其下所有文件和新建的文件都具有相同属性的ACL权限,我们就要用到default 预设权限。
案例4:给 /tmp/test 目录加预设权限,给test用户加rw预设权限
setfacl -m d:u:test:rw /tmp/test
如图,新建的文件有了预设权限,但原本存在的文件是没有的。
如果我们想要设置文件夹及下所有的文件夹、文件都具有我们设置的ACL权限,那么应该使用 setfacl -R 参数
Shell初学(八)linux下的ACL的更多相关文章
- linux下通过acl配置灵活目录文件权限(可用于ftp,web服务器的用户权限控制)
linux下通过acl配置灵活目录文件权限(可用于ftp,web服务器的用户权限控制) 发表于2012//07由feng linux 本身的ugo rwx的权限,对于精确的权限控制很是力不从心的,ac ...
- 关于windows下编写的shell脚本在linux下无法运行报错问题
首先,你写的shell脚本必须是正确的, 其次,无法运行的原因:因为windows下的换行是两个字节,而你上传到linux,linux下换行是两个字节,所以编译的酒不正确的,导致无法 运行脚本, 这种 ...
- shell携带附件,Linux下的自解压文件诞生了
初衷 windows下有自解压文件,直接双击就能释放文件,并且还能执行释放文件前后要执行的脚本.Linux下我也想要这样的功能,因为我希望直接拷贝一个shell脚本给别人,别人直接运行就能用,而不是一 ...
- 170509、文本编辑器编写的shell脚本在linux下无法执行的解决方法
今天碰到一个奇怪的问题,编写好的shell脚本再linux上执行一直提示找不到文件或目录,后来想想是文本编辑器的问题,记录下来!!! 1.查看当前文本格式 Notepad++界面中,在右下角有文件格式 ...
- shell 命令 bc linux下的计算器
bc命令 在linux环境下的计算器.
- Linux下的ACL
ACL理论概述 9位的属主/属组/其他人访问控制系统已经得到证明是强大的,足以满足大多数管理方面的需求. 事实上,在所有非UNIX操作系统上都采用了一种实质上更为复杂的方式来管理对于文件的访问:访问控 ...
- Windows下记事本编辑的Shell脚本放到Linux下执行出错,格式问题(/bin/bash^M: bad interpreter: 没有那个文件或目录)
错误: /bin/bash^M: bad interpreter: 没有那个文件或目录 解决方案: 运行脚本时出现了这样一个错误,打开之后并没有找到所谓的^M,查了之后才知道原来是文件格式的问题,也就 ...
- windows 下编辑shell,到linux报错,也是windows换行等造成
sed -i 's/\r$//' shell.sh 然后linux 下就不会报语法错误了.
- 06 Linux下Shell介绍
一.概述 每个人在成功登陆Linux后,系统会出现不同的提示符号,例如$,~,#等,然后你就可以开始输入需要的命令.若命令正确,系统就会依据命令的要求来执行,直到注销系统为止,在登陆到注销期间,输入的 ...
随机推荐
- noi.ac NOI挑战营模拟赛1-5
注:因为博主是个每次考试都爆零垫底的菜鸡,所以此篇博客很有可能咕咕咕 (指只贴AC代码不写题解的......如果我真的不会做的话,就不能怪我了qwqwq) Day1 T1 swap 23pts 从一个 ...
- Centos 安装字体库 以及解决confluence 旧文档数据的乱码
首先,第一步我们需要执行以下的命令来安装字体管理工具: yum install -y fontconfig mkfontscale 然后我们到(Windows系统)“c:/windows/fonts ...
- ESPCMS的CSRF添加管理员账号
ESPCMS的CSRF添加管理员账号 前言 这里开始的思路是先注入进去 然后getshell 但是不关CSRF什么事 换思路 看了一下群消息 大哥发了一个视频 后台名称admin admin12 ...
- java生成10个不相等的1-20的随机数
public class Test { public static void main(String[] args){ Random ran = new Random(); Set <Integ ...
- centos7配置外网
1设置网络连接中的NAT网络配置 2虚拟机的网络设置选择NAT连接设置如下,子网IP可通过ipconfig查看本地VMnet8,如我本地VMnet8 ip为:192.168.198.0 3 3.开启虚 ...
- 注意机制CBAM
这是一种用于前馈卷积神经网络的简单而有效的注意模块. 给定一个中间特征图,我们的模块会沿着两个独立的维度(通道和空间)依次推断注意力图,然后将注意力图乘以输入特征图以进行自适应特征修饰. 由于CBAM ...
- WOE1-Feature Selection 相关:一个计算WOE和Information Value的python工具
python信用评分卡建模(附代码,博主录制) https://study.163.com/course/introduction.htm?courseId=1005214003&utm_ca ...
- 在WPF中使用AForge控件
AForge.NET 是用C#写的一个关于计算机视觉和人工智能领域的框架,它包括图像处理.神经网络.遗传算法和机器学习等. 要实现视频功能,需要使用AForge.Controls命名空间中的Video ...
- electron关于页面跳转 的问题
刚开始看到页面跳转,大家一般会想到用 window.location.href = './index.html'; 这样的代码.结果是可以跳转,但 DOM事件 基本都会失效.到最后还是使用的 elec ...
- Telnet设置
修改hostname:修改/etc/hosts文件vi /etc/hosts# Do not remove the following line, or various programs# that ...