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