您当前的位置:首页 > 计算机 > 系统应用 > Linux

linux下文件的特殊权限s和t

时间:03-05来源:作者:点击数:
s或S(SUID,Set UID):可执行的文件搭配这个权限,便能得到特权,任意存取该文件的所有者能使用的全部系统资源。请注意具备SUID权限的文件,黑客经常利用这种权限,以SUID配上root帐号拥有者,无声无息地在系统中开扇后门,供日后进出使用。

T或T(Sticky):/tmp和 /var/tmp目录供所有用户暂时存取文件,亦即每位用户皆拥有完整的权限进入该目录,去浏览、删除和移动文件。

先看看这两个文件的权限:

[root@localhost ~]#ls -ld /usr/bin/passwd /tmp

drwxrwxrwt 4 root root 4096 Jun 2 17:33 /tmp

-rwsr-xr-x 1 root root 22984 Jan 7 2007 /usr/bin/passwd

这里的s和t是针对执行权限来讲的。

这个s权限,是为了让一般使用者临时具有该文件所属主/组的执行权限。就比如/usr/bin/passwd在执行它的时候需要去修改/etc/passwd和/etc/shadow等文件,这些文件除了root外,其他用户都没有写权限,但是又为了能让普通用户修改自己的密码,只能时临时让他们具有root的权限。所以这个s权限就是用来完成这个特殊任务的。s权限只能应用在二进制的可执行文件上。

如果你不想让普通用户修改自己的密码,只需要

[root@localhost ~]#chmod u-s /usr/bin/passwd 或者

[root@localhost ~]#chmod 0755 /usr/bin/passwd

0755最前面的0表示不使用任何特殊权限,该位上的数字可以是0,1(--t),2(-s-),3(-st),4(s--),5(s-t),6(ss-),7(sst)

那个t权限只针对目录生效,它表示只能让所属主以及root可以删除(重命名/移动)该目录下的文件。比如/tmp目录本来就是任何用户都可以读写,如果别人可以任意删除(重命名/移动)自己的文件,那岂不是很危险。所以这个t权限就是为了解决这个麻烦的。下面举一个例子,说明一下这个权限的用法:

[root@localhost ~]# cd /tmp/

[root@localhost tmp]#mkdir test

[root@localhost tmp]#chmod 1777 test

[root@localhost tmp]#ls -ld test

drwxrwxrwt 2 root root 4096 Jun 2 18:10 test

[root@localhost tmp]#su test1

[test1@localhost tmp]$touch test/1.txt

[test1@localhost tmp]$ls -l test

total 4

-rw-r--r-- 1 test1 test 0 Jun 2 18:12 1.txt

[test1@localhost tmp]$ exit

[root@localhost tmp]# su www

[www@localhost tmp]$ls -l test/1.txt

-rwxrwxrwx 1 test1 test 6 Jun 2 18:12 test/1.txt

[www@localhost tmp]$ rm test/1.txt

rm: cannot remove `test/1.txt': Operation not permitted

提示不能删除1.txt

[www@localhost tmp]$ exit

[root@localhost tmp]#chmod -t test

去掉t权限。

[root@localhost tmp]# ls -ld test

drwxrwxrwx 2 root root 4096 Jun 2 18:13 test

[root@localhost tmp]# su www

[www@localhost tmp]$rm -f test/1.txt

再次删除,则删除成功。

[www@localhost tmp]$ls test/1.txt

ls: test/1.txt: No such file or directory

方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门