您的位置:首页 > 运维架构 > Linux

ACL权限实例讲解之基础一

2016-07-25 20:02 302 查看
本文讲解Linux系统中的ACL权限。(只针对文件,针对目录的讲解放在下一篇)

首先,我们要明白什么是ACL权限。ACL的英文说法是”access control list”,翻译为中文是”访问控制列表”的意思。其实说的就是某一特定用户对某一特定文件的操作权限。下面用1个实际的例子讲解一下:

怎样使得qs这个用户对root用户的acltest1文件有读写权限(qs这个用户和root用户不在同一个用户组里边,也就是说,对于acltest1这个文件来说,qs用户属于”others”)?

或许你会说,这不很简单嘛!将acltest1这个文件的”ugo”三者中的”o”赋予”rw”权限(即让”others”可以读写)不就可以了么。

这样做固然可以。但是,这样做的话,其他用户像zhangsan lisi等等不都可以对acltest1这个文件进行读写了吗?这与我们的设想是不一样的(我们只想qs这个用户对root用户的acltest1文件有读写权限,并没有说其他用户也可以)。

那么,针对这样的问题,就用到了我们的ACL权限。

[qs@qs ~]$ su - #切换到root用户
Password:
[root@qs qs]# touch acltest1 #使用root用户创建acltest1文件
[root@qs qs]# ll !$ #查看acltest1文件的属性
ll acltest1
-rw-r--r-- 1 root root 0 Jul 23 11:01 acltest1
[root@qs qs]# cat !$ #查看acltest1文件的内容(刚刚创建,是空的)
cat acltest1
[root@qs qs]# getfacl !$ #查看acltest1文件的ACL权限(未设置)
getfacl acltest1
# file: acltest1
# owner: root
# group: root
user::rw-
group::r--
other::r--

[root@qs qs]# exit #切换到qs用户
exit
[qs@qs ~]$ whoami
qs
[qs@qs ~]$ echo hello >> acltest1 #qs用户向acltest1文件写东西(失败!!!)
bash: acltest1: Permission denied
[qs@qs ~]$ su - #切换到root用户
Password:
[root@qs qs]# setfacl -m u:qs:rw acltest1 #设定ACL权限!!!
[root@qs qs]# exit #切换到qs用户
exit
[qs@qs ~]$ echo hello >> acltest1 #设定ACL权限之后,qs用户向acltest1文件写东西(成功!!!)
[qs@qs ~]$ cat acltest1
hello
[qs@qs ~]$ getfacl acltest1 #查看acltest1文件的ACL权限
# file: acltest1
# owner: root
# group: root
user::rw-
user:qs:rw- #这里就是ACL权限
group::r--
mask::rw-
other::r--

[qs@qs ~]$


好了,本文暂时讲这么多,这也是ACL权限比较基础和常用的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  linux acl