出处:http://yuzhou68.blog.163.com/blog/static/189290358200821782653181/
解释S位和T位:su位可以使程序以文件所属者身份执行,sg位可以使程序以文件所属组身份执行,t位可以阻止具有某目录写权限的普通用户删除其中的文件。
[root@localhost /]# ls -l /bin/bash
-rwx
-----------------------------------------------------------------------------------
[root@localhost /]# chmod u+s /bin/bash
[root@localhost /]# ls -l /bin/bash
-rws
s位的说明:
如上图所示:
一般来说,一个运行中的程序为运行这个程序的用户所拥有。 但如果该程序是suid/guid程序,则运行的程序则为文件所有者拥有,运行中的程序在程序运行期间拥有文件所有者的全部权限。 如果一个普通用户运行了一个属于根用户的带s标志的程序,那么,该程序将不考虑用户权限,而是自动拥有在系统中读/写任何文件及目录的特权。
这样做,有一定的好处,但一般我们不建议采用s位,要严格设置这种权限,避免破坏性。
比如:若你的suid程序是/bin/bash的话,则会导致严重后果,一个普通用户若在某个短时间取得过root权限,他就能设置一个suid程序/binb/bash来取得根特权。 (若拿它来破坏别人的系统,后果自负)
# cp /bin/bash /home/jephe/.backdoor
# chmod 4755 /home/jephe/.backdoor
这样当攻击者执行了/home/jephe/.backdoor后就得到了根特权,可用id命令显示suid=0
t位的说明:
t位就比较好理解了。如下图所示:
[root@localhost root]# ls -l 4444.jpg
-rw-r--r-- 1 root root 550349 3?? 14 14:31 4444.jpg
[root@localhost root]# chmod o+t 4444.jpg
[root@localhost root]# ls -l 4444.jpg
-rw-r--r-T
程序的t属性
目录的t属性
如/tmp目录就是drwxrwxrwt