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

Linux-权限管理(ACL权限)

版权声明:本文为博主原创文章,转载请注明出处。 https://blog.csdn.net/twilight_karl/article/details/76595336

ACL简介

目前已知的三种权限分别是,所有者权限,所属组权限,和其他人权限。这三种权限有时并不能很好的指定所有用户的权限。当无法使用这三种权限准确的指定一个用户的权限时,可以使用acl给用户或用户组指定特定的权限。例如,所有者和所属组具有最高权限。其他人具有0权限。此时我希望给一个用户设定r-x权限。这时用以上三种权限很难实现。就可以用acl指定该用户的权限。

设定/查看 ACL权限

  • getfacl 文件名 : 查看acl权限
  • setfacl 选项 文件名 : 设置acl权限

常见参数:
- -m 设定ACL权限
- -x 删除指定的ACL权限
- -b 删除所有的ACL权限
- -d 设定默认ACL权限
- -k 删除默认ACL权限
- -R 递归设定ACL权限

  • 给特定用户设置acl权限:

setfacl -m u:username:rx 文件或目录

  • 给特定用户组设置acl权限:

setfacl -m g:groupname:rx 文件或目录

例如有test目录,所有者是twilight,所属组是stu,都具有最高权限,具体属性如下:

drwxrwx---.  2 twilight stu         6 7月  25 20:05 test

如果此时希望添加一个lw用户,使之具有r-x权限,可以使用acl:

setfacl -m u:lw:rx test

用getfacl查看acl权限:

[root@localhost home]# getfacl test
# file: test
# owner: twilight
# group: stu
user::rwx
user:lw:r-x
group::rwx
mask::rwx
other::---

此时查看test目录的属性:

drwxrwx---+  2 twilight stu         6 7月  25 20:05 test

最大有效权限 mask

mask 是最大权限,用户指定的权限需要与mask进行与运算,运算的结果才是用户实际具有的权限。
setfacl -m m:r-x 文件或目录

[root@localhost home]# setfacl -m m:r-x test
[root@localhost home]# getfacl test
# file: test
# owner: twilight
# group: stu
user::rwx
user:lw:rwx         #effective:r-x
group::rwx          #effective:r-x
mask::r-x
other::---

删除 ACL 权限

  • 删除指定用户的acl权限

    setfacl -x u:用户名 文件或目录

  • 删除指定用户组的acl权限

    setfacl -x g:用户组名 文件或目录

  • 删除文件的所有acl权限

    setfacl -b 文件名

[root@localhost home]# setfacl -x u:lw test
[root@localhost home]# getfacl test
# file: test
# owner: twilight
# group: stu
user::rwx
group::rwx
mask::rwx
other::---

递归权限

父目录在设定acl权限是,所有的已存在的子文件俺和子目录也会具有相同的acl权限。只能针对目录
setfacl -m u:lw:r-x -R 目录名

给test目录赋予r-x递归权限:

 setfacl -m u:lw:r-x -R test

test的子目录和子文件都会有acl权限:

[root@localhost test]# ll
总用量 0
drwxrwxr-x+ 2 root root 6 7月  25 21:15 dir
-rw-rw-r--+ 1 root root 0 7月  25 21:15 file

但是此时会出现一个问题,test的权限是r-x,代表可以对目录进行读和进入目录操作。但是同样的r-x对于文件来说作用是不同的。对于文件r-x表示读和执行,执行权限是最高权限。这样给文件赋予r-x权限是很不安全的。这种情况叫做权限溢出
这是acl最大的缺陷,只能手动的修改权限。

默认权限

父目录中给所有新建的子文件都会集成父目录的ACL权限。
setfacl -m d:u:用户名:r-x 目录名

[root@localhost home]# setfacl -m d:u:lw:r-x test
[root@localhost home]# getfacl test
# file: test
# owner: twilight
# group: stu
user::rwx
user:lw:rw-
group::rwx
mask::rwx
other::---
default:user::rwx
default:user:lw:r-x
default:group::rwx
default:mask::rwx
default:other::---

递归权限 和 默认权限的异同

  • 递归权限:对当前已存在的文件
  • 默认权限: 对该目录接下来新建的子文件

相关文章:

  • Dom4j解析xml内容——(三)
  • javascript面向对象之创建对象
  • 由中序和后序重建二叉树
  • SpannableString实现TextView的链接效果
  • jquery.validate.js使用之自定义表单验证规则
  • 特斯拉Gigafactory将结合Silevo和松下HIT太阳能技术
  • 007-df和du的使用
  • thrift TTransport
  • 《浅谈图论模型的建立与应用》
  • 从顶层设计出发 联想集团与泛华集团共画中国智慧城市蓝图
  • 让SCv2000来拯救企业存储的选择困难症
  • 东软RealSight用大数据给企业做“天气预报”
  • 关于使用flying-saucer-pdf,实现xhtml2pdf
  • 做了一个小游戏,结项目,数数坑(animate,移动端长按出现菜单,touchmove,禁止微信上下滑屏)...
  • 黑客查理·米勒:用一个按键黑掉一辆车
  • 《Javascript高级程序设计 (第三版)》第五章 引用类型
  • 【108天】Java——《Head First Java》笔记(第1-4章)
  • 2018一半小结一波
  • 8年软件测试工程师感悟——写给还在迷茫中的朋友
  • - C#编程大幅提高OUTLOOK的邮件搜索能力!
  • Js基础——数据类型之Null和Undefined
  • python 装饰器(一)
  • Sass 快速入门教程
  • SegmentFault 社区上线小程序开发频道,助力小程序开发者生态
  • SOFAMosn配置模型
  • TCP拥塞控制
  • 基于OpenResty的Lua Web框架lor0.0.2预览版发布
  • 开源SQL-on-Hadoop系统一览
  • 突破自己的技术思维
  • 详解NodeJs流之一
  • 在weex里面使用chart图表
  • 看到一个关于网页设计的文章分享过来!大家看看!
  • 1.Ext JS 建立web开发工程
  • Unity3D - 异步加载游戏场景与异步加载游戏资源进度条 ...
  • 选择阿里云数据库HBase版十大理由
  • 移动端高清、多屏适配方案
  • #pragma once与条件编译
  • (22)C#传智:复习,多态虚方法抽象类接口,静态类,String与StringBuilder,集合泛型List与Dictionary,文件类,结构与类的区别
  • (差分)胡桃爱原石
  • (第8天)保姆级 PL/SQL Developer 安装与配置
  • (仿QQ聊天消息列表加载)wp7 listbox 列表项逐一加载的一种实现方式,以及加入渐显动画...
  • (规划)24届春招和25届暑假实习路线准备规划
  • (六)激光线扫描-三维重建
  • (七)微服务分布式云架构spring cloud - common-service 项目构建过程
  • (三)c52学习之旅-点亮LED灯
  • (三)模仿学习-Action数据的模仿
  • (图)IntelliTrace Tools 跟踪云端程序
  • (转)详解PHP处理密码的几种方式
  • .FileZilla的使用和主动模式被动模式介绍
  • .libPaths()设置包加载目录
  • .NET 中什么样的类是可使用 await 异步等待的?
  • .NET6 命令行启动及发布单个Exe文件
  • .net访问oracle数据库性能问题
  • .net获取当前url各种属性(文件名、参数、域名 等)的方法
  • /etc/apt/sources.list 和 /etc/apt/sources.list.d