day14-20200616
p50.ACL权限-默认的ACL权限与递归
子目录和父目录权限一致,递归。设置父目录子目录同样拥有相同的权限。
【setfacl -m m:rx -R /tmp/day13】递归设置权限
注意-R只能放在后面才可以。
命令执行之后,如果新建了文件,那权限还会在吗?不会。
【setfacl -m d:u:用户名:权限 -R 文件名】设置默认的acl
只针对的新增的
这两个命令都只针对目录!
p51.文件特殊权限-setuid
普通用户执行拥有suid的权限的时候,可以暂时的拥有root的操作权限。程序执行的过程中才拥有,程序执行结束,所拥有的权限也会消失。
最常见的passwd,会在原来的rwx中出现一个【s】,就代表这个文件拥有uid权限
shadow文件是什么权限都没有的,但是超级用户是可以操作的。如果赋予它uid权限,普通用户也可以直接操作这个文件了/
如何设定suid的权限
【chmod 4755 文件名】4代表suid
【chmod u+s 文件名】
目录需要严格的控制权限,suid权限。
文件需要拥有可执行权限,如果没有就会S报警,证明这个命令是无效的命令。
修改文件的时候 命令也是需要suid 才可以去编辑文件 虽然文件是有suid的但是也是不可以编辑的。
设置suid需要小心使用!!是不安全的!尽量不要使用,除了默认的文件。
检测出来系统中默认拥有suid的文件 避免出现问题。
等到讲解了shell脚本的时候 可以写一个脚本自动去查询suid
p52.文件特殊权限-setgid
只有拥有可执行的二进制程序的文件或者目录才可以
命令执行者需要拥有可执行权限
locate 搜索命令 他是去数据库搜索的
locate 是拥有sgid的权限的。
普通用户在执行locate的命令的时候,locate拥有sgid的权限,拥有可执行权限的普通用户暂时变身为slocate组,它是对locate拥有权限的,同时也对mlocate.db拥有查看的权限。
sgid针对文件和作用和suid是差不多的。
但是针对于目录的时候。
目录拥有sgid,
【chmod 2755 文件名】2代表组
【chmod g+s 文件名】
正式工作环境中作用不是很大。
p53.文件特殊权限-sticky bit
粘着位,只对目录有用
普通用户对该目录拥有w和x权限,也就是可以写入。
粘着位,可以保护普通用户创建的文件不被其他普通用户删除。超级用户是可以操作所有文件的。
/tmp 默认的权限是777
1777 给了粘着位
设置黏着位
【chmod 1755 目录名】
【chmod o+t 目录名】
删除黏着位
【chmod 777 目录名】
【chmod o-t 目录名】
设置和删除都只能超级用户操作
总结一下:
4755 suid 二进制文件 不安全 不需要自己赋值
2755 sgid 二进制文件和目录 不安全 不需要自己赋值
1755 sbit 目录 相对安全 可以自己赋值
7755 同时拥有以上的权限,没有很大的作用
以上三个权限对超级用户都是没有作用的,只是针对普通用户
p54.文件系统属性chattr权限
【chattr [+-=] [选项] 文件或者目录名 】
【+】增加权限
【-】删除权限
【=】等于某权限
针对所有用户生效,包含超级用户root
选项
【chattr +i 文件名】针对文件,设置用户为只读文件。
【chattr +i 目录】针对目录,不可以新建文件和删除文件,只能修改文件的内容。
防止误操作的时候,这个命令还是比较有用的哦!!
【chattr +a 文件名】针对文件,只能增加,不可以修改内容和删除内容。
【chattr +a 目录】针对目录,可以新建文件,但是不可以删除和修改已存在文件。
重要 请记住!!
p55.系统命令sudo权限
root把本来只能超级用户执行的命令赋予普通用户执行。
sudo的操作对象是系统命令
【visudo】
用户名 被管理主机的地址=(可使用的身份) 授权命令(绝对路径)
【fengyarong ALL=/sbin/ reboot】
【%yongshougong ALL=/sbin/reboot】
【su 用户名】
【sudo -l】查看命令
【sudo /sbin/reboot】
不要给普通用户 操作命令 例如 vim