您的位置:首页 > 运维架构 > Linux

关于Linux系统中文件或目录的s、t权限位的说明

2012-07-29 20:19 459 查看
出处:http://yuzhou68.blog.163.com/blog/static/189290358200821782653181/

 

解释S位和T位:su位可以使程序以文件所属者身份执行,sg位可以使程序以文件所属组身份执行,t位可以阻止具有某目录写权限的普通用户删除其中的文件。

 

 

[root@localhost /]# ls -l /bin/bash 

-rwxr-xr-x    1 root     root       626028 2003-02-11  /bin/bash 

----------------------------------------------------------------------------------- 

[root@localhost /]# chmod u+s /bin/bash 

[root@localhost /]# ls -l /bin/bash 

-rwsr-xr-x    1 root     root       626028 2003-02-11  /bin/bash 
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    1 root     root       550349  3?? 14 14:31 4444.jpg 

   程序的t属性表示粘着位,即告诉系统在程序完成后在内存中保存一份运行程序的备份,如该程序常用,可为系统 节省点时间,不用每次从磁盘加载到内存。由本人注明:是保存在虚拟内存中,而不是物理内存中。 

   目录的t属性,设置了目录的T属性后1000,由只有该目录的所有者及root才能删除该目录, 

    如/tmp目录就是drwxrwxrwt 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  linux 磁盘