ACL策略管理、总结和答疑
ACL策略管理:
-
文档归属的局限性:
-
任何人只属于三种角色:属主、属组、其他用户
-
针对特殊的人实现更精细的控制
-
-
acl访问策略作用:
-
能够对个别用户、个别组设置独立的权限
-
大多数挂载的EXT3/4、XFS文件系统默认已支持
-
-
setfacl命令
-
格式:setfacl [选项] u:用户名:权限 文件...
setfacl [选项] g:组名:权限 文件...
-
-
常用命令选项
-
-m: 修改ACL策略
-
-x:清除指定的ACL策略
-
-b:清除所有已设置的ACL策略
-
-R:递归设置ACL策略
-
#体验ACL策略的作用例子 [root@localhost ~]# mkdir /NB [root@localhost ~]# echo 五元>/NB/rmb.txt [root@localhost ~]# cd /NB/ [root@localhost NB]# ls rmb.txt [root@localhost NB]# cat rmb.txt 五元 [root@localhost NB]# groupadd caiwu [root@localhost NB]# chmod o=--- /NB [root@localhost NB]# ls /NB rmb.txt [root@localhost NB]# ls -ld /NB drwxr-x---. 2 root root 21 8月 13 17:51 /NB [root@localhost NB]# chmod g+w /NB [root@localhost NB]# ls -ld /NB drwxrwx---. 2 root root 21 8月 13 17:51 /NB [root@localhost NB]# useradd dc 断开重连切换到dc用户 [root@localhost ~]# su dc [dc@localhost root]$ cd /NB bash: cd: /NB: 权限不够 断开重连切换到root用户,为dc用户添加ACL策略 [root@localhost NB]# setfacl -m u:dc:rx /NB 断开重连切换到dc用户 [dc@localhost root]$ cd /NB [dc@localhost NB]$ ls rmb.txt [dc@localhost NB]$ cat rmb.txt 五元 发现ACL策略生效,可以查看 [dc@localhost NB]$ getfacl /NB #这个命令可以查看该文件的ACL策略 getfacl: Removing leading '/' from absolute path names # file: NB # owner: root # group: root user::rwx user:dc:r-x group::rwx mask::rwx other::--- #可以继续添加ACL策略用户 [root@localhost ~]# setfacl -m u:lisi:rx /NB [root@localhost ~]# getfacl /NB #查看ACL策略 getfacl: Removing leading '/' from absolute path names # file: NB # owner: root # group: root user::rwx user:lisi:r-x user:dc:r-x group::rwx mask::rwx other::--- #还可以用ACL策略,单独对一个用户设置禁用权限 [root@localhost ~]# mkdir /nsd19 [root@localhost ~]# chmod 777 /nsd19 [root@localhost ~]# ls -ld /nsd19 drwxrwxrwx. 2 root root 6 8月 14 09:20 /nsd19 [root@localhost ~]# setfacl -m u:lisi:--- /nsd19 [root@localhost ~]# su lisi [lisi@localhost root]$ cd /nsd19 bash: cd: /nsd19: 权限不够 [root@localhost ~]# getfacl /nsd19 #查看ACL策略 getfacl: Removing leading '/' from absolute path names # file: nsd19 # owner: root # group: root user::rwx user:lisi:--- group::rwx mask::rwx other::rwx
linux中判断用户具备的权限:
1.首先查看该用户或组是否有ACL测量
2.查看用户1,对于该数据所处的身份,顺序所有者>所属组>其他人,原则是匹配及停止
3.查看相应身份的权限位
ACL策略练习
[root@localhost ~]# mkdir /nsd22 [root@localhost ~]# setfacl -m u:dc:rx /nsd22 [root@localhost ~]# setfacl -m u:zhangsi:rwx /nsd22 [root@localhost ~]# setfacl -m u:lisi:rx /nsd22 [root@localhost ~]# setfacl -m u:gelin01:rwx /nsd22 [root@localhost ~]# getfacl /nsd22 getfacl: Removing leading '/' from absolute path names # file: nsd22 # owner: root # group: root user::rwx user:lisi:r-x user:zhangsi:rwx user:gelin01:rwx user:dc:r-x group::r-x mask::rwx other::r-x [root@localhost ~]# setfacl -x u:zhangsi /nsd22 #删除指定用户ACL [root@localhost ~]# getfacl /nsd22 getfacl: Removing leading '/' from absolute path names # file: nsd22 # owner: root # group: root user::rwx user:lisi:r-x user:gelin01:rwx user:dc:r-x group::r-x mask::rwx other::r-x [root@localhost ~]# setfacl -x u:dc /nsd22 #删除指定用户ACL [root@localhost ~]# getfacl /nsd22 getfacl: Removing leading '/' from absolute path names # file: nsd22 # owner: root # group: root user::rwx user:lisi:r-x user:gelin01:rwx group::r-x mask::rwx other::r-x [root@localhost ~]# setfacl -b /nsd22 #清除目录所有的ACL策略 [root@localhost ~]# getfacl /nsd22/ getfacl: Removing leading '/' from absolute path names # file: nsd22/ # owner: root # group: root user::rwx group::r-x other::r-x
补充内容:
ACL策略-黑名单的使用(单独拒绝某些用户)
[root@localhost ~]# setfacl -m u:lisi:--- /home/public [root@localhost ~]# getfacl /home/public
-R:递归设置ACL策略
[root@localhost ~]# setfacl -Rm u:dc:rwx /opt/aa #目录以及下面的文件都设置ACL策略