SUID_SGID_T详解

来源:互联网 发布:怎么屏蔽淘宝短信 编辑:程序博客网 时间:2024/06/03 21:27

Part I:t/T bit

 

t/T含意sticky (save text image)。

1>普通文件的t/T bit权限:
可执行文件的共享权限。
可以配置其t/T bit给一个可执行文件,从而使系统在此可执行文件结束后仍在swap中保留其程序代码一段时间。这样,下次有其它用户运行此程序时,系统不必从文件系统再加载此文件,而直接从swap加载使用就行了,从而提高了程序的执行速度。
由于当今复杂的存储控制技术的实现,主存已不是系统运行速度的瓶颈,所以对普通文件使用t/T bit已经很少了,主要是对目录的t/T bit的实现。


2>目录的t/T bit权限:
默认情况下,如果用户对某一目录有写权限,则它可以删除任意用户的文件(包括root的)。
当目录被配置t/T bit时,此目录下的文件只能由其所有者、此目录所有者或是root修改或是删除。
我们共享文件的tmp目录正是如此:
drwxrwxrwt 104 bin bin 14336 Jun 7 00:59 /tmp


3>链接文件的t/T bit权限:
默认Red Hat Linux不支持此权限,对所有对链接的权限操作都直接作用到链接目的文件。但其它UNIX系统支持此权限设置(如HP-UX),通过使用lchmod命令。
配置t/T bit的链接文件又被称为transition link。transition link比一般的链接文件执行的速度要快,因为指向物理数据的指针被直接存放于inode中,而不像普通链接一样存放于另一个分配的存储单元,然后再进行递归指向。
HP-UX中的一个例子(HP-UX 10.0 and later):
lr-xr-xr-t 1 root sys 8 Jun 7 01:00 /bin -> /usr/bin



Part II:SUID bit

 

当一个可执行文件被设置了SUID bit时,任何有其执行权限的用户都能以其所有者的权限执行此程序。


Part III:SGID bit

 

1>目录的SGID bit权限
将一个目录设置SGID bit权限,则任何用户在其下建立的文件/文件夹都会使用此文件所有者的组做为所有组。
[sense@ssn vir_s]$ ll
total 799740
drwxrwsrwx 2 sense sense       4096 Sep 26 16:31 tmp
[sense@ssn vir_s]$ cd tmp/
[sense@ssn tmp]$ su -
Password:
[root@ssn ~]# cd /home/sense/vir_s/tmp/
[root@ssn tmp]# touch r111
[root@ssn tmp]# mkdir r222
[root@ssn tmp]# ll
total 20
-rw-r--r-- 1 root  sense    0 Sep 26 17:15 r111
drwxr-sr-x 2 root  sense 4096 Sep 26 17:15 r222

2>一般文件的SGID bit权限
等待以后测试……




Part IV:文件所有者强行改写


默认如果用户对一个目录有写权限,则它可以修改/删除此目录下的所有文件或目录,无论文件所有者是谁。
强行写入一个其它用户的文件,会将其所有者及所有组改为写入者。
[sense@ssn vir_s]$ ll
total 799748
-rw-rwS--- 1 root  root          11 Sep 26 17:23 r111
[sense@ssn vir_s]$ vi r111        //使用:wq!强行写入
[sense@ssn vir_s]$ ll
total 799748
-rw-rwS--- 1 sense sense          9 Sep 26 17:25 r111

原创粉丝点击