- 论坛徽章:
- 0
|
在Linux/Unix下,有一种可执行文件被setUid,这使得任意使用者在执行该文件时,都绑定了文件拥有者的权限。setUid文件通常用来提升使用者的权限.最有代表性的su命令.普通用户可以可以执行该命令,使自己升级为root。setUid命令的用法是:
chmod 4755 your_program
setGid 文件和setUid文件非常类似,它使得这使得任意使用者在执行该文件时,都绑定了文件所有组的权限.单独setGid的文件非常少用,通常都是即setUid又setGid。不过和您猜想的可能有点不同。setUid+setGid通常并不是用来提升权限的,而是为了绑定某个特殊用户及其组的特殊权限,例如qmail 的外围软件vpopmail,就使用了一个setUid+setGid的程序vchkpw来校验用户名和密码。这个道理和Apache常常以nobody用户运行一样。其目的是为了更加安全。
setGid 命令的用法为
chmod 2755 your_program
通常使用命令
chmod 6755 yourprogram
来使得某可执行程序同时setUid和setGid
全能的root用户当然可以任意setUid和setGid。但尚方宝剑不能用来假传圣旨,普通用户只能给属于自己的文件配置setUid或setGid。由于setUid或setGid文件会使普通用户提升权限,谨慎的系统管理员通常会留意系统中有setUid或setGid文件的变化。减少安全隐患。
在Linux下,/tmp是一个存放临时文件的目录,要求是对所有用户可写。但每个用户都只能删除自己拥有的文件。这种情况下,就可以把目录加一个粘着位。
[root@yaoyao /]# ls -l |grep tmp
drwsrwsrwt 9 root root 4096 8月7 10:50 tmp
注意第是个字符"t",它代表了这个目录被设置了粘着位。
我们自行建立一个abc的目录,使之具有和/tmp相同的特点
chmod 777 abc
chmod +t abc
上述的个两个命令组合等同于下边的一个命令:
chmod 1777 abc
用ls –l 看abc 目录的属性如下:
[root@yaoyao test]# ls -l
总用量 4
drwsrwsrwt 2 root root 4096 8月 7 11:32 abc
和/tmp目录相同的需求往往在ftp服务器的upload 目录中也存在。可以用相同的方式处理。
本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u1/43550/showart_373011.html |
|