1. 特殊权限及文件系统访问控制列表
引入:
备注:红色表示临时调用
特殊权限有三个
SUID:运行某程序时,相应进程的属主是程序文件自身的属主,而不是启动者,启动者可以临时拥有root权限
格式: chmod u+s FILE
chmodu-s FILE
注意:如果FILE本身原有执行权限,则SUID显示为s,负责显示S
举例:
注意:发现一个文件的属主是root,又给了他SUID,这带来的风险是极大的
如果这个文件其他人还有编辑权限就会更加麻烦,随便往里面编辑一条命令,比如rm –rf /.,系统就完蛋了
另:
备注:大家会发现默认就有s权限,因为普通用户也能改自己的密码
SGID:运行某程序时,相应进程的属组是程序文件自身的属组,而不是启动者所属的基本组
格式:chmod g+sFILE
chmodg-s FILE
注意:如果FILE本身原来就有执行权限,则SUID显示为s,否则显示为S
举例场景:
公司内部有个开发团队developteam
有三个人hadoop,hbase和hive,他们有共同的使用目录/tmp/project
要求三个用户都能在这个目录下创建文件
由于三个用户创建的文件都属于同一个项目,所以三个用户都能查看和编辑对方的文件
切换到hadoop用户
备注:发现属组没有写的权限
退出至root用户添加developteam组的写入权限
备注:为防止用户都可以创建文件,但是不能相互查看修改,该如何做呢?
备注:此时组有了s权限,下面分别使用hadoop和hbase登录创建文件查看结果
备注:这样就能实现三个用户都能查看和编辑对方的文件
注意:现在出现一个很大问题,三个用户都能查看和编辑对方的文件
但是还能删除对方文件
备注:b.hadoop文件没有了
Sticky:
解释:在一个公共目录,每个人都可以创建文件,删除自己的文件,但是不能删除别人的文件
格式: chmod o+t DIR(针对目录)
Chmod o-t DIR(针对目录)
举例:
备注:还原刚被hbase删除的文件
备注:现在有了t位
备注:不能删除别人的,但是可以删除自己的文件
总结:
使用方式:三位可以一起使用
chmod1755 /back/test //包含Sticky
chmod2755 /back/test //包含SGID
chmod3755 /back/test //包含SGID和Sticky
chmod4755 /back/test //包含SUID
chmod5755 /back/test //包含SUID和Sticky
chmod6755 /back/test //包含SUID和SGID
chmod7755 /back/test //包含SUID,SGID和Sticky