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

Linux之文件的访问控制(acl列表)

2017-07-22 20:28 736 查看
acl释义

什么是acl?

acl全称(access control),其指代特殊用户对特殊文件有特殊权限。

下面是一个简单的举例。

比如说,你有三个用户,分别是“tecmint1”、“tecmint2”和“tecmint3”。每个用户都有一个共同的用户组,如“acl”。用户“tecmint1”希望,只有“tecmint2”用户才能读取和访问归“tecmint1”用户所有的文件,其他人都无权访问该文件。

访问控制列表(ACL)让我们可以做到同样这点。这些ACL让我们可以为某个用户、用户组或不在用户组列表中的任何用户的任何组授予权限。

以上来源于http://netsecurity.51cto.com/art/201405/440508.htm

当某文件存在权限列表时,其文件读写权限的末尾会出现一个“+“,这表示,通过ls -l 看到的权限是不真实的。此时,可通过getfacl命令显示文件的ACL规则。

命令格式:getfacl filename

[root@foundation32 ~]# ls -l /mnt/file
-rw-r--r--. 1 root root 0 Jul 22 21:52 /mnt/file

[root@foundation32 ~]$ getfacl /mnt/file
getfacl: Removing leading '/' from absolute path names
# file: mnt/file
# owner: root
# group: root
user::rw-
group::r--
other::r--


这里可以看到,其他人对/mnt/file文件仅拥有read权限。用户leo欲对/mnt/file进行写操作,系统显示不可行。

[root@foundation32 ~]# su - leo
Last login: Sat Jul 22 21:49:44 CST 2017 on pts/0
[leo@foundation32 ~]$ vim /mnt/file

以下来自vim编辑器的提醒:
"/mnt/file" [readonly] 1L, 4C
-- INSERT -- W10: Warning: Changing a readonly file
E45: 'readonly' option is set (add ! to override)


现在,切换回root用户设置用户leo对/mnt/file拥有rws权限。

命令格式:setfacl -m <u|g>:<username|groupname>:权限  文件|目录
-m   #设定
u    #用户
g    #组


[leo@foundation32 ~]$ logout
[root@foundation32 ~]# setfacl -m u:leo:rwx /mnt/file


查看/mnt/file文件属性,发现读写权限的末尾出现一个“+“。

[root@foundation32 ~]# ls -l /mnt/file
-rw-rwxr--+ 1 root root 0 Jul 22 21:52 /mnt/file

[root@foundation32 ~]# getfacl /mnt/file
getfacl: Removing leading '/' from absolute path names
# file: mnt/file
# owner: root
# group: root
user::rw-
user:leo:rwx
group::r--
mask::rwx
other::r--


再次切换回leo用户,发现可以正常对/mnt/file进行写操作了。

以下是删除及关闭acl列表的命令格式。

//删除列表中的用户或者组
setfacl -x <u|g>:<username|groupname>   文件|目录
//关闭列表
setfacl -b 文件|目录


acl 默认权限设置

当我们需求某个目录对于student可写,并且目录中新建的子目录对student也可写时,就要设定默认权限。

setfacl -m d:u:student:rwx  /westos


注:默认权限只对目录中新建立的文件或者目录生效,对已经建立的文件无效,对于目录本身也无效
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: