Windows文件权限管理详解
Windows文件权限管理详解
在Windows操作系统中,权限管理是确保系统安全的重要措施之一。本文将详细介绍Windows文件权限管理的相关知识,包括NTFS权限、Windows账户类型、基本权限和高级权限、权限配置规则等内容,并提供具体的权限修改和恢复方法。
NTFS权限
对于存储在NTFS分区中的每一个文件或文件夹,都会有一个对应的访问控制列表(ACL),ACL中包括可以访问该文件或文件夹的所有用户账户、用户组以及访问类型。
在ACL中,每一个用户账户或用户组都对应一组访问控制项(Access Control Entry,ACE),ACE用来存储特定用户账户或用户组的访问类型。权限的适用主体只针对数据,由数据的权限设置来决定哪些用户账户可以访问。
当用户访问一个文件或文件夹时,NTFS文件系统首先会检查该用户所使用的账户或账户所属的组是否存在于此文件或文件夹的ACL中。如果存在,则进一步检查ACE,然后根据ACE中的访问类型来分配用户的最终权限。如果ACL中不存在用户使用的账户或账户所属的组,则拒绝该用户访问此文件或文件夹。
对于用户账户和用户组,Windows 10使用安全标识符(Security Identifier, SID)对其进行识别,每一个用户账户或用户组都有其唯一的SID。即便是删除一个账户,然后重新创建同名账户,其SID也不同。可以使用whoami命令行工具查看SID,在命令提示符中输入whoami /all命令,即可查看计算机所有用户账户或用户组的SID以及其他信息。
通过ACL、ACE、SID等安全功能,Windows 10可以很好地管理权限设置,不至于造成权限混乱。
Windows账户
Windows 10包括如下几种账户。每种账户都是其特定的使用环境:
Administrator账户:超级系统管理员账户,默认禁用。默认情况下使用该账户登录操作系统后,可以不受UAC管理,以管理员身份运行任何程序、完全控制计算机、访问任何数据、更改任何设置。鉴于此账户的特殊性,除非有特殊要求,不建议启用此账户。
管理员账户:此账户可以使用操作系统中的大部分应用程序,以及更改不影响其他用户或操作系统安全的系统设置选项。
Guest账户:来宾账户,默认禁用。来宾账户属于受限账户,适合在公用计算机上使用。
HomeGroupUser$账户:家庭组用户账户,可以访问计算机的家庭组的内置账户,用于实现家庭组简化、安全的共享功能。在创建家庭组后,此账户将被创建及启用。关闭家庭组后此账户就会被删除。
TrustedInstaller账户:TrustedInstaller为虚拟账户。默认情况下,所有系统文件的完全控制权限都属于该账户。如果需删除操作系统文件,操作系统就会要求用户提供TrustedInstaller权限。
Administrators组:Administrators组成员包含所有系统管理员账户。通常使用Administrators组对所有系统管理员账户的权限进行分配。
Users组:Users组的成员包括所有用户账户。通常使用Users组对用户的权限设置进行分配。
SYSTEM账户:Windows中的最高权限账户,也是一个虚拟账户,操作系统核心的程序和服务都需以SYSTEM账户身份运行。
HomeUsers组:HomeUsers组成员包括所有家庭组账户。通常使用HomeUsers组对家庭组的权限设置进行分配。
Authenticated Users组:Authenticated Users组包括在计算机或域中所有通过身份验证的账户。身份验证的用户不包括来宾账户,即使来宾账户有密码。
Everyone组:所有用户的集合,无论其是否拥有合法账户。
各种账户的默认权限大小如下图所示:
注意:在启用UAC的情况下,如果不提升权限,只有Administrators组的拒绝权限会应用到普通管理员账户。
基本权限和高级权限
Windows的权限中分为基本权限与高级权限,其下又会有其他几种特定的操作权限。
基本权限
完全控制:该权限允许用户对文件夹、子文件夹、文件进行全权控制,例如修改文件的权限、获取文件的所有者、删除文件的权限等,拥有完全控制权限就等于拥有了其他所有的权限。
修改:该权限允许用户修改或删除文件,同时让用户拥有写入、读取、运行权限。
读取和执行:该权限允许用户拥有读取和列出文件目录,另外也允许用户在文件中进行移动和遍历,这使得用户能够直接访问子文件夹与文件,即使用户没有权限访问文件目录。
列出文件夹内容:该权限允许用户查看文件夹中的子文件夹与文件名称(作用对象仅为文件夹)。
读取:权限允许用户查看该文件夹中的文件以及子文件夹,也允许查看该文件夹的属性、所有者和拥有的权限等。
写入:该权限允许用户在该文件夹中创建新的文件和子文件夹,也可以改变文件夹的属性、查看文件夹的所有者和权限等。
特殊权限:其他不常用的权限,比如删除文件权限的权限。
高级权限
完全控制:该权限允许用户对文件夹、子文件夹、文件进行全权控制。
遍历文件夹/执行文件:遍历文件夹允许或拒绝通过文件夹来移动到达其他文件或文件夹,即使用户没有已遍历文件夹的权限。例如用户新建一个A文件夹,设置用户Zhipeng有遍历文件夹的权限,则Zhipeng不能访问这个文件夹,但可以把这个文件夹移动其他目录下面。如果A文件夹设置Zhipeng没有使用权限,则Zhipeng无法移动A文件夹,访问会被拒绝。
列出文件夹/读取数据:该权限允许用户查看文件夹中的文件名称、子文件夹名称和查看文件中的数据。
读取属性:该权限允许用户查看文件或文件夹的属性(例如只读、隐藏等属性)。
读取扩展属性:该权限允许用户查看文件或文件夹的扩展属性,这些扩展属性通常由应用程序所定义,并可以被应用程序修改。
创建文件/写入数据:该权限允许用户在文件夹中创建新文件,也允许将数据写入并覆盖现有文件中的数据。
创建文件夹/附加数据:该权限允许用户在文件夹中创建新文件夹或在现有文件的末尾添加数据,但不能对文件现有的数据进行覆盖、修改,也不能删除数据。
写入属性:该权限允许用户改变文件或文件夹的属性。
写入扩展属性:该权限允许用户对文件或文件夹的扩展属性进行修改。
删除子文件及文件:该权限允许用户删除文件夹中的子文件夹或文件,即使在这些子文件夹和文件上没有设置删除权限(作用对象仅为文件夹)。
删除:该权限允许用户删除当前文件夹和文件,如果用户在该文件或文件夹上没有删除权限,但是在其父级文件夹上有删除子文件及文件夹的权限,则仍然可以将其删除。
读取权限:该权限允许用户读取文件或文件夹的权限列表。
更改权限:该权限允许用户改变文件或文件夹上的现有权限。
取得所有权:该权限允许用户获取文件或文件夹的所有权,一旦获取了所有权,用户就能完全控制文件或文件夹。
权限配置规则
配置Windows的权限,需注意以下规则。
文件权限高于文件夹权限:意思很简单,就是文件权限相对文件夹权限具有优先权。例如用户对某个文件具有使用权限,该文件位于用户不具有访问权限的文件夹中,此时用户同样可以使用此文件,前提是该文件没有继承它所属的文件夹的权限。假设用户对文件夹TestA没有访问权限,但是该文件夹下的文件TEST.txt并没有继承TestA的权限,那么用户可以正常使用TEST.txt这个文件,但是不可以使用文件资源管理器打开TestA去使用TEST.txt,只能通过输入TEST.txt的完整的路径访问该文件。
权限的积累:用户对文件的有效权限等于分配给该用户账户和用户所属的组的所有权限的总和。如果用户账户对文件具有读取权限,该用户所属的组又对该文件具有写入的权限,则该用户账户就对此文件同时具有读取和写入的权限。
拒绝权限高于其他权限:拒绝权限可以覆盖所有其他的权限,甚至作为一个组的成员有权访问文件夹或文件,但是该组被拒绝访问,则该用户本来具有的所有权限都会被锁定,从而无法访问此文件夹或文件。此权限规则会导致权限累积规则失效。
指定权限优先于继承权限:用户或用户组对文件的明确权限设置优先于继承而来的权限设置。例如有一个文件夹TestA,其中有子文件夹TestB,TestB与TestA存在权限继承关系。对于用户User,TestA拒绝其拥有写入权限,而TestB在除了继承的权限设置外,还单独赋予用户User写入权限,此时用户User对TestB拥有写入权限。
获取文件权限
当用户对操作系统文件进行删除操作时,操作系统会要求用户提供TrustedInstaller账户权限。TrustedInstaller为虚拟账户,其只能由操作系统使用,所以要删除或修改具备TrustedInstaller权限的文件,只能去更改文件或文件夹的权限所有者为普通账户,操作步骤如下。
右键单击要删除或修改的文件或文件夹,并在弹出菜单中选择【属性】。
选择【属性】→【安全】,单击【高级】。
在打开的文件高级安全设置界面中,可以看到此文件的权限所有者为TrustedInstaller,以及该账户所具有的访问权限。
单击【更改】选项,在打开的【选择用户或组】界面中输入要更改所有权的账户,单击【检查名称】可以自动识别账户的完整信息,然后单击【确定】。如要改回TrustedInstaller账户,输入NT SERVICE\TrustedInstaller即可。
在高级安全设置界面中,会发现此文件的权限所有者已变成当前使用的用户账户。这时再去删除文件,还会提示需要提升权限。
虽然已经修改了此文件的权限所有者账户,但是此账户依旧只有读取和执行的权限。修改权限所有者之后,要继续为该账户委派访问权限,才能完全控制此文件。单击【编辑】按钮,在打开的界面中选中要修改访问权限的账户,然后在下面的权限列表中勾选【完全控制】并单击【确定】,即可取得该文件的所有控制权限。
恢复原有权限配置
不建议用户随意修改操作系统文件或文件夹的权限,即使出于需要进行修改,之后也要修改回默认权限配置,这样才能确保操作系统文件安全。使用Windows 10中的icacls命令行工具,可以快速恢复文件或文件夹的ACL。
按下Win+X组合键,在弹出菜单中选择【命令提示符(管理员)】。
在命令提示符中输入如下命令并按回车键等待命令执行完毕:
icacls "C:\Windows\System32\dialer.exe" /reset
即可恢复文件或文件夹的ACL。
注意:如果要恢复文件或文件夹原有权限配置,必须手动修改。