RHCE7 管理II-6ACL的使用
ACL允许向文件分配细化的权限。除标准的文件所有者、组所有者、和其他文件权限之外,还可以指定用户或组,以及uid或guid确定的用户和组授予权限。
命令:
·setfacl 设置acl策略
·getfacl 查看acl策略
[root@server ~]# setfacl --help
setfacl 2.2. -- set file access control lists
Usage: setfacl [-bkndRLP] { -m|-M|-x|-X ... } file ...
-m, --modify=acl modify the current ACL(s) of file(s) #设置文件或目录ACL规则
-M, --modify-file=file read ACL entries to modify from file #从文件读取ACL规则
-x, --remove=acl remove entries from the ACL(s) of file(s) #删除ACL规则
-X, --remove-file=file read ACL entries to remove from file #从文件读取ACL规则,并且进行删除
-b, --remove-all remove all extended ACL entries #删除所有扩展ACL规则,基本ACL规则保留
-k, --remove-default remove the default ACL #删除默认ACL规则,如果没有默认ACL规则,不提示
--set=acl set the ACL of file(s), replacing the current ACL #
--set-file=file read ACL entries to set from file
--mask do recalculate the effective rights mask #重新计算有效权限,即使ACL Mask被明确指定
-n, --no-mask don't recalculate the effective rights mask #不要重新计算有效权限
-d, --default operations apply to the default ACL #设置默认ACL规则,只是针对目录而言
-R, --recursive recurse into subdirectories #递归设置ACL规则
-L, --logical logical walk, follow symbolic links
-P, --physical physical walk, do not follow symbolic links
--restore=file restore ACLs (inverse of `getfacl -R')
--test test mode (ACLs are not modified)
-v, --version print version and exit
-h, --help this help text
[root@server ~]# mkdir /sharedata
[root@server ~]# cp /etc/passwd /sharedata/
[root@server ~]# useradd usera
[root@server ~]# useradd userb
[root@server ~]# useradd userc
[root@server ~]# echo 'userabc' |passwd --stdin usera
Changing password for user usera.
passwd: all authentication tokens updated successfully.
[root@server ~]# echo 'userabc' |passwd --stdin userb
Changing password for user userb.
passwd: all authentication tokens updated successfully.
[root@server ~]# echo 'userabc' |passwd --stdin userc
Changing password for user userc.
passwd: all authentication tokens updated successfully.
[root@server ~]# cd /sharedata/
[root@server sharedata]# ll
total
-rw-r--r-- root root Oct : passwd
[root@server sharedata]# setfacl -m u:usera:r passwd
[root@server sharedata]# setfacl -m u:userb:rw passwd
[root@server sharedata]# setfacl -m u:userc:rwx passwd
[root@server sharedata]# getfacl passwd
# file: passwd
# owner: root
# group: root
user::rw-
user:usera:r--
user:userb:rw-
user:userc:rwx
group::r--
mask::rwx
other::r--
如果想让ACL在目录下的数据都有继承功能,通常会对这个目录设置默认权限
文件所有者可以在单个文件或目录上设置ACL。新文件和子目录可以自动从父目录默认ACL中继承ACL设置。 与常规文件的访问规则类似,父目录层次结构需要至少设置其它执行权限,以便启用指定用户和指定组的访问权限。
[root@server ~]# mkdir /sharedata
[root@server sharedata]# setfacl -m d:u:usera:rwx /sharedata/
[root@server sharedata]# su - usera
Last login: Thu Oct :: CST on pts/
[usera@server ~]$ cd /sharedata/
[usera@server sharedata]$ touche usera
bash: touche: command not found...
Similar command is: 'touch'
[usera@server sharedata]$ touch usera
touch: cannot touch ‘usera’: Permission denied
[usera@server sharedata]$ exit
logout
[root@server sharedata]# mkdir -p /sharedata/pub
[root@server sharedata]# su - usera
Last login: Thu Oct :: CST on pts/
[usera@server ~]$ cd /sharedata/pub/
[usera@server pub]$ touch usera
[usera@server pub]$ cd ..
[usera@server sharedata]$ touch usera
touch: cannot touch ‘usera’: Permission denied
ACL掩码
掩码定义可授予指定用户组、组所有者和指定组的最大权限。不限制文件所有者或其它用户的权限
如果设置了mask,和mask比较,最终取得是二者中最小权限
[root@server /]# cd sharedata/
[root@server sharedata]# cp /etc/passwd .
[root@server sharedata]# setfacl -m u:usera:r passwd
[root@server sharedata]# setfacl -m u:userb:rw passwd
[root@server sharedata]# setfacl -m u:userc:rwx passwd
[root@server sharedata]# getfacl passwd
# file: passwd
# owner: root
# group: root
user::rw-
user:usera:r--
user:userb:rw-
user:userc:rwx
group::r--
mask::rwx
other::r-- [root@server sharedata]# setfacl -m m:r passwd
[root@server sharedata]# getfacl passwd
# file: passwd
# owner: root
# group: root
user::rw-
user:usera:r--
user:userb:rw- #effective:r--
user:userc:rwx #effective:r--
group::r--
mask::r--
other::r-- [root@server sharedata]# setfacl -m m:rwx passwd
[root@server sharedata]# getfacl passwd
# file: passwd
# owner: root
# group: root
user::rw-
user:usera:r--
user:userb:rw-
user:userc:rwx
group::r--
mask::rwx
other::r--
RHCE7 管理II-6ACL的使用的更多相关文章
- RHCE7 管理II-4计划将来的Linux任务
(1) at 一次性的计划任务 语法: # at [参数] [时间] at> 执行的指令 退出at命令 ctrl+d [root@localhost ~]# at now at> mkdi ...
- RHCE7 管理I-12归档文件并在Linux系统间复制文件
tar命令使用 默认tar只有归档的功能,没有压缩功能 tar [option...] [file]... -c,--create 创建 -x,--extract,--get 解压 -t, ...
- RHCE7 管理II-5管理进程的优先级
进程的优先级值称为进程的nice值,共有40种不同的取值(用数字-20到19表示) nice值越大,表示进程的优先级越低. 进程的nice值,只允许root用户来设置负的nice:其他用户只允许设置正 ...
- RHCE7 管理II-2 通过grep使用正则表达式
grep -i:忽略大小写 -n:表示行数 找出含有root的行 # grep root /etc/passwd root:x:::root:/root:/bin/bash ::operator:/r ...
- RHCE7 管理II-3使用VIM编辑器
vim的不同版本: 1.vim-minial 提供vi和相关命令.在RHEL 7的最小安装中 2.vim-enhanced 提供vim命令.提供语法突出显示.文件类型插件和拼写检查等功能 3.vim- ...
- phper 要求
做了这么多年php,今天看到一个07年的老文,才发现自己的水平太菜.转过来激励下自己 说句实话,写这个真够无聊的.本来看了某位大虾的类似文章,腹诽了几句也就算了.但是昨天晚上有个客户拿着这篇文章问我: ...
- PHPer的等级划分
PHPer的等级划分 前一段时间刚刚完成PHP的培训,然后想知道自己目前的水平(或者说等级),并且应该在哪些方面进行提高,所以在网上查了一下相关介绍.其中有一篇介绍讲的挺清楚的,至少目前的我还是很认同 ...
- java打包jar,war,ear包的作用、区别
java的打包jar,war,ear包的作用,区别,打包方式. a) 作用与区别 i. jar: 通常是开发时要引用通用(JAVA)类,打成包便于存放管理 ii. war ...
- Spring_Aop的xml和注解的使用
动态代理: 目的:在不改变源代码的情况下,对方法进行增强! 动态代理又分为两种: 1.第一个就是基于接口的动态代理,他是由jdk提供的 2.基于子类的动态代理:cgli ...
随机推荐
- 第六章 企业项目开发--cookie
注:本章代码基于<第五章 企业项目开发--mybatis注解与xml并用>的代码,链接如下: http://www.cnblogs.com/java-zhao/p/5120792.html ...
- c# winform编程之多线程ui界面资源修改总结篇【转】
c# winform编程之多线程ui界面资源修改总结篇 单线程的winfom程序中,设置一个控件的值是很easy的事情,直接 this.TextBox1.value = "Hello Wor ...
- jQuery练手:仿新浪微博图片文字列表淡进淡出上下滚动效果
1.效果及功能说明 仿新浪微博图片文字列表上下淡进淡出间歇上下滚动 2.实现原理 首先要设定div内只能显示4个图片那么多出来的图片会自动隐藏然后在给图片添加一个动画的事件让他们可以滚动的播放出来上下 ...
- 查询分页-----强势top
查询分页:语句1性能提升10倍多,仅仅是由于多了个topkeyword,非常不理解啊!!!! 1.查询时间1s内,r_object_id主键 select top 100 * from ( sele ...
- Hash索引与B-Tree索引
Hash索引 Hash 索引结构的特殊性,其检索效率非常高,索引的检索可以一次定位,不像B-Tree 索引需要从根节点到枝节点,最后才能访问到页节点这样多次的IO访问,所以 Hash 索引的查询效率要 ...
- 解决spark中遇到的数据倾斜问题
一. 数据倾斜的现象 多数task执行速度较快,少数task执行时间非常长,或者等待很长时间后提示你内存不足,执行失败. 二. 数据倾斜的原因 常见于各种shuffle操作,例如reduceByKey ...
- easyui tree 搜索
关键代码: var value=$('#txt_search').val(); var childrens = $('#regionTree').tree('getChildren'); $.each ...
- 漫话Asp.net
经过一段时间的接触,对asp.net这一块进行了很多其它的了解,漫话一下. Asp.net与Web : asp.net属于动态网页技术,属于web应用程序开发. Web应用程序通常是B/S模式. 和B ...
- Android之新建项目
最近开始接触Android,实践出真理,接下来实际创建Android应用程序. 1.启动Eclipse,依次选择 " File/New/Project... " 或 " ...
- C语言变量的声明位置
标准C里面必须放在代码前面,否则出错: C++里面不一定要放在最前面,用的时候声明也不迟: 所以要看具体的编译环境,如果是C的话必须放在最前,C++就不用:一般.c后缀的是C文件,按C来编译:.cpp ...