一个文件都有一个所有者,表示该文件是谁创建的.同时,该文件还有一个组编号,表示该文件所属的组,一般为文件所有者所属的组.如果是一个可执行文件,那么在执行时,一般该文件只拥有调用该文件的用户具有的权限.而setuid,setgid可以来改变这种设置.
1.chmod u+s用法:
setuid:设置使文件在执行阶段具有文件所有者的权限.典型的文件是 /usr/bin/passwd.如果一般用户执行该文件,则在执行过程中,该文件可以获得root权限,从而可以更改用户的密码.
chmod u+s temp — 为temp文件加上setuid标志.(setuid只对文件有效)
2.chmod g+s用法:
setgid:该权限只对目录有效.目录被设置该位后,任何用户在此目录下创建的文件都具有和该目录所属的组相同的组.
chmod g+s tempdir — 为tempdir目录加上setgid标志 (setgid只对目录有效)
3.chmod o+t用法:
sticky bit:该位可以理解为防删除位.一个文件是否可以被某用户删除,主要取决于该文件所属的组是否对该用户具有写权限.如果没有写权限,则这个目录下的所有文件都不能被删除,同时也不能添加新的文件.如果希望用户能够添加文件但同时不能删除文件,则可以对文件使用sticky bit位.设置该位后,就算用户对目录具有写权限,也不能删除该文件.
chmod o+t temp — 为temp文件加上sticky标志 (sticky只对文件有效)