Linux权限管理——set uid、set gid、stricky bit(比较危险的操作)
setuid
用户在执行具有suid权限的可执行文件时,身份发生转化,暂时成为该文件的所有者,执行完毕后身份再切换回来
1)该文件是一个可执行二进制程序
2)用户对该文件有执行权限
3)执行完毕后身份还原
setuid的设定方法
chmod 4755
chmod u+s
setuid的取消方法
chmod 755
chmod u-s
说明:
/bin/passwd
普通用户可以执行该命令修改密码,我们知道密码是要写入到/etc/shadow文件中的,而该文件的权限是000,所以passwd具有suid权限,所以普通用户能够执行该命令,将密码写入到/etc/shadow文件中(普通用户身份切换为root)
如果将vi命令赋有suid权限,那么执行用户将可以修改任何文件(危险!)
setgid
setgid既可以对二进制文件有效,也可以对目录有效
对二进制文件(与setuid类似)
对目录
用户对目录有r和x权限
用户在进入到该目录后,所属组变为该目录的所属组
如果用户对该目录有w权限,则在该目录下创建的文件的所属组是该目录的所属组
setgid的设定方法
chmod 2777
chmod g+s
setgid的取消方法
chmod 777
chmod g-s
stricky bit
粘着位
只针对目录有效,用户对目录有w和x权限
用户对目录有w权限,如果没有粘着位,那么用户可以删除该目录下的所有文件,如果设置粘着位,那么该用户只能删除自己创建的文件,对于其他用户创建的文件不能删除。
stricky bit设定方法
chmod 1777
chmod o+t
取消方法
chmod 777
chmod o-t