传统权限模型缺点:

传统的UGO(user、group、other)权限模型无法对应复杂的权限设置需求,如对于一个文件只能设置一个组,并且对改组进行权限控制,但是如果该文件有多个组对其进行访问时,并且都要权限限制时,传统UGO模型就无法满足需求了。

ACL(ACCESS CONTROL LIST):

ACL是一种高级权限机制,允许我们对文件或文件夹灵活的、复杂的权限限制;

ACL在挂载文件的时候需要开启ACL功能:mount -o acl /dev/sdb /mnt(在创建新分区并挂载)
ACL允许针对不同用户或组对同一文件或文件夹进行权限设置,不收UGO 限制;

查看一个文件/文件夹的acl权限设置:
[root@localhost /]# getfacl wxl/
# file: wxl/
# owner: root
# group: root
user::rwx
group::r-x
other::r-x
针对用户对文件ACL设置;
[root@localhost wxl]# setfacl -m u:wxl:rwx wxl //u(user):wxl(文件):权限
[root@localhost wxl]# getfacl wxl 
# file: wxl
# owner: root
# group: root
user::rw-
user:wxl:rwx //wxl具有读写执行权限
group::r--
mask::rwx
other::r-
针对组设置:setfacl -m g:wxl:rw wxl
删除acl设置
setfacl -x u:wxl wxl
[root@localhost wxl]# getfacl wxl 
# file: wxl
# owner: root
# group: root
user::rw-
group::r--
mask::r--
other::r--

事例:

 组 用户  
 training josn、liqi
 markert bob、lady
 manager alice、steve
 boss snake

要求各部门、员工建立行对应的文件夹,其要求如下;
1.所有目录文件保存在统一的文件夹下;
2.每个组拥有独立的文件夹;
3.不同部门之间不可访问各自的文件夹;
4.每个员工在所部门下拥有所属文件夹;
5.同部门员工可以查看各自文内容但不可以修改只有用户自己能修改自己的文件
6.boss组用户均可以访问各部门文件,但不能修改;
如果用传统UGO是实现不了目前的事例的需求的;
首先完成第一二步
[root@localhost ~]# mkdir work
[root@localhost ~]# cd work
[root@localhost work]# mkdir training 
[root@localhost work]# mkdir market
[root@localhost work]# mkdir manage
[root@localhost work]# ls
manage  market  training
[root@localhost work]#实现第三步
[root@localhost work]# chgrp training training/
[root@localhost work]# chgrp market market/
[root@localhost work]# chgrp manage manage/
root@localhost work]# chmod o-rwx training/
[root@localhost work]# chmod o-rwx market/
[root@localhost work]# chmod o-rwx manage/
[root@localhost work]# ll
total 12
drwxr-x---. 2 root manage   4096 Mar 24 06:09 manage
drwxr-x---. 2 root market   4096 Mar 24 06:09 market
drwxr-x---. 2 root training 4096 Mar 24 06:09 training
实现第四步:
[root@localhost work]# chmod g+s training/
[root@localhost work]# chmod g+s market/
[root@localhost work]# chmod g+s manage/
实现第五步
[root@localhost training]# mkdir josn^C
[root@localhost training]# mkdir liqi^C
[root@localhost training]# chown josn josn/^C
[root@localhost training]# chown liqi liqi/^C
[root@localhost training]# ll
total 8
drwxr-sr-x. 2 josn training 4096 Mar 24 06:23 josn
drwxr-sr-x. 2 liqi training 4096 Mar 24 06:23 liqi
后两个组同上操作
实现第六步
[root@localhost work]# setfacl -m g:boss:rx training/
[root@localhost work]# getfacl training/
# file: training/
# owner: root
# group: training
# flags: -s-
user::rwx
group::r-x
group:boss:r-x
mask::r-x
other::---
其余两文件夹也是这么操作的;
这样的这个事例就完成了