免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 955 | 回复: 0
打印 上一主题 下一主题

linux强制位与冒险位 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-07-28 21:30 |只看该作者 |倒序浏览
目录也是一种文件 .
目录上的读写执行权限与普通文件有所不同:
读:用户可以读取目录内的文件
写:单独使用没有作用。与执行权限连用可以在目录内添加与删除文件。
执行:用户可以进入目录,调用目录内的资料
***     除了读写执行权限以外,ext2,ext3文件系统还支持强制位(setuid 和setgid)与冒险位(sticky)的特别权限。 
***     针对u,g,o,分别有set uid,set gid,及sticky。 
***     强制位与冒险位添加在执行权限的位置上。
如果该位置上原已有执行权限。则强制位与冒险位以小写字母的方式表示,否则,以大写字母表示。 
***     set uid与set gid在u和g的x位置上各采用一个s,sticky使用一个t。 
***      
*** 默认情况下,用户建立的文件属于用户当前所在的组。 
*** 目录上设置了setgid,表示在此目录中,任何人建立的文件,都会属于目录所属的组。 
***  
*** 默认情况下,如果一个目录上有w和x权限,则任何人可以在此目录中建立与删除文件。 
*** 一旦目录上设置了冒险位,则表示在此目录中,只有文件的拥有者、目录的拥有者与系统管理员可以删除文件。 
*** 在可执行文件上,用户可以添加set uid和set gid。 
*** 默认情况下,用户执行一个指令,会以该用户的身份来运行进程。 
*** 指令文件上的强制位,可以让用户执行的指令,以指令文件的拥有者或所属组的身份运行进程。 
*** 用户可以用chmod指令来为文件设置强制位与冒险位。 
–       set uid:chmod u+s 文件名 
–       set gid:chmod g+s 文件名 
–       sticky:chmod o+t 文件名 
*** 强制位与冒险位也可以通过一个数字加和,放在读写执行的三位数字前来指定。 
–       4(set uid) 
–       2(set gid) 
–       1(sticky) 
设置s u i d  /    g u i d 
命令                      结果                 含义 
chmod 4755            -rwsr-xr-x                 suid、文件属主具有读、写和执行的权限,所有其他用户具有读和执行的权限 
chmod 6711            -rws--s--x                 suid、sgid、文件属主具有读、写和执行的权限,所有其他用户具有执行的权限 
chmod 4511            -rwS--x—x               suid、文件属主具有读、写的权限,所有其他用户具有执行的权限 
上面的表中有具有这样权限的文件:rwS --x -- x,其中S为大写。它表示相应的执行权限位并未被设置,这是一种没有什么用处的suid设置可以忽略它的存在。 
注意,chmod命令不进行必要的完整性检查,可以给某一个没用的文件赋予任何权限,但 chmod 命令并不会对所设置的权限组合做什么检查。因此,不要看到一个文件具有执行权限,就认为它一定是一个程序或脚本。 
关于linux下粘贴位(sticky位)
要删除一个文件,你不一定要有这个文件的写权限,但你一定要有这个文件的上级目录的写权限。也就是说,你即使没有一个文件的写权限,但你有这个文件的上级目录的写权限,你也可以把这个文件给删除,而如果没有一个目录的写权限,也就不能在这个目录下创建文件。
如何才能使一个目录既可以让任何用户写入文件,又不让用户删除这个目录下他人的文件,sticky就是能起到这个作用。stciky一般只用在目录上,用在文件上起不到什么作用。
在一个目录上设了sticky位后,(如/home,权限为1777)所有的用户都可以在这个目录下创建文件,但只能删除自己创建的文件(root除外),这就对所有用户能写的目录下的用户文件启到了保护的作用。
------------------------------------------------------------------------------------------------------------------------
针对u,g,o,分别可设 set uid,set gid,及sticky(粘滞位)。
强制位与冒险位添加在执行权限的位置上。如果该位置上原已有执行权限。则强制位与冒险位以小写字母的方式表示,否则,以大写字母表示。
set uid与set gid在u和g的x位置上各采用一个s,sticky使用一个t。
suid/sgid: 意味着如果某个用户/组 对属于自己的程序设置了这种权限,那么其他用户在执行这程序时也会具有其文件拥有者/组 相应权限。 
sticky: 默认情况下,如果一个目录上有w和x权限,则任何人可以在此目录中建立与删除文件。但是如果目录上设置了冒险位,则表示在此目录中,只有文件的拥有者、目录的拥有者与系统管理员可以删除文件。
               

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u3/100589/showart_2011126.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP