首页 > 代码库 > ACL权限设置

ACL权限设置

有时候一个文件的拥有者,所属组,其他人三种角色对文件的权限并不能完全满足、适合某一个用户所需要对文件的
操作权限,这时就需要对特殊的用户单独设置权限,下面举例说明
查看home目录中vampire目录的访问权限

1 [root@LAMP home]# getfacl vampire
2 # file: vampire
3 # owner: vampire
4 # group: vampire
5 user::rwx
6 group::---
7 other::---

可以看到只有用户vampire(root除外)才对自己家目录有rwx权限.所属组和其他人没有任何权限.
现在有这样一个用户,只能让他进入vampire目录,查看里面有哪些文件和文件内容,但是不能让他创建文件
可以先找一个存在的用户试试,看看能不能对/home/vampire目录做任何操作

1 [vampire@LAMP home]$ tail -3 /etc/passwd
2 named:x:25:25:Named:/var/named:/sbin/nologin
3 vampire:x:501:501::/home/vampire:/bin/bash
4 iaknehc:x:502:502::/home/iaknehc:/bin/bash
5 
6 [iaknehc@LAMP home]$ cd vampire
7 -bash: cd: vampire: Permission denied

可以看到当切换到iaknehc时,用户对vampire目录没有任何权限,这里只是测试了一下其他人对vampire的
权限,其实所属组的用户也一样,可以自己试试.所以我们需要一种更灵活的权限设置方法.这就是acl.

 1 [vampire@LAMP home]$ setfacl -m u:iaknehc:rx vampire    //将目录vampire的rx权限分配给用户iaknehc
 2 [vampire@LAMP home]$ getfacl vampire
 3 # file: vampire
 4 # owner: vampire
 5 # group: vampire
 6 user::rwx
 7 user:iaknehc:r-x
 8 group::---
 9 mask::r-x
10 other::---

下面切换到iaknehc用户试试权限是否生效

 1 [vampire@LAMP home]$ su - iaknehc
 2 Password: 
 3 [iaknehc@LAMP ~]$ cd ..
 4 [iaknehc@LAMP home]$ cd vampire
 5 [iaknehc@LAMP vampire]$ ll       //iaknehc可以进入vampire目录,并浏览目录中的文件
 6 total 4
 7 -rw-rw-r-- 1 vampire vampire 12 May 16 23:21 vampire
 8 [iaknehc@LAMP vampire]$ cat vampire    //iaknehc可以查看文件类容
 9 just a test
10 [iaknehc@LAMP vampire]$ touch test    //iaknehc不能在vampire目录中创建文件
11 touch: cannot touch `test: Permission denied

可以看到针对目录vampire设置的acl权限已经生效.

ACL权限设置