文档归属的局限性
- 任何人只属于三种角色:属主 属组 其他人
- 无法实现更精细的控制
acl访问策略
- 能够对个别用户个别组设置独立的权限
- 大多数挂载ext3/4,xfs文件系统默认已支持
Usage: setfacl [-bkndRLP] { -m|-M|-x|-X ... } file ...
setfacl [选项] u:用户名:权限 文件
setfacl [选项] g:组名:权限 文件
常用命令选项
-m 定义一条acl策略
-x 清除指定的acl策略
-b 清楚所有已设置的acl策略
-R 递归设置acl策略
创建 一个目录,用普通用户查看显示权限拒绝
[xp@test3 ~]$ cd /xp
-bash: cd: /xp: Permission denied
[xp@test3 ~]$
修改权限
[root@test3 ~]# ll /xp -d
drwx------ 2 root root 6 Jun 15 22:45 /xp
[root@test3 ~]# setfacl -m u:xp:rx /xp
[root@test3 ~]# ll /xp -d
drwxr-x---+ 2 root root 6 Jun 15 22:45 /xp
此时xp用户就能进入了
[xp@test3 ~]$ cd /xp
-bash: cd: /xp: Permission denied
[xp@test3 ~]$ cd /xp
[xp@test3 xp]$
[xp@test3 xp]$ getfacl /xp
getfacl: Removing leading '/' from absolute path names
# file: xp
# owner: root
# group: root
user::rwx
user:xp:r-x
group::---
mask::r-x
other::---
删除刚刚添加的权限
[root@test3 ~]# setfacl -x u:xp /xp
[root@test3 ~]#
验证
[xp@test3 ~]$ cd /xp
-bash: cd: /xp: Permission denied
[xp@test3 ~]$
清楚这个目录的所有acl策略
[root@test3 ~]# setfacl -b /xp/
单独拒绝一个用户不让他访问
[root@test3 ~]# setfacl -m u:xp:--- /xp/
[root@test3 ~]#
递归设置acl策略
[root@test3 ~]# setfacl -Rm u:xp:rx /xp
文件权限
r w x
4 2 1
特殊权限
sgid suid sticky
sgid
占用属组的x位
显示为 s 或者 S 取决于属组是否有x权限 有执行权限是 s 没有执行权限是 S 最后 s 权限才有效,S是无效的
对目录有效
在一个具有sgid的权限的目录下,新建的文件会自动继承此目录的属组身份
[root@test3 ~]# ll
total 4
-rw-------. 1 root root 1260 Dec 26 15:17 anaconda-ks.cfg
[root@test3 ~]# chmod g+s anaconda-ks.cfg
[root@test3 ~]#
[root@test3 ~]# ll
total 4
-rw---S---. 1 root root 1260 Dec 26 15:17 anaconda-ks.cfg
他会抢占 属组的 x权限
sticky
粘滞位,
占用其他 other 的x位
显示为 T或者t,取决于其他人是否有x权限
适用目录,用于限制用户滥用写入权
设置了t权限下,即使用户有写入权限,也不能删除或改名其他用户文档
[root@test3 ~]# chmod -R o+t /shr/
[root@test3 ~]# mkdir /shr/xp1
suid
占用属主的x权限
显示为s 或者 S ,取决于属主是否有 x权限
仅对可执行的程序有意义
当其他用户执行带suid的权限时,具有此程序属主的身份和相应的权限
sticky 此时就无法写入了