V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
sinnosong1
V2EX  ›  Windows

如何使用 bat 控制文件夹权限针对用户进行设置,并禁用用户组权限继承?

  •  
  •   sinnosong1 · 2022-09-27 11:48:02 +08:00 · 1159 次点击
    这是一个创建于 821 天前的主题,其中的信息可能已经有所发展或是发生改变。

    使用 cacls 发现没有实现想要的效果,icacls 可以实现吗?

    2 条回复    2022-09-27 15:18:08 +08:00
    proxytoworld
        1
    proxytoworld  
       2022-09-27 15:12:50 +08:00
    icacls 应该可以吧,针对用户组 单独用户感觉有点难
    hxy100
        2
    hxy100  
       2022-09-27 15:18:08 +08:00
    刚粗略看了下,icacls 应该是有相应的选项的吧。应该可以实现;
    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 的权限。
    ```
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3433 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 11:21 · PVG 19:21 · LAX 03:21 · JFK 06:21
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.