Red Hat Linux 7 下 ACL权限基本设置
一 ACL简介:
访问控制列表(Access Control List,ACL) 是路由器和交换机接口的指令列表,用来控制端口进出的数据包。ACL适用于所有的被路由协议,如IP、IPX、AppleTalk等。
二 如何查看权限列表:
[linuxidc@foundation2 Desktop]$ ls -l file
-rw-rw-r-- . 1 root kiosk 0 Nov 7 09:19 file
如果此位为 “.” 代表这位没有权限列表
如果此为 “+” 代表有权限列表存在
那么我们首先给 file 文件加上权限列表
并且通过 ll 命令发现已经有了权限列表
则可以通过 getfacl 命令查看更加详细的权限
[root@localhost Desktop]# setfacl -m u:student:rwx file
[root@localhost Desktop]# ll
total 4
-rw-rwxr--+ 1 root root 0 Nov 9 11:11 file
[root@localhost Desktop]# getfa
getfacl getfattr
[root@localhost Desktop]# getfacl file
# file: file
# owner: root
# group: root
user::rw-
user:student:rwx
group::r--
mask::rwx
other::r--
那么这些分别代表什么呢
[root@localhost Desktop]$ getfacl file
# file: file 文件名称
# owner: root 文件所有人
# group: kiosk 文件所有组
user::rw- 文件用户权限
user:student:rwx 文件特定用户权限
group::rw- 所有组权限
mask::rwx 特定用户生效的最大权限
other::r-- 其他人权限
三 如何设定 acl 权限
由上图 有设定方式,故下面是我的一些设定方式的总结
setfacl -m <u|g|m>:<username|groupname>:权限 filename acl设定方式
setfacl -b filname 删除文件权限列表,一下子就全删了,+号都没有了
setfacl -x <u|g>:<username|groupname> filename 删除特定权限的特定用户或组
四 acl 默认权限
默认权限之针对目录使用,是让目录中所有新建文件都继承此权限
setfacl -m d:<u|g|o>:<username|group>:rwx directory
设定默认权限,这个权限对目录本身不生效,只对里面内容生效(新建的)
[root@localhost /]# mkdir /xp
[root@localhost /]# setfacl -m d:u:student:rwx /xp
[root@localhost /]# getfacl /xp
getfacl: Removing leading '/' from absolute path names
# file: xp
# owner: root
# group: root
user::rwx
group::r-x
other::r-x
default:user::rwx
default:user:student:rwx
default:group::r-x
default:mask::rwx
default:other::r-x
[root@localhost xp]# touch file
[root@localhost xp]# ll
total 4
-rw-rw-r--+ 1 root root 0 Nov 9 15:25 file
[root@localhost xp]# cat file
[root@localhost xp]#
由上面可知道other对于它只有r权限
那么接下来我们用student 用户试试有没有刚才设定的权限(切记,权限加了之后才新建的file)
[root@localhost xp]# su - student
Last login: Mon Nov 9 15:24:51 EST 2015 on pts/0
[student@localhost ~]$ cd /xp
[student@localhost xp]$ echo hello,world >file
[student@localhost xp]$ cat file
hello,world
显然已经成功,不过只是对新建的文件产生作用,以前存在的不受影响。
setfacl -x d:<u|g|o>:<username|group> directory
撤销目录中某条默认权限
setfacl -b directory
删除文件权限列表
[root@localhost xp]# setfacl -x d:u:student file
[root@localhost xp]# getfacl file
# file: file
# owner: root
# group: root
user::rw-
user:student:rwx #effective:rw-
group::r-x #effective:r--
mask::rw-
other::r--
[root@localhost xp]# setfacl -b file
[root@localhost xp]# ll
total 4
-rw-r--r--. 1 root root 12 Nov 9 15:30 file