当前位置: 首页 > news >正文

架构师之路-学渣到学霸历程-12

访问控制列表

今天想要分享的就是访问控制列表;
Linux的访问控制列表,也需要着重理解;
它可以实现权限的限制;

设置文件访问控制列表:

  • 通常用命令setfacl来实现
  • 可以修改acl规则

setfacl命令:

  • 作用:设置文件访问控制列表
  • 语法:setfacl+ 选项 + u:rwx: 文件
  • 选项:
    • -m:修改acl规则
    • -M:从文件中读取相应的权限进行设置,用用于批量管理用户权限
    • -x:表示取消某个用户得到的acl权限
    • -b:撤销所有的acl权限
    • –set-file:复制一个文件acl权限到另外一个文件。
  • 修改acl规则:
    • 通过-m选项,可以修改文件的acl规则;
#设置liangjiawei权限,可以让liangjiawei对a.txt文件有写的权限;
[root@Linux0 test]# ll a.txt 
-rw-r--r-- 1 root root 4 928 22:17 a.txt#设置这个a.txt的文件设置acl权限
[root@Linux0 test]# setfacl -m u:liangjiawei:rw- a.txt #切换liangjiawei用户可以直接使用修改
[liangjiawei@Linux0 test]$ echo aaa >> a.txt 
[liangjiawei@Linux0 test]$ cat a.txt 
123
aaa#查看文件的acl权限
[liangjiawei@Linux0 test]$ getfacl  a.txt 
# file: a.txt
# owner: root
# group: root
user::rw-				#第一个user没有写用户名,代表是默认属主root的权限
user:liangjiawei:rw-	#第二个user代表得是liangjiawei用户得权限
group::r--
mask::rw-
other::r--#setfacl可以设置user以及用户组;权限;#设置组权限;也可以设置其他人的权限;#g:代表用户组,o:代表其他人权限;
[root@Linux0 test]# setfacl -m g:liangjiawei:rwx a.txt #取消权限:
[root@Linux0 test]# setfacl -m u:liangjiawei:- a.txt
  • 设置acl权限的注意要点
#用户必须存在,否则就会报错
[root@Linux0 test]# setfacl -m u:zhangsan:rwx a.txt 
setfacl: Option -m: 无效的参数 near character 3#然后检查才发现原来是没有这个用户
[root@Linux0 test]# id zhangsan
id: zhangsan: no such user#解决的办法就是:创建这个张三的用户即可
[root@Linux0 test]# useradd zhangsan 
[root@Linux0 test]# id zhangsan 
uid=1001(zhangsan) gid=1001(zhangsan)=1001(zhangsan)#现在就可以设置zhangsan的acl权限了
[root@Linux0 test]# setfacl -m u:zhangsan:rwx a.txt #然后zhangsan就能够修改文件内容
[root@Linux0 test]# su - zhangsan
[zhangsan@Linux0 ~]$ cd /test/
[zhangsan@Linux0 test]$ echo zhangsan >> a.txt 
  • -M 选项。批量修改acl规则
#创建一个acl文件
[root@Linux0 test]# vim acl.txt
u:liangjiawei:r--
u:zhangsan:rwx
g:zhangsan:rwx#直接从文件导入权限;
[root@Linux0 test]# setfacl -M acl.txt a.txt
  • 取消acl权限
#【-x】撤销某个用户得acl权限,恢复到普通ugo权限:#不能单独撤销某一个权限,比如只撤销可写权限
[root@Linux0 test]# setfacl -x u:liangjiawei a.txt #撤销所有的acl权限:
[root@Linux0 test]# setfacl -b a.txt 
[root@Linux0 test]# getfacl a.txt 
  • 如果复制acl权限;可以使用另外一个选项
#随便创建两个文件
[root@Linux0 test]# touch bb >> b.txt
[root@Linux0 test]# touch cc >> c.txt#这里就是设置一个acl权限
[root@Linux0 test]# setfacl -m u:liangjiawei:rwx a.txt #然后把a.txtacl权限复制给b.txt
[root@Linux0 test]# getfacl a.txt  | setfacl  --set-file=- b.txt 
[root@Linux0 test]# getfacl b.txt 
# file: b.txt
# owner: root
# group: root
user::rw-
user:liangjiawei:rwx
group::r--
mask::rwx
other::r--# -  代表输出流
[root@Linux0 test]# echo liangjiawei | cat -
liangjiawei
  • 临时减低权限:
    • mask:会临时降低acl用户或者组的权限,只能降低用户权限,不能提升
#设置acl用户的权限为rw:
[root@Linux0 test]# setfacl -m u:liangjiawei:rw c.txt#然后切换liangjiawei,这个用户是可以写入的
[liangjiawei@Linux0 test]$ echo liangjiawei > c.txt 
[liangjiawei@Linux0 test]$ cat c.txt 
liangjiawei#如果我现在是设置umask权限
[root@Linux0 test]# setfacl -m mask::r c.txt #这时候。liangjiawei用户就只能读,不能写
[liangjiawei@Linux0 test]$ echo ll >> c.txt 
-bash: c.txt: 权限不够#注意:如果lutixia用户本身r权限(只读权限),即使mask设置为rw,也是不能写的。
#而且设置了mask之后,如果再次使用setfacl进行权限的设置,那么mask的作用就失效了。

分享环节:
hi,亲爱的朋友们:

  • 感谢你们耐心完这个笔记,如果笔记中出现的一些软件包、资源找不到的可以直接留言&私聊,我看见了就回复;
  • 资源免费共享;有需要滴滴,(仅仅是我有的)

我的坚持初衷:💕立志要成为一名架构师

  • 不断地去坚持学,其中的各种各样的难度,不言而喻~!
  • 坚持不是一件容易的事情,但它却是成功的关键。做起来吧~!

如果你也想要坚持:那么组团吧,咋们一块互相监督;一天一点分享也是进步;最怕就是孤军奋战!加油吧,追梦人~!


http://www.mrgr.cn/news/50068.html

相关文章:

  • Android Studio简易项目|随机选择器(类似转盘)
  • 获取京东商品历史价格接口item_history_price介绍
  • 最大化似然估计?你知道什么叫”似然“吗?
  • Spring 实现 3 种异步流式接口,干掉接口超时烦恼
  • 预训练模型的使用方法
  • 如何在node.js中做快速傅立叶变换-(频谱)
  • SLAM中的加权最小二乘法
  • 解析:ARM 工业计算机在光伏储能中的关键作用
  • Skywalking介绍,Skywalking 9.4 安装,SpringBoot集成Skywalking
  • gbase8s之建表相关问题
  • C语言:在Visual Studio中使用C语言scanf输入%s出现的栈溢出问题
  • 量子噪声与量子操作
  • 谷歌浏览器主题和皮肤设置教程
  • Jetpack-ViewModel+LiveData+DataBinding
  • docker删除容器要怎么操作?如何保障容器安全!
  • leetcode哈希表(二)-两个数组的交集
  • 图新地球移动端(外业精灵)产品入门指南
  • js的基础问题
  • 今日最佳WAF雷池社区版,tengine问题解决办法
  • Mongo开启执行splitVector命令