• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

WindowsNT和Linux的文件权限一个区别

发布: 2007-7-01 23:30 | 作者: admin | 来源: | 查看: 10次 | 进入软件测试论坛讨论

领测软件测试网    先说说大家熟悉的Windows,对于WindowsNT,只要你对某个文件设置了所有人不可写的安全属性(也就是文件权限咯),无论在哪个文件夹中都是不可以删除的,不管他所在的文件夹的安全属性是什么。
   当大家习惯了Windows的安全属性设置后,形成一个观念,文件是否可以删除是取决于这个文件的安全属性。我本来也有这个概念。
   然后我们来看看日益增多的Linux系统。我用的是RedHat和红旗Linux,应该其他Linux也一样。
   如果在Linux中有一个目录假定为 share (权限 drwxrwxrwx,即任何人完全控制),他的下面有一个文件 amtr,假设这个文件是某个用户写给root的一个message,他不想让别人看到文件的内容,于是把 amtr 的权限设置为 -rw-------,这样应该差不多了吧——如果另一个用户在 share 目录执行cat amtr就会显示Permission denied(没有权限)。
   但是,如果另一个用户在 share 目录下执行 rm amtr,你说会有什么结果——amtr不见了。更坏的,别的用户可以任意改名。如执行 mv amtr rootTMD,呵呵,这样root肯定会看。
   究其原因,是因为Linux把文件的i-nod信息全都交给了目录管理。包括文件存不存在、文件名是什么、文件存放在磁盘哪里等信息。只要你有这个目录的写权限,就可以删除目录下的任意文件(注:这里的文件不包括目录)和更改目录下的任意文件的文件名(注:包括目录)。
   特别的,对于目录,如果你这个目录只是一个空目录的话,就相当于一个文件,完全可以删除。但是因为Linux不能删除一个非空的目录。只要你的目录别人没有权利写且目录内有别人没有权限写的文件,那就不能删除你的目录(执行 "rm -r 目录名" 不是把目录从当前目录一点截断,而是用递归逐个删除目录内容,所以没办法删除),最多改个名字。
   大家应该可以看到/tmp的权限是 drwxrwxrwt ,t的意思是只有创建者可以修改。原来我以为这样设的原因是不让别人把tmp这个目录给删掉,把这个目录设成 o+t 的原因还有不让你删除别人不给删但是又在这个目录下的东西。
   所以在Linux中要小心不要把你的重要文件放在任何人完全控制的目录里。即使这个文件的权限是0。

文章来源于领测软件测试网 https://www.ltesting.net/


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备10010545号-5
技术支持和业务联系:[email protected] 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网