想学习chmod,必须先要搞清楚setUID、setGID,SBIT
1.setUID
功能:
1)只有可以执行的二进制程序才能设定SUID权限
2)命令执行者要对该程序拥有x(执行)权限
3)命令执行者在执行该程序的时候获得该程序文件属主的身份,也就是在执行程序过程中,命令执行者被程序属主灵魂附体了一样
**4)**setUID权限只在该程序执行过程中有效,也就是说身份改变只在程序执行过程中有效
注意:
1)关键目录应严格控制 写 权限,比如: / 下
2)用户的密码设置要严格遵守密码三原则
3)对系统中默认应该具有的setUID权限的文件作一列表,定时检查有没有这之外的文件被设置了setUID权限
2.setGID
setGID对目录的作用:
1)普通用户必须对此目录拥有r和x权限,才可以进入此目录
2)普通用户在此目录中的有效组会变成此目录的属组
3)若普通用户对目录拥有w权限时,新建的文件的默认属组是这个目录的属组
setGID对文件的作用:
1)只有可执行的二进制程序才能设置SGID权限
2)命令执行者要对该程序拥有x权限
3)命令执行者在执行过程中,组身份升级为该程序文件的属组
4) setGID权限同样只在该程序执行过程中有效,也就是说组身份改变只在程序执行过程中有效
3.SBIT
1)粘着位目前只对目录有效
2)普通用户对该目录拥有w和x权限,即普通用户可以在此目录拥有写入权限
3)如果没有粘着位,因为普通用户拥有w权限,所以可以删除此目录下所有文件,包括其他用户建立的文件,一但赋予了粘着位,包括root可以删除所有文件,普通用户就算拥有w权限,也只能删除自己建立的文件,但是不能删除其他用户建立的文件
所以SBIT是为了防止管理混乱
4.chmod命令
4 为SUID 2 为SGID 1 为SBIT
设定权限:
chmod 4[2][1]755 文件/目录 , 只要在原先基础上再加上一个数字
chmod u+s[g+s][o+t] 文件/目录
取消权限:
chmod 755 文件/目录 去掉数字再chage一遍,就是取消
chmod u-s[g-s][o-t] 文件/目录