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

相关推荐