对Linux中ACL的理解

最近调用到服务器上的一些工具,归管理员管的那些,于是有机会接触到了文件的ACL(Access Control List访问控制表)。

【案例】
服务器上安装了Oracle的一些工具例如SQLPlus,提供了一些shell脚本供调用。这些脚本权限属于root.root 744,典型的能看不能碰咯~群组是root不能改,其他组更不应该开放太大权限——数据库,你懂的。怎么办呢?跟服务器管理员谈了谈,原来他都是通过配置访问表来授权的。也就是说可以更精细地授权。

getfacl script.sh  类似这样,可以查看到这个文件的授权表ACL。在ACL里添加你的用户名和权限,就可以单独授权给你这个账号了。(条件不具备,这里无法放截图。)

【参数表】略。自己打"setfacl --help"或"man setfacl"可获得帮助。总的就是-m修改和-x删除。
http://www.cnblogs.com/ZhangShuo/articles/1836971.html 这位博友也讲得非常详尽了。注意的是ACL的支持需要独立安装,其控制范围是对每个单个文件的。

看这位博友写得如此详细,我都没颜面再这里废话了。直接贴个简明的用法吧。引用自该文。

[root@zyq-server data]# setfacl -m u:zyq:rw test.txt
[root@zyq-server data]# setfacl -m g:jackuser:r test.txt
[root@zyq-server data]# getfacl -c test.txt
user::rw-
user:zyq:rw-
group::r--
group:jackuser:r--
mask::rw-
other::r--

如此一来,用户zyq是可写可读的。群组jackuser是可读的。

【思考】
ACL提供了帐号及群组不同级别的访问控制,那么如果帐号的设置和群组的设置冲突了会怎样呢?网上找了好一会儿都没有相关信息,眼下暂时又没条件试。
可是想了想,是不是想太多了。。。这个根本不存在规则冲突的问题,只要用户符合任何一条规则,都给予授权,或者说以宽松的那个为准。
题外话,在MS中谈Linux/UNIX真是很蛋疼的一件事,不能查参数不能截图不能试验,还是要把环境搭起来才好~

原文地址:https://www.cnblogs.com/syjkfind/p/2781568.html