探索Windows文件系统的秘密

发表时间: 2022-12-03 19:40


0x01 文件系统概念

0x02 常见文件系统

FAT文件系统(windows)

NTFS文件系统(windows)

ExFAT(windows MACos linux)

HFS/HFS+(MAC OS专用)

EXT(3,4)(linux)

XFS(linux)

0x03 NTFS相对于FAT的优势

容错性

安全性(NTFS权限)

文件压缩

磁盘配额

0x04 NTFS权限应用规则

0x05 NTFS权限基本设置

0x06 实验练习

0x01 文件系统概念

文件系统是操作系统用于明确存储设备(常见的是磁盘,也有基于NAND Flash的固态硬盘)或分区上的文件的方法和数据结构,即在存储设备上组织文件的方法。操作系统中负责管理和存储文件信息的软件机构称为文件管理系统,简称文件系统。文件系统是硬盘空间存储数据的一套科学合理的存储和管理方法。

0x02 常见文件系统

FAT文件系统(windows)

​ FAT(File Allocation Table)文件系统诞生于1977年,它最初是为软盘设计的文件系统,但是后来随着微软推出dos和win 9x系统,FAT文件系统经过适配被逐渐用到了硬盘上,并且在那时的20年中,一直是主流的文件系统.(FAT16 32 64)

特点:

单个文件最大为4G

最大文件数量268,435,437

分区最大容量8TB

可在多种操作系统读写

NTFS文件系统(windows)

​ NTFS全称是New Technology File System,它是一种比FAT32功能更加强大的文件系统。

从windows 2000之后的windows系统的默认文件系统都是NTFS,而且这些windows系统只能够安装在NTFS格式的磁盘上。

特点:

理论上最大文件尺寸可达16EB-1KB,实际上有16TB-64KB(1EB = 1024PB 1PB = 1024TB)

操作系统支持大部分windows系统,Unix/Linux系统,Mac OS(在Mac OS 10.4+系统上,NTFS格式是只读的,即在Mac系统下,你只能从NTFS格式的磁盘上读取数据,而不能写入数据)

由于在Mac系统下,NTFS是只读的,所以要想在Mac下想要在NTFS格式的硬盘写入数据,要装一个插件Paragon NTFS,但不是太稳定

ExFAT(windows MACos linux)

​ ExFAT(Extended File Allocation Table)又叫FAT64,看名字就知道它是对FAT文件系统的扩展。

特点:

ExFAT是虽然也是微软开发的文件系统,但说它是windows下的文件系统并不合适,它是专门为闪存盘设计的文件系统,单个文件突破了4G的限制,而且分区的最大容量可达64ZB(比EB大一级的),建议512TB

ExFAT在windows,Linux以及Mac系统上,都可以读写,作为U盘或者是移动硬盘的格式还是比较合适的。

HFS/HFS+(MAC OS专用)

​ HFS全称叫分层文件系统(Hierarchical File System,HFS),诞生于1985年,最初被设计用于软盘和硬盘,同时也可以在在只读媒体如CD-ROM上见到。

EXT(3,4)(linux)

​ Ext3是一种日志式文件系统,其最大的特点就是:它会将整个磁盘的写入动作完整的记录在磁盘的某个区域上,以便有需要时回溯追踪。当在某个过程中断时,系统可以根据这些记录直接回溯并重整被中断的部分,重整速度相当快。

XFS(linux)

​ XFS文件系统是RHEL7系列的默认文件系统,目的是为了替代传统的EXT4文件系统.

特点:

数据完全性

采用XFS文件系统,当意想不到的宕机发生后,首先,由于文件系统开启了日志功能,所以你磁盘上的文件不再会意外宕机而遭到破坏了。不论目前文件系统上存储的文件与数据有多少,文件系统都可以根据所记录的日志在很短的时间内迅速恢复磁盘文件内容。

传输特性

XFS文件系统采用优化算法,日志记录对整体文件操作影响非常小。XFS查询与分配存储空间非常快。xfs文件系统能连续提供快速的反应时间。笔者曾经对XFS、JFS、Ext3、ReiserFS文件系统进行过测试,XFS文件文件系统的性能表现相当出众。

可扩展性

XFS 是一个全64-bit的文件系统,它可以支持上百万T字节的存储空间。对特大文件及小尺寸文件的支持都表现出众,支持特大数量的目录。最大可支持的文件大 小为263 = 9 x 1018 = 9 exabytes,最大文件系统尺寸为18 exabytes。

XFS使用高的表结构(B+树),保证了文件系统可以快速搜索与快速空间分配。XFS能够持续提供高速操作,文件系统的性能不受目录中目录及文件数量的限制。

传输带宽

XFS 能以接近裸设备I/O的性能存储数据。在单个文件系统的测试中,其吞吐量最高可达7GB每秒,对单个文件的读写操作,其吞吐量可达4GB每秒。

0x03 NTFS相对于FAT的优势

容错性

​ NTFS文件系统可以自动地修复磁盘错误而不会显示出错信息。

​ WindowsNT/2000/XP向NTFS分区中写入文件时,会在内存中保留文件的一份拷贝,然后检查,磁盘中写入的文件与内存中保留的拷贝是否一致。如果两者不一致,Windows就把相应的扇区标为坏扇区而不再使用它(即簇重映射),然后,用内存中保留的文件拷贝重新向磁盘上写文件。如果在读文件时出现错误,NTFS返回一个读错误信息,并告知相应的应用程序数据已经丢失。

安全性(NTFS权限)

​ NTFS有许多安全性能方面的选项,可以在本机上和通过远程的方法保护文件及目录。NTFS还支持加密文件系统EFS(Encrypting File System),可以阻止没有授权的用户访问文件。也可以通过设置NTFS,限制用户的访问。

文件压缩

​ NTFS支持文件压缩功能,用户可以选择压缩单个文件或整个文件夹。

磁盘配额

​ 磁盘配额功能允许系统管理员管理分配给各个用户的磁盘空间,合法用户只能访问属于自己的文件,Windows NT/2000/XP中的磁盘配额功能是基于用户和卷(Windows NT/2000/XP下文件系统以卷为单位划分,相当于Windows 95/98/Me下逻辑分区的概念)的所谓磁盘配额,就是管理员可以对本域中的每个用户所能使用的磁盘空间进行配额限制,即每个用户只能使用最大配额范围内的磁盘空间.

0x04 NTFS权限应用规则

默认继承

默认文件或是文件夹继承父级文件夹的权限。

权限不冲突累加

当一个用户同时有两个权限(同时属于两个组),且不冲突时,两个权限累加。

权限冲突,拒绝优先

当一个用户同时有两个权限(同时属于两个组),权限冲突时,拒绝权限生效。

特殊权限

读取权限的权限

更改权限的权限

取得所有权的权限

阻止继承

在Windows中用文件或文件夹的高级安全属性界面中可以阻止从父文件夹中继承的权限

强制继承

在Windows中文件夹的高级安全属性界面中可以设置子类强制继承父文件夹的权限

注:

强制继承和阻止继承在的生效取决于那个设置后被操作。

在Windows中文件或文件夹权限的设置对管理员无效,管理员可以强制获取权限。