Linux的权限非常重要,我们之前所说的几种权限中,并没有能针对一个用户或是一组用户单独进行设置,而ACL权限可以帮助我们实现这个功能,比如说有一个文件的所有者和所有组都是root,这个文件的权限是644,如何让other用户对这个文件单独进行写执行操作呢。

ACL权限的设置和查看

如果要使用ACL权限,首先要确定文件系统支持acl权限。使用tune2fs -l  /dev/sda2(/目录所在块),如果在Default mount options字段出现acl 就意味着文件系统支持acl。Centos7.6默认支持。

[root@localhost131 tmp]# tune2fs -l /dev/sda2
tune2fs 1.42.9 (28-Dec-2013)
Filesystem volume name:   <none>
Last mounted on:          /
Filesystem UUID:          b1ef1368-3350-42c9-9d3b-e3095bb399f4
Filesystem magic number:  0xEF53
Filesystem revision #:    1 (dynamic)
Filesystem features:      has_journal ext_attr resize_inode dir_index filetype needs_recovery extent 64bit flex_bg sparse_super large_file huge_file uninit_bg dir_nlink extra_isize
Filesystem flags:         signed_directory_hash 
Default mount options:    user_xattr acl //支持facl

  

⚪配置acl命令

setfacl  [选项]   u:用户名:权限  文件  (设置acl权限)

    u:用户名:权限      -------     u:tom:wx

                u::wx代表设置文件所有者的acl

选项:

  -m :设置acl

  -x :删除指定acl

  -b :删除所有acl

getfac 文件名       (查看acl权限)

例子;

  root用户新建文件aa查看基本权限

[root@localhost131 tmp]# ll | grep aa
-rw-r--r--. 1 root root        0 8月   2 10:22 aa  //对other用户只有r权限

  使用setfacl  -m 为tom用户设置acl权限,并用getfacl查看权限

[root@localhost131 tmp]# setfacl -m u:tom:wx aa  //为tom用户增加对aa文件写、执行权限
[root@localhost131 tmp]# getfacl aa  //查询aa的acl
# file: aa
# owner: root
# group: root
user::rw-
user:tom:-wx
group::r--
mask::rwx
other::r--

[root@localhost131 tmp]# setfacl -m u:xh:wx aa

 此时再用ls -l查看文件aa,发现基本权限最后多了1个+号,这是提醒我们此文件被设置了acl权限。

[root@localhost131 tmp]# !1033
ll | grep aa
-rw-rwxr--+ 1 root root        0 8月   2 10:22 aa

 删除指定的acl

[root@localhost131 tmp]# setfacl -x u:tom aa  //删除tom用户的acl
[root@localhost131 tmp]# getfacl aa 
# file: aa
# owner: root
# group: root
user::rw-
user:xh:-wx
group::r--
mask::rwx
other::r--

 删除所有acl

[root@localhost131 tmp]# setfacl -b aa  //删除所有acl
[root@localhost131 tmp]# getfacl aa  //查询aa的acl权限
# file: aa
# owner: root
# group: root
user::rw-
group::r--
other::r--

[root@localhost131 tmp]# ll | grep aa  //ls命令查询,发现+号没有了 
-rw-r--r--. 1 root root        0 8月   2 10:22 aa