linux用户权限 -> ACL访问控制
UGO设置基本权限: 只能一个用户,一个组和其他人
ACL设置基本权限: r、w、x
设定acl
只能是root
管理员用户. 相关命令: getfacl
, setfacl
facl权限
简介
facl
的权限是针对某一类用户设置的。
如果希望对某个指定的用户进行单独的权限控制就需要用到文件的访问控制列表acl
。
设定acl
只能是root
管理员用户。
使用方法
查看权限
在没有设定acl时,看到的权限是相同的,下面的结果是默认权限
[root@Test01 ~]# getfacl /tmp
getfacl: Removing leading '/' from absolute path names
# file: tmp
# owner: root
# group: root
# flags: --t
user::rwx
group::rwx
other::rwx
修改权限
#环境创建:
新增三个普通用户alice、bgx、jack #权限需求
alice 拥有读写权限 rw
bgx 没有任何权限 -
jack 组拥有读权限 r
匿名用户拥有读写权限 rw #权限设定
setfacl -m u:alice:rw test.txt
setfacl -m u:bgx:- test.txt
setfacl -m g:jack:r test.txt
setfacl -m o::rw test.txt
移除权限
移除文件或目录的所有facl权限 setfacl -b test.txt
移除jack组的权限 setfacl -x g:jack test.txt
删除目录的所有默认 acl setfacl -k /tmp
高级特性mask
mask
用于临时降低用户或组的权限,但不包括文件的属主和匿名用户,那么mask
最主要的作用是用来决定他们的最高权限。mask
默认不会对匿名用户降低权限,所以为了便于管理文件的访问控制,建议匿名用户的权限置为空。
临时降低用户或组权限setfacl -m mask::rw filename
提示:
.mask会影响所有用户,但不会影响属主以及匿名用户(掐头去尾)。
.mask权限决定了用户访问文件时的最高权限。
.mask用于临时降低用户访问文件的权限。
.任何重新设置acl访问控制会清理mask所设定的权限
高级特定default继承
alice
能够对/opt
目录以及以后在/opt
目录下新建的文件有读、写、执行权限
)赋予 alice 对/opt 读写执行权限
etfacl -R -m u:alice:rwX /opt )赋予 alice 对以后在/opt 下新建的文件有读写执行权限(使 alice 的权限继承)
setfacl -m d:u:alice:rwX /opt )检查对应的权限
getfacl /opt/
getfacl: Removing leading '/' from absolute path names
# file: opt/
# owner: root
# group: bgx
user::rwx
user:alice:rwx
group::rwx
mask::rwx
other::rwx
default:user::rwx
default:user:alice:rwx
default:group::rwx
default:mask::rwx
default:other::rwx
ACL访问控制实践案例
案例1: 将新建文件的属性修改tom:admin
, 权限默认为644
要求: tom
对该文件有所有的权限, mary
可以读写该文件, admin
组可以读写执行该文件, jack
只读该文件, 其他人一律不能访问该文件
//实验前, 建立几个普通用户
[root@xuliangwei ~]# useradd tom
[root@xuliangwei ~]# useradd bean
[root@xuliangwei ~]# useradd mary
[root@xuliangwei ~]# useradd jack
[root@xuliangwei ~]# useradd sutdent
[root@xuliangwei ~]# groupadd admin
[root@xuliangwei ~]# gpasswd -a mary admin
[root@xuliangwei ~]# gpasswd -a bean admin //检查用户属性
[root@linux-node1 ~]# id tom
uid=(tom) gid=(tom) groups=(tom)
[root@linux-node1 ~]# id mary
uid=(mary) gid=(mary) groups=(mary),(admin)
[root@linux-node1 ~]# id bean
uid=(bean) gid=(bean) groups=(bean),(admin)
[root@linux-node1 ~]# id jack
uid=(jack) gid=(jack) groups=(jack)
[root@linux-node1 ~]# id sutdent
uid=(sutdent) gid=(sutdent) groups=(sutdent) //准备相关文件
[root@linux-node1 ~]# cp /etc/passwd /root/
[root@linux-node1 ~]# chown tom:admin passwd
[root@linux-node1 ~]# chmod passwd //检查设定前的acl列表
[root@linux-node1 ~]# getfacl passwd
# file: passwd
# owner: tom
# group: admin
user::rw-
group::r--
other::r-- //设定acl权限
[root@linux-node1 ~]# setfacl -m u::rwx,u:mary:rw,u:jack:r,g:admin:rwx,o::- passwd //检查acl权限
[root@linux-node1 ~]# getfacl passwd
# file: passwd
# owner: tom
# group: admin
user::rwx
user:jack:r--
user:mary:rw-
group::r--
group:admin:rwx
mask::rwx
other::---
acl的控制规则是从上往下匹配
1.tom
由于是文件的拥有者,所以直接按照user::rwx
指定的权限去操作
2.mary
用户从上往下寻找匹配规则,发现user:mary:rw-
能够精确匹配mary
用户,尽管mary
属于admin
组,同时admin
组有rwx
的权限,但是由于mary
用户的规则在前面,所有优先生效。
3.bean
由于找不到精确匹配的规则,而bean
是属于admin
组,根据文件的定义,该文件是属于admin
组,所以bean
的权限是按照group:admin:rwx
的权限去操作。
4.jack
用户从上往下寻找匹配规则,发现user:jack:r--
能够精确匹配jack
用户。
5.student
用户找不到精确匹配的user
定义规则, 也找不到相关组的定义规则,最后属于other
。
案例2: lab acl setup
controller组成员有:student
sodor组成员有:thomas,james
目录: /shares/steamies
文件: /shares/steamies/file
脚本: /shares/steamies/test.sh
controller属于该目录的所属组, 新建文件必须属于controller组
sodor组的成员对该目录拥有rwx权限
sodor组成员james对该目录及子目录(包括以后新建立的文件)没有任何权限
实践操作
//准备用户
[root@linux-node1 ~]# groupadd controller
[root@linux-node1 ~]# groupadd sodor
[root@linux-node1 ~]# useradd student -G controller
[root@linux-node1 ~]# useradd thomas -G sodor
[root@linux-node1 ~]# useradd james -G sodor //准备目录
[root@linux-node1 ~]# mkdir /shares/steamies -p
[root@linux-node1 ~]# echo "file" >> /shares/steamies/file
[root@linux-node1 ~]# echo "echo 123" >> /shares/steamies/test.sh
[root@linux-node1 ~]# chmod /shares/steamies/test.sh
[root@linux-node1 ~]# chown -R :controller /shares/steamies/
[root@linux-node1 ~]# chmod g+s /shares/steamies/ //设定权限(X表示,如果原本有执行权限就保留,如果没有则不添加)
[root@linux-node1 ~]# setfacl -R -m g:sodor:rwX,u:james:- /shares/steamies/ //设定继承规则
[root@linux-node1 ~]# setfacl -R -m d:g:sodor:rwX,d:u:james:- /shares/steamies/ [root@linux-node1 steamies]# getfacl /shares/steamies/
getfacl: Removing leading '/' from absolute path names
# file: shares/steamies/
# owner: root
# group: controller
# flags: -s-
user::rwx
user:james:---
group::r-x
group:sodor:rwx
mask::rwx
other::r-x
default:user::rwx
default:group::r-x
default:group:sodor:rwx
default:mask::rwx
default:other::r-x
linux用户权限 -> ACL访问控制的更多相关文章
- linux用户权限相关内容查看
linux用户权限相关内容查看 1 用户信息 创建用户一个名为 webuser 的账号,并填写相应的信息: root@iZ94fabhqhuZ:~# adduser webuser Adding ...
- linux用户管理,linux用户口令管理,linux用户组管理,linux用户权限管理详解
linux用户管理 http://www.qq210.com/shoutu/android 用户账号的添加(新加用户需添加用户口令) :增加用户账号就是在/etc/passwd文件中为新用户增加一条记 ...
- Linux - 用户权限相关命令
用户权限相关命令 目标 用户 和 权限 的基本概念 用户管理 终端命令 组管理 终端命令 修改权限 终端命令 01. 用户 和 权限 的基本概念 1.1 基本概念 用户 是 Linux 系统工作中重要 ...
- Linux用户权限指令, 定时任务等指令
一. 网卡配置详解 网络配置文件: /etc/sysconfig/network 网络接口配置文件: /etc/sysconfig/network-scripts/ifcfg-INTERFACE_NA ...
- linux用户权限 -> 系统用户管理
用户基本概述: Linux用户属于多用户操作系统,在windows中,可以创建多个用户,但不允许同一时间多个用户进行系统登陆,但是Linux可以同时支持多个用户同时登陆操作系统,登陆后互相之间并不影响 ...
- 大数据之Linux用户权限设置
用户 是Linux系统工作中重要的一环, 用户管理包括 用户 与 组 管理,在Linux系统中, 不论是由本级或是远程登录系统, 每个系统都必须拥有一个账号, 并且对于不同的系统资源拥有不同的使用权限 ...
- linux用户权限、系统信息相关命令(待学)
用户权限相关命令 目标 用户 和 权限 的基本概念 用户管理 终端命令 组管理 终端命令 修改权限 终端命令 01.用户和权限的基本概念 1.1 基本概念 用户 是Linux系统工作中重要的一环, 用 ...
- linux用户权限 -> 系统基本权限
比如rwxr-xr-x linux中正是这9个权限位来控制文件属主(User).属组(Group).其他用户(Other)基础权限. 用户对资源来说, 有三种角色 User(u): 属主用户(文件所有 ...
- 10.Linux用户权限
1.权限基本概述 1. 什么是权限? 我们可以把它理解为操作系统对用户能够执行的功能所设立的限制,主要用于约束用户能对系统所做的操作,以及内容访问的范围,或者说,权限是指某个特定的用户具有特定的系统资 ...
随机推荐
- PHP-从零开始使用Solr搜索引擎服务(上)
前言: 原文地址: http://www.cnblogs.com/JimmyBright/p/7156069.html 使用搜索引擎,我们常规的数据查询会快很多,还可以对关键词进行中文分词查询,返回一 ...
- 【Learning】分数规划
分数规划 分数规划是一类决策性问题.一般地,题目会要求你针对问题规划一种方案,使得其代价函数最小或最大.其中,代价函数一般是分数形式,且分子分母的构成元素一般呈现一一对应关系. 直接上例题观察:B ...
- digitalworld.local: MERCY靶机入侵
0x01 前言 MERCY是一个致力于PWK课程安全的靶机系统.MERCY是一款游戏名称,与易受攻击的靶机名称无关.本次实验是攻击目标靶机获取root权限并读系统目录中的proof.txt信息 靶机的 ...
- 如何优雅的将DTO转化成BO
用于网络传输的对象,我们都认为他们可以当做是DTO对象,DTO为系统与外界交互的模型对象,那么肯定会有一个步骤是将DTO对象转化为BO对象或者是普通的entity对象,让service层去处理. 网上 ...
- 最新版的Android4.4.2 SDK无法下载解决
http://hi.baidu.com/petercao2008/item/65362d2bdbddfacba5275a50 问题: Downloading ARM EABI v7a System I ...
- 丁酉年六月十一ACM模拟赛
似乎该写题解了.今天模拟ACM,10道题(本来还有2道被删了),9道都来自BZOJ,中间我做过2道.那么说,今天Solv.便大大增多了(但还是不如强大的Amphetamine). 题单及一句话题解如下 ...
- 字典的setdefault() 和get()方法比较
Python 字典 setdefault() 函数 和get() 类似: 如果键存在字典中,返回其value值 如果键不存在字典中,创建键值对.完后,返回值为默认值. 话不多说,上栗子: setdef ...
- twitter——数据连接
sklearn实战-乳腺癌细胞数据挖掘(博客主亲自录制视频教程) https://study.163.com/course/introduction.htm?courseId=1005269003 ...
- 51NOD 1105 第K大的数
数组A和数组B,里面都有n个整数. 数组C共有n^2个整数,分别是: A[0] * B[0],A[0] * B[1] ...... A[0] * B[n-1] A[1] * B[0],A[1] * B ...
- 解析Job,bpmn文件的小项目总结
1.在使用String类中split(String regex)切割字符串abcd.job遇得到job字符串时,直接使用split("."),导致数组超出界限错误 原因:得到的数组 ...