科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道WindowsNT和Linux的文件权限的区别

WindowsNT和Linux的文件权限的区别

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

先说说大家熟悉的Windows,对于WindowsNT,只要你对某个文件设置了所有人不可写的安全属性(也就是文件权限咯),无论在哪个文件夹中都是不可以删除的,不管他所在的文件夹的安全属性是什么。

作者:sheyuan 来源::ChinaITlab 2007年10月19日

关键字: 操作系统 区别 Linux WindowsNT

  • 评论
  • 分享微博
  • 分享邮件
 

先说说大家熟悉的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。

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章