一,linux文件系统的ACL主要针对属主,属组,以及其他用户的r,w,x权限之外的权限进行设置。

   ACL可以针对单一用户、单一文件或目录来进行r,w,x的权限控制,对于需要特殊权限的使用状况

   有一定帮助。如,某一个文件,不让单一的某个用户访问。

1)ACL使用两个命令来对其进行控制


       getfacl:取得某个文件/目录的ACL设置项目


       setfacl:设置某个文件/目录的ACL设置项目


 setfacl 参数


        -m:设置后续acl参数


        -x:删除后续acl参数  (删除个别的,比如删除某个用户的acl)

   

        -b:删除全部的acl参数


        -k:删除默认的acl参数


        -R:递归设置acl,包括子目录


        -d:设置默认acl

例:在/opt下创建一文件r1,将其权限修改为777,并查看其默认ACL权限配置

124656744.jpg

由于上面我们设的权限为777,可以看到其它者的权限也是可读可写可执行。

       # getfacl   r1            //获得文件的ACL权限


   # file: r1                                //文件名


  # owner: root                             //属主


  # group: root                             //属组


  user::rwx                                //属主权限


  group::rwx                               //属组权限


  other::rwx                               //其它者权限

现在我们修改其ACL策略,使用用户zhangsan只有读取的权限

125804648.jpg#ll  r1 //可以看到权限的最后多了一个”+”号

user:zhangsan:rwx                           //可以看到zhangsan单独的权限为rwx

现在zhangsan用户,权限很大,测试一下。

131428872.jpg

zhangsan对r1有写的的权限,可以写,

下面liming对/opt/r1的acl权限为只读

132926537.jpg


user:liming:r--                           //可以看到zhangsan单独的权限为r--

下面测试一下

133852903.jpg

在写文件时,会出现-- 插入 -- W10: 警告: 正在修改一个只读文件。

写完也无法保存

134031664.jpg

除了对单个用户进行设置外,还可以对用户组、有效权限(mask)进行设置如对用户组设置:    g:[用户组]:[rwx]

注:有效权限(mask) 即用户或组所设置的权限必须要存在于mask的权限设置范围内才会生效

如上面的r1文件,liming已经有了可读权限,如果我们把它的有效权限修改为只有写权限,则设置的acl权限不在有效权限之内,则用户liming就不可能再查看r1文件中的内容了

134520178.jpg

setfacl -m m:w  r1            //设置有效权限为只写

mask::-w-                       //可以看到有效权限已经修改成功

135322445.jpg

已经不允许liming访问了

取消ACL

135753484.jpg

135849298.jpg