吹静静

欢迎QQ交流:592590682

一、ACL权限简介与开启

1、ACL权限简介

我们都知道一个文件默认只有 所有者,所属组,其他人三个对象,现在我有一个av文件,我可以对这个文件执行 rwx 操作,我想让我舍友可以对他有 rwx 权限,我就可以把他们放到文件所属组,除了我和我的舍友,其他人对这个文件都没有任何权限。现在隔壁老王想看,我想给他一个 r-x 权限,但是原有的三个对象都明显不可能让他加入,这时候就需要引入ACL权限。

Linux 下用户对文件的操作权限有 r-读, w-写, x-可执行三种,而对linux 下的文件而言,用户身份分为:所有者, 所属组, 其它人, 且文件的所有者,所属组都只能是一个,所以在对文件分配用户的使用权限时,只能对这三种身份进行分配rwx 权限.Linux 主要作为服务器系统使用,用户众多.所以在实际使用场景中,这三种身份并不能很好地实现资源权限分配问题,所以就有了ACL权限. ACL 权限就是为了解决linux 下三种身份不能满足资源权限分配需求的问题的.

setfacl  [选项]  文件目录名
选项:         

  -m   设定ACL权限
       -x     删除指定用户,用户组的ACL权限,针对用户,用户组
       -b    删除文件所有的ACL权限,针对文件
       -d    设定默认ACL权限
       -k    删除默认ACL权限
       -R   递归设置ACL权限

2、查看分区ACL权限是否开启

[root@localhost ~]# dumpe2fs -h /dev/sda5

>>> # dumpe2fs命令是查询指定分区详细文件系统信息的命令

选项:

  -h  仅显示超级块中信息,而不是显示磁盘块组的详细信息

3、临时开启分区ACL权限

[root@localhost ~]# mount -o remount,acl /

# 重新挂载根分区,并挂载加入acl权限

4、永久开启分区ACL权限

[root@bogon ~]# vi /etc/fstab

# 这个配置文件不能乱改,改错一个地方系统可能就会崩溃

[root@bogon ~]# mount -o remount  /

# 重新挂载文件系统或重启系统,使修改生效

二、查看与设定ACL权限

1、查看ACL权限

[root@bogon ~]# getfacl   文件名
# 查看 acl 权限

2、设定ACL权限的命令

[root@bogon ~]# setfacl  选项  文件名

选项:

  -m   设定ACL权限
       -x     删除指定用户,用户组的ACL权限,针对用户,用户组
       -b    删除文件所有的ACL权限,针对文件
       -d    设定默认ACL权限
       -k    删除默认ACL权限
       -R   递归设定ACL权限

(1)给用户设定ACL权限

操作命令:

[root@bogon ~]# useradd cjj

[root@bogon ~]# groupadd stu

[root@bogon ~]# mkdir av

[root@bogon ~]# chown cjj:stu av

[root@bogon ~]# chmod 770 av

[root@bogon ~]# usersdd lw

[root@bogon ~]# setfacl -m u:lw:rx av    (u:给用户设定)

# 给用户lw赋予r-x权限,使用 “u:用户名:权限”  格式

看看acl的作用:

(2)给用户组设定ACL权限

[root@bogon ~]# groupadd tgoup2

[root@bogon ~]# setfacl -m g:tgoup2:rx av    (u:给用户设定)

# 为组tgoup2分配ACL权限。使用“g:组名:权限” 格式

三、最大有效权限与删除ACL权限

1、最大有效权限

mask 是用来指定最大有效权限的。如果我给用户赋予了ACL权限,是需要和mask的权限“相与”擦能才能得到用户的真正权限。

什么是相与呢?

A B and
r r r
r - -
- r -
- - -

 

 

 

 

 

 

lw 权限:r-x 与  mask 权限:rwx   相与的结果就是最终权限:r-x

修改最大有效权限

[root@bogon ~]# setfacl -m m:rx 文件名
# 设定mask权限为 r-x 。使用 “m:权限” 格式

注:一般情况下是不会用到mask的,特殊情况需要限定最高权限时才用。

2、删除ACL权限

[root@bogon ~]# setfacl -x u:用户名  文件名
# 删除指定用户的ACL权限

[root@bogon ~]# setfacl -x g:组名  文件名

# 删除指定用户组的ACL权限

 

[root@bogon ~]# setfacl -b  文件名

# 删除文件所有的ACL权限

四、默认ACL权限和递归ACL权限

1、递归ACL权限

递归是父目录在设定ACL权限时,所有的子文件和子目录也会拥有相同的ACL权限。(对已经有的文件)

[root@bogon ~]# setfacl -m u:用户名:权限  -R  目录名

[root@bogon home]# setfacl -m u:lw:rx -R  /home/av/

注:容易权限溢出,因为目录可以赋予执行权限,但是目录里面的普通文件也会递归上 x 权限。

2、默认ACL权限

默认ACL权限的作用是如果给父目录设定了默认ACL权限,那么父目录中所有的子文件都会继承目录中的ACL权限。(对这条命令执行后建立的文件)

[root@bogon ~]# setfacl  -m  d:u:用户名:权限  目录名

 

posted on 2018-03-09 20:39  吹静静  阅读(206)  评论(0编辑  收藏  举报