文件访问控制列表
1、为了更直观的看到ACL访问控制列表对文件权限控制的强大效果,因此先切换到普通用户后尝试进入到root超级用户的家目录中:
[root@linuxprobe ~]# su - linuxprobe
Last login: Sat Mar 21 16:31:19 CST 2017 on pts/0
[linuxprobe@linuxprobe ~]$ cd /root
-bash: cd: /root: Permission denied
[linuxprobe@linuxprobe root]$ exit
2、setfacl命令用于增加或者修改ACL规则,格式为:"setfacl [参数] 文件名称"。
ACL提供的是在所有者、所有组、其他人的读写执行权限外的特殊权限控制,使用setfacl命令可以让咱们能够针对单一用户或用户组、单一文件或目录来进行读写执行权限的控制,其中对于目录文件需要使用递归-R参数,对普通文件需要使用-m参数,而如果想要删除某个文件的访问控制策略的话可以使用-b参数,于是快来设置下用户在/root目录上面的权限吧:
[root@linuxprobe ~]# setfacl -Rm u:linuxprobe:rwx /root
[root@linuxprobe ~]# su - linuxprobe
Last login: Sat Mar 21 15:45:03 CST 2017 on pts/1
[linuxprobe@linuxprobe ~]$ cd /root
[linuxprobe@linuxprobe root]$ ls
anaconda-ks.cfg Downloads Pictures Public
[linuxprobe@linuxprobe root]$ cat anaconda-ks.cfg
[linuxprobe@linuxprobe root]$ exit
是不是觉得效果很酷呢?但是又遇到了一个小问题——怎么样去查看文件上面有那些ACL策略呢?常用的ls命令是看不到访问控制列表信息的,但是却可以看到文件的权限最后一个点(.)变成了加号(+),而这就意味着这个文件已经被设置有了ACL访问策略啦。现在是不是感觉学得越多,越不敢说自己精通于Linux系统了呢?这么一个不起眼的点(.)竟然还意味着这么一种重要的权限呢。
[root@linuxprobe ~]# ls -ld /root
dr-xrwx---+ 14 root root 4096 May 4 2017 /root
3、getfacl命令用于显示文件的ACL规则,格式为:"getfacl 文件名称"。
在Linux系统中的命令就是这么又可爱又好记,想要设置ACL访问策略的话就是setfacl命令,而查看ACL访问策略的话就是getfacl命令。使用getfacl命令能够显示出在文件上设置的所有访问策略规则信息。
[root@linuxprobe ~]# getfacl /root
getfacl: Removing leading '/' from absolute path names
# file: root
# owner: root
# group: root
user::r-x
user:linuxprobe:rwx
group::r-x
mask::rwx
other::---