1.suid
1. 普通用户可不可以修改密码?
答:是可以的,可以修改自己的密码
2. /etc/shadow 文件的作用是什么?
答:存储用户密码的文件
3. 普通用户是否可以修改/etc/shadow 文件?
答:不可以,因为这个文件对于普通用户来说,没有任何权限,所以不能读取,也不能写入。
4. 那么普通用户,为什么可以修改密码?
答:
①因为使用了passwd 这个命令
②passwd命令在属主权限位上,原本是x权限,变成了s权限
③s权限在属主权限位,又叫做SetUID权限,简称SUID
④作用:因为在使用有SUID权限的文件或命令时,会以该文件的属主身份去执行该命令。
SUID 作用详解
 
概念:只要一个命令文件在属主权限位上的x变成s的话,那么其它用户在执行这个命令文件时,就会以该命令文件的属主用户身份去执行。

此处的s表示当使用这个命令程序时,把当前用户当成文件的所属主,使用命令的时候,把当前用户当成文件的主人。
授权suid
方式:chmod u+s filename
实例:

2.sticky bit
(粘滞位)
具有写权限的目录,通常用户可以删除该目录中的任何文件,无论该文件的权限或拥有权。
在目录设置sticky位,只有文件的所有者或root可以删除该文件
sticky设置在文件上毫无意义
授权方式:
chmod o+t filename
chmod o-t filename
小问题:
权限中多了个t 是什么意思
除了文件夹所有者、超级管理员,其他人不能删除文件
3.ACL访问控制列表
实现灵活的权限管理 除了文件的所有者、所属组和其他人,可以对更多的用户设置权限
用法: setfacl [-bkndRLP] { -m|-M|-x|-X ... } file ...
 -m,       --modify-acl 更改文件的访问控制列表
 -M,       --modify-file=file 从文件读取访问控制列表条目更改
 -x,       --remove=acl 根据文件中访问控制列表移除条目
 -X,       --remove-file=file 从文件读取访问控制列表条目并删除
 -b,       --remove-all 删除所有扩展访问控制列表条目
 -k,       --remove-default 移除默认访问控制列表
           --set=acl 设定替换当前的文件访问控制列表
           --set-file=file 从文件中读取访问控制列表条目设定
           --mask 重新计算有效权限掩码
 -n,       --no-mask 不重新计算有效权限掩码
 -d,       --default 应用到默认访问控制列表的操作
 -R,       --recursive 递归操作子目录
 -L,       --logical 依照系统逻辑,跟随符号链接
 -P,       --physical 依照自然逻辑,不跟随符号链接
           --restore=file 恢复访问控制列表,和“getfacl -R”作用相反
           --test 测试模式,并不真正修改访问控制列表属性
 -v,       --version           显示版本并退出
 -h,       --help              显示本帮助信息
4.mask权限
mask只影响除所有者和other的之外的人和组的最大权限
mask需要与用户的权限进行逻辑和运算后,才能变成有效的权限
用户或组的设置必须存在与mask权限设定范围内才会生效
实例:
设置文件mask权限只有读
setfacl -m mask::r fl.txt