分享

windows修改文件权限的命令

 包礼瞩 2024-01-09 发布于贵州

当你发现目录权限都是错误的时候,最快的方法就是先取消再重新分配,自然命令行下速度最快。

1. icacls和takeown命令

icacls 命令intergrity control access control list 即 完整性权限控制列表。显示或修改指定文件上的随机访问控制列表 (DACL),并将存储的 DACL 应用于指定目录中的文件。takeown使管理员作为文件的所有者,恢复对之前被拒文件的访问权限。需使用管理员权限运行。

2. 修改所有者

假设要修改的目录名为D:\TestDir目录,其原本所有者为Authenticated Users,所有者需要修改为Users用户,而系统当前登录用户为username。

 2.1 先将目录及其子目录所有设为当前用户username

takeown /f 'D:\TestDir' /r

 2.2 将当前用户授予完全控制权限

icacls 'D:\TestDir' /grant username:F /t

2.3 将指定目录及子目录的所有者设为Users

icacls 'D:\TestDir' /setowner Users /t

3. 修改权限

授予用户Users对于指定目录及子目录的完全控制权限,和上一节步骤2类似

icacls 'D:\TestDir' /grant Users:F /t

关于takeown的详细用法

TAKEOWN [/S system [/U username [/P [password]]]]        /F filename [/A] [/R [/D prompt]]
描述: 该工具以重新分配文件所有权的方式允许管理员重新获取先前被拒绝访问 的文件访问权。
参数列表: /S system 指定要连接到的远程系统。
/U [domain\]user 指定用户上下文,命令在此上下文中执行。
/P [password] 指定给定用户上下文的密码。如果省略, 提示输入。
/F filename 指定文件名或目录名模式。可以用通配符 '*' 指定模式。允许共享名\文件名。
/A 将所有权给于管理员组,而不是当前用户。
/R 递归: 指示工具运行于指定的目录和子目录 里的文件上。
/D prompt 当前用户在一个目录里没有“列出文件夹” 权限时,使用默认答案。当在子目录里进行 递归 (/R) 操作时会发生这种情况。用有效 'Y' 获取所有权或用 'N' 跳过。
/SKIPSL 不遵循符号链接。 仅适用于 /R。
/? 显示此帮助消息。
注意: 1) 如果未指定 /A,文件所有权会将被授予 当前登录的用户。
2) 不支持用 '?' 和 '*' 的混合模式。
3) /D 用于抑制确认提示。
示例: TAKEOWN /? TAKEOWN /F lostfile TAKEOWN /F \\system\share\lostfile /A TAKEOWN /F directory /R /D N TAKEOWN /F directory /R /A TAKEOWN /F * TAKEOWN /F C:\Windows\System32\acme.exe TAKEOWN /F %windir%\*.txt TAKEOWN /S system /F MyShare\Acme*.doc TAKEOWN /S system /U user /F MyShare\MyBinary.dll TAKEOWN /S system /U domain\user /P password /F share\filename TAKEOWN /S system /U user /P password /F Doc\Report.doc /A TAKEOWN /S system /U user /P password /F Myshare\* TAKEOWN /S system /U user /P password /F Home\Logon /R TAKEOWN /S system /U user /P password /F Myshare\directory /R /A

关于ICACLS的详细用法


ICACLS name /save aclfile [/T] [/C] [/L] [/Q] 将匹配名称的文件和文件夹的 DACL 存储到 aclfile 中 以便将来与 /restore 一起使用。请注意,未保存 SACL、 所有者或完整性标签。
ICACLS directory [/substitute SidOld SidNew [...]] /restore aclfile [/C] [/L] [/Q] 将存储的 DACL 应用于目录中的文件。
ICACLS name /setowner user [/T] [/C] [/L] [/Q] 更改所有匹配名称的所有者。该选项不会强制更改所有 身份;使用 takeown.exe 实用程序可实现 该目的。
ICACLS name /findsid Sid [/T] [/C] [/L] [/Q] 查找包含显式提及 SID 的 ACL 的 所有匹配名称。
ICACLS name /verify [/T] [/C] [/L] [/Q] 查找其 ACL 不规范或长度与 ACE 计数不一致的所有文件。
ICACLS name /reset [/T] [/C] [/L] [/Q] 为所有匹配文件使用默认继承的 ACL 替换 ACL。
ICACLS name [/grant[:r] Sid:perm[...]] [/deny Sid:perm [...]] [/remove[:g|:d]] Sid[...]] [/T] [/C] [/L] [/Q] [/setintegritylevel Level:policy[...]]
/grant[:r] Sid:perm 授予指定的用户访问权限。如果使用 :r, 这些权限将替换以前授予的所有显式权限。 如果不使用 :r,这些权限将添加到以前授予的 所有显式权限。
/deny Sid:perm 显式拒绝指定的用户访问权限。 将为列出的权限添加显式拒绝 ACE, 并删除所有显式授予的权限中的相同权限。
/remove[:[g|d]] Sid 删除 ACL 中所有出现的 SID。使用 :g,将删除授予该 SID 的所有权限。使用 :d,将删除拒绝该 SID 的所有权限。
/setintegritylevel [(CI)(OI)]级别将完整性 ACE 显式 添加到所有匹配文件。要指定的级别为以下级别 之一: L[ow] M[edium] H[igh] 完整性 ACE 的继承选项可以优先于级别,但只应用于 目录。
/inheritance:e|d|r e - 启用继承 d - 禁用继承并复制 ACE r - 删除所有继承的 ACE

注意: Sid 可以采用数字格式或友好的名称格式。如果给定数字格式, 那么请在 SID 的开头添加一个 *。
/T 指示在以该名称指定的目录下的所有匹配文件/目录上 执行此操作。
/C 指示此操作将在所有文件错误上继续进行。 仍将显示错误消息。
/L 指示此操作在符号 链接本身而不是其目标上执行。
/Q 指示 icacls 应该禁止显示成功消息。
ICACLS 保留 ACE 项的规范顺序: 显式拒绝 显式授予 继承的拒绝 继承的授予
perm 是权限掩码,可以指定两种格式之一: 简单权限序列: N - 无访问权限 F - 完全访问权限 M - 修改权限 RX - 读取和执行权限 R - 只读权限 W - 只写权限 D - 删除权限 在括号中以逗号分隔的特定权限列表: DE - 删除 RC - 读取控制 WDAC - 写入 DAC WO - 写入所有者 S - 同步 AS - 访问系统安全性 MA - 允许的最大值 GR - 一般性读取 GW - 一般性写入 GE - 一般性执行 GA - 全为一般性 RD - 读取数据/列出目录 WD - 写入数据/添加文件 AD - 附加数据/添加子目录 REA - 读取扩展属性 WEA - 写入扩展属性 X - 执行/遍历 DC - 删除子项 RA - 读取属性 WA - 写入属性 继承权限可以优先于每种格式,但只应用于 目录: (OI) - 对象继承 (CI) - 容器继承 (IO) - 仅继承 (NP) - 不传播继承 (I) - 从父容器继承的权限
示例:
icacls c:\windows\* /save AclFile /T - 将 c:\windows 及其子目录下所有文件的 ACL 保存到 AclFile。
icacls c:\windows\ /restore AclFile - 将还原 c:\windows 及其子目录下存在的 AclFile 内 所有文件的 ACL。
icacls file /grant Administrator:(D,WDAC) - 将授予用户对文件删除和写入 DAC 的管理员 权限。
icacls file /grant *S-1-1-0:(D,WDAC) - 将授予由 sid S-1-1-0 定义的用户对文件删除和 写入 DAC 的权限。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多