zl程序教程

您现在的位置是:首页 >  后端

当前栏目

NTFS权限详解(与坑人的地方)

权限 详解 地方 NTFS
2023-09-11 14:19:53 时间

文件

读取:查看文件内容和文件的相关权限
写入:在查看的基础上,可以修改文件权限
读取和执行:在读取的基础上可以执行权限
修改:在写入的基础上,可以修改文件相关权限,删除文件
完全控制:完全控制的权限

针对文件的权限没有好强调的,因为它针对的仅仅是单个文件

目录


列出文件内容:列出该目录的内容
读取:读取该目录的内容,读取该目录的相关权限
写入:向该目录写入内容,但是不能对内容进行查看
读取和执行:和读取一样
修改:读取该目录的内容,修改该目录的权限,删除权限
完全控制:完全控制

列出文件内容的权限不会被继承!!!

权限的继承

我们在创建文件或者文件夹的时候,其实默认都是没有任何权限的,我们在某个磁盘下创建的内容的权限默认是继承磁盘权限的,如下图所示:

可以看到硬盘作为权限的顶级来源,它没有任何可以继承的对象! 

如果我们在创建文件夹或者文件后,将其继承的权限全部删除后,我们会发现它们啥权限都没有了,如下图所示:

默认情况下,我们无论是创建文件夹还是文件都会从父目录继承权限,不然这些内容创建后却没有任何的权限那不是毫无用处。目录和文件继承到的权限有些区别,目录创建后会继承所有的权限设置,但是文件创建后没有create owner的权限,如下图所示:

 

 可以看见文件并没有继承creator owner的权限,因为fuck用户我在父亲目录仅仅设置了列出目录内容的权限,所以文件也不会继承fuck用户的列出目录内容的权限,所以文件的权限如上图所示

 

坑爹的地方

有的时候我们想要创建一个文件夹,只能让普通用户列出文件夹内容和写入内容,我们创建了一个文件夹后并设置了这两个权限后就以为万事大吉了。下面是坑爹的点:

点1:Users组的权限叠加

我们创建了一个普通用户后,默认是加入到Users组中的,所以如果你仅仅在父亲目录设置了列出文件夹内容和写入权限还是不足够的,因为Users组的权限叠加到普通用户后,依然具有我们限制的权限之外的权限。

点2:CreatorOwn用户权限的叠加

CreateOwn默认指的是创建该文件夹的用户,当我们创建了一个文件夹后会继承CreateOwn的权限,而且是完全控制,所以我们如果没有在父目录将该权限去除,那么我们在该目录下创建的子目录都会带有这个CreatorOwn的权限,而且是完全控制权限。那么该用户就可以删除自己创建的东西。也可以在自己创建的目录下任意地创建内容。

总结:

1、无论是文件夹还是文件都会从上级对象复制权限到自身

2、文件夹继承的权限和文件继承的权限不同,文件没有继承Creator Owner的权限

注意点:

一定要注意是否有其他用户和组的权限对我们想要约束的对象提供了额外的权限