1. 特殊权限及文件访问控制列表
1. 特殊权限及文件访问控制列表
引入:
# ls –l `which passwd`
特殊权限有三个
SUID:
解释:运行某程序时,相应进程的属主是程序文件自身的属主,而不是启动者(启动者可以临时拥有root权限)
chmod u+s FILE
chmod u-s FILE
注意:如果FILE本身原来就有执行权限,则SUID显示为s(小写),否则显示为S(大写)
案例:
备注: 当我们发现一个文件属主是root时,又给了他SUID这时候会给这个文件带来危险,如果还有其他人还有编辑权限就会更加麻烦。
附加:
因为普通用户也能自己改密码
实例:写了一个脚本,如果需要获取系统属性,此时必须要有s权限。以前网站后台用perl语言写的脚本都需要有s权限获取信息,这样的网站很容易被入侵。
SGID:
解释:运行某程序时,相应进程的属组是程序文件自身的属组,而不是启动者所属的基本组
格式:chmod g+s FILE
chmodg-s FILE
注意: 如果FILE本身原来就有执行权限,则SUID显示为s(小写),否则显示为S(大写)
实例:
有三个人hadoop,hbase和hive,他们有共同的使用目录/tmp/project要求三个用户都能在这个目录下创建文件由于三个用户创建的文件都属于同一个项目,所以三个用户都能查看和编辑对方的文件。
如何来实现?
问题:三个用户都能查看和编辑对方的文件,但还能删除对方文件,该如何解决?
这就用到了下面的sticky
Sticky:
解释:在一个公共目录,每个人都可以创建文件,删除自己的文件,但是不能删除别人的文件
格式:chmod o+t DIR(针对目录)
chmodo-t DIR(针对目录)
案例:还接着上面的
备注:不能删除别人的,但是可以删除自己的文件。
以上的问题就解决了