访问控制列表
应用场景,我有我所属目录的所有权限,我的开发组也有,但是我有一个朋友想要进我的目录参观,不能给所属也不能让他进组,需要一个后门这就是ACL访问控制列表。
首先要在挂载后面加上acl选项
可在mount -o remount,acl 也可在/etc/fstab表中改正重启
两个常用命令:
Getfacl查询和setfacl设置
Getfacl /data 查询data的权限
setfacl -m u:user:rwx /data
-m是修改acl信息每个都要加 -d是设置默认的acl信息递归目录
增加了acl权限后目录会在第十一位有一个特殊的 + 权限
-x是取消acl权限
setfacl -m u:user /data 注意后面不要权限了
加了d是有默认用户权限 可以在目录中有递归的acl权限
setfacl -m d:u:user:rwx /data
这个是指 有了这个权限目录所属者在底下在创建一个目录之后acl权限的用户依然可以继承上一层目录的权限,但是没有这个,所属这创建一个目录之后他不能在目录中有acl权限了。
Suid
SetUID(或者 s 权限):当一个具有执行权限的文件设置SetUID权限后,用户执行这个文件时将以文件所有者的身份执行。passwd命令具有SetUID权限,所有者为root(Linux中的命令默认所有者都是root),也就是说当普通用户使用passwd更改自己密码的时 候,那一瞬间突然 “灵魂附体” 了,实际在以passwd命令所有者root的身份在执行,命令执行完成后该身份也随之消失。
必须具备以下几个条件(前提):
只有可执行的二进制程序才可以设置SetUID
所有者必须对欲设置SetUID的文件具备 可执行(x) 权限
命令执行过程中,其它用户获取所有者的身份(灵魂附体)
SetUID具有时间限制,即完成该程序执行后就消失
使用touch命令演示:
以一个普通用户去创建文件将是root用户的所属文件
所以passwd就是root的文件
但是普通用户可以修改密码就是因为加了suid
但是仔细一想如果passwd是以root用户去执行这个命令的话
那一个普通用户可以修改另一个普通用户的密码呀
结果肯定是不能的因为有了pam加密
Sgid
针对文件:
可执行的二进制文件
命令执行者(即所属组)对该文件具备 x 权限
执行时,执行者被所属组灵魂附体
权限只在执行过程中有效
针对目录:
普通用户对目录具备r和x权限,才可以进入到该目录
普通用户在此目录中的有效组会变成此目录的所属组
如普通用户对该目录具备w权限,新建文件的所属组为该目录的所属组。
实例:如果一个公司有一个公共目录夹pub,所有的用户都要可以进来操作,但是如果有一个用户创建了一个目录aaa,所属用户和组就全是他自己的,其他人就无法访问了,这个时候可以在pub目录上设置一个sgid那么用户创建aaa 的时候,所属用户是他自己,但是所属组是这个公共目录夹的所属组。
粘贴位
像前面的的那个公共目录夹,如果底下的目录全是和前面一样的组一样的组权限,那么任何人可以删除任何一个另外的人的文件,所以需要给一个粘贴位
粘贴位只能针对目录
因为文件的删除是由上一级目录的写权限决定的
所以哪怕是自己创建的文件也不能删除。
如果给一个目录加了粘贴位那么目录下面的文件不能删除
粘贴位是在后面加了一个t
o+t
Usid =4 gsid=2 粘贴=1
也可以用数字决定权限。
Chmod 7777 /data
Sudo
1.用户执行sudu时,系统寻找/etc/sudoers文件,判断用户是否具备执行sudo的权限
2.确认执行权限后,让用户执行自身的密码
3.确认密码合法之后,开始执行后续的命令
4.Root执行sudo不需要密码
5.自身切换自身也不需要密码
配置文件/etc/sudoers
root ALL=(ALL:ALL) ALL
用户 server ip=(可切换的用户:组) 可执行的命令
用户前面加%是代表组/etc/lvm目录
依次是设置主机的别名 用户的别名 命令的别名
Umask
Umask是权限的取反,例如ldx用户umask为022
他创建的文件为:644 他创建的目录为:755
文件的执行文件会默认去除。
密码策略
/etc/login.defs设置的是用户账号限制的文件,但是该文件对root无效。如果在/etc/shadown文件中有相同的选项,后者优先。
用户密码有效的最长时间 用户修改密码的间距最短时间 密码过期的之前密码警告的天数,过期将密码关闭。
用户id的区间,还有其他的组的区间,密码长度以及umask等。
/etc/shadow文件
用户:密码:从1/1/1997开始到现在的天数:密码需要多少天之后才能修改(0任何时间可修改):密码多少天之后需要修改(1永远不修改):密码过期之前的警告天数(-1不警告):过期后要被禁用多少天(-1永远不会禁用):用户已禁用天数(-1启用):保留
/etc/passwd
用户:密码:uid:gid:用户别名:家目录:用户登录后使用的命令