[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

第三方工具 SetACL.EXE 2.0.3.0 中文帮助

转载请注明出处:http://bbs.bathome.net/thread-3670-1-1.html
英 文 翻 译:WXCUTE AT BBS.bathome.net


SetACL 作者:赫尔格·克莱因

主页:http://setacl.sourceforge.net
版本:2.0.3.0
版权:赫尔格·克莱因
许可:GPL(GNU通用公共许可证)
翻译:wxcute AT BBS.bathome.net

SetACL -选项 "选项参数"
    选项后必跟选项参数,可有多个选项。除显示帮助信息外最少三个选项。

SetACL -on "<对象名字>" -ot <对象类型>
    -actn <操作方法1>
    操作1 "操作1参数" [操作2 "操作2参数" ……]      //对应于操作方法1的操作及参数
    [-actn <操作方法2>]
    [操作1 "操作1参数" 操作2 "操作2参数" ……]      //对应于操作方法2的动作及参数
    [……]

-help   显示本帮助

──选项──────────────────────────

-on  对象名

-ot  对象类型

-actn 操作种类的名字

────────────
选项-actn的下属子选项:

-ace "n:Trustee;p:Permission;s:IsSID;i:Inheritance;m:Mode;w:Where"
   “n:操作对象;p:权限;s:标志符;i:继承;m:模式;w:权限应用位置”
   权限设置,操作种类名ace。

-trst "n1:Trustee;n2:Trustee;s1:IsSID;s2:IsSID;ta:TrusteeAction;w:Where"
   “n1:操作对象一/源对象;n2:操作对象二/目标对象;s1:标志符;s2:标志符;ta:对对象执行的操作;w:权限应用到哪”
   操作对象(域/用户组/用户名)权限复制,操作种类名trustee。

-dom "n1:Domain;n2:Domain;da:DomainAction;w:Where"
   “n1:域一;n2:域二;da:对域的动作;w:权限应用位置”
   操作域的权限复制,操作种类名domain。

-ownr "n:Trustee;s:IsSID"
   “n:操作对象;s:标志符”
   指定用户权限变更,操作种类名setowner。

-grp "n:Trustee;s:IsSID"
   “n:操作对象;s:标志符”
   指定组权限变更,操作种类名setgroup。
────────────

-rec Recursion
   循环,处理对象的种类

-op  "dacl:Protection;sacl:Protection"
   “dacl:保护;sacl:保护”

-rst Where
   位置

-lst "f:Format;w:What;i:ListInherited;s:DisplaySID"
   “f:格式;w:什么(即内容);i:继承列表;s:显示标志”

-bckp Filename
   文件名,备份文件

-log Filename
   文件名,保存输出信息到记录文件

-fltr Keyword
   关键词/键值,过滤带关键词的内容

-clr Where
   哪里/位置,清除权限

-silent
   (静默参数)静默执行,无结果显示。

-ignoreerr
   (忽略错误)忽略执行过程中的错误

──参数说明────────────────────────

对象名:    要处理的对象(如:“C:\MYDIR”)(目录名/文件名/注册表项/服务名/打印机名/共享名)

对象类型:   对象的类型

        file:      目录/文件

        reg:      注册表项

        srv:      服务

        prn:      打印机

        shr:      网络共享

动作:     执行的动作/改变:

◎ACL:访问控制列表

        ace:    执行“-ace”所跟参数的动作

        trustee:  执行“-trst”后所指定的参数

        domain:   执行“-dom”
后所指定的参数

        list:    使用“-lst”参数列出权限。后跟“-bckp”可备份权限改变前的文件。

        restore:  用列表程序保存全部安全设置。清单使用 SDDL(模式数据描述语言)格式。

        setowner:  设定权限拥有者。

        setgroup:  设置组

        clear:   清空所有继承的访问控制列表。参数“-clr”可控制 DACL、SACL 或两者同时。

        setprot:  (setParentOption)
              设定一个标志。允许权限从父对象继承下来。

        rstchldrn: (resetChildren)
              重置子对象继承而来的权限。参数“-rst”可控制 DACL、SACL 或两者同时。

用户动作:   对用户指定的操作

        remtrst:  (removeTrustee)
              删除指定用户的所有权限。
        repltrst:  (replaceTrustee)
              将“n1”换成“n2”。
        cpytrst:  (copyTrustee)
              复制许可权限“n1”到“n2”。

域动作:    指定域的动作

        remdom:   (removeDomain)
              删除指定域的所有权限。
        repldom:  (replaceDomain)
              将域“n1”换成“n2”。
        cpydom:   (copyDomain)
              复制域许可权限“n1”到“n2”。

SID 安全标识符(Security Identifiers):     用户或组的名字或 SID。格式如下:

      A、[(computer | domain)\]name
        [ 计算机 | 域 ]名

        Where:   (位置)

        computer:  (电脑)
              计算机的 DNS 或 NetBIOS 名。必须是该指定计算机上的本地用户。
        domain:   (域)
              域的 DNS 或 NetBIOS 名。必须是域用户或组。
        name:    (名)
              用户或组

        若未指定计算机或域名,SetACL 会从以下顺序试着找出 SID 当名。

        1. 内置用户与常用 SID
        2. 本地用户
        3. 主域
        4. 信任域

      B、SID 字串

Domain:     域名(NetBIOS 或 DNS)

Permission:   设置允许。基于对象类型的许可权限。用逗号作为列表分隔符。
 
        例如:  'read,write_ea,write_dacl'
             “读取、写入和运行、更改特殊权限”

IsSID:     被操作对象是否是 SID 名?

        y:   是
        n:   否

DisplaySID:   是否显示 SID?

        y:   是
        n:   否
        b:   两者都(名字和 SID)

Inheritance:  ACE 的继承标志。列表选项如下,可用逗号分隔列表:

        so:    子对象
        sc:    子容器
        np:    不向下继承
        io:    只继承

        例子:  'io,so'
        

Mode:      存取 ACE 模式:

      A、DACL(标准权限):

        set:    替换所有许可权限。

        grant:   在现有权限基础下添加指定权限。
        (授予)
        deny:    取消指定权限。
        (取消)
        revoke:   从现有权限中取消指定权限。
        (撤回)

      B、SACL(特殊权限):

        aud_succ:  添加并检查成功的 ACE。

        aud_fail:  添加并检查失败的 ACE。

        revoke:   从现有权限中取消指定权限。

Where:     权限应用的位置,DACL、SACL 或两者(逗号分隔列表):

        dacl
        sacl
        dacl,sacl

Recursion:   循环设置,基于对象类型:

      A、文件
        
        no:    无循环/递归。
        cont:   只循环处理目录。
        obj:   只循环处理文件。
        cont_obj: 处理目录和文件。

      B、注册表:

        no:    不循环。
        yes:   循环。

Protection:   控制标志:允许权限从父对象继承下来。

        nc:    不更改当前设定。
        np:    对象不受保护,即从父对象继承下来的。
        p_c:   对象受保护,ACE 从父对象复制下来。
        p_nc:   对象受保护,不从父对象复制 ACE。

Format:     使用的列表格式:

        sddl:   标准 SDDL 格式。只有这种清单格式才能保存。
        csv:   SetACL 独有的 csv 格式。
        tab:   SetACL 独有的制表格式。

What:      安全描述列表的组成部件(逗号分隔):

        d:    DACL     (标准权限)
        s:    SACL     (特殊权限)
        o:    Owner     (所有者)
        g:    Primary group (组)

        例如:  'd,s'
               

ListInherited: 是否显示继承权限?

        y:    是
        n:    否

Filename:    文件名,用于列表/备份/储存操作或记录的文件。

Keyword:    过滤对象名。包含未处理的项。

──标记/备注/摘要─────────────────────

必需的参数(其他为可选参数):

        -on    对象名
        -ot    对象类别

指定参数可能不止使用一次:

        -actn    动作
        -ace    存取控制入口
        -trst    授予人/操作对象
        -dom    域
        -fltr    过滤项

只有参数“-actn”指定动作才会生效,无论其他选项如何设置。

多重操作的顺序如下:

        1.  restore
            储存
        2.  clear
            清空
        3.  trustee
            授权
        4.  domain
            域
        5.  ace, setowner, setgroup, setprot
            存取控制入口,设置拥有者,设置组,设置父对象
        6.  rstchldrn
            重置子对象
        7.  list
            列表

──有效权限────────────────────────

A、标准权限设置(指定权限的关联)(与属性>安全标签中的权限相对应)

  文件/目录:

        read:     读取
        write:    写入
        list_folder: 列出目录
        read_ex:   读取和运行
        change:    修改
        profile:   = change + write_dacl
               等于修改与更改特殊权限(特别的权限)
        full:     完全控制

  打印机/共享打印机:

        print:    打印
        man_printer: 管理打印机
        man_docs:  管理文档
        full:    全部权限

  注册表:

        read:    读取
        full:    所有权限

  服务:

        read:    读取
        start_stop: 启用/停止
        full:    所有权限

  共享(目录/共享/共享权限):

        read:    读取
        change:   更改
        full:    完全控制

B、特殊权限(与属性>安全标签中高级里的权限相对应)


  文件/目录:

        traverse:   遍历目录/运行文件
        list_dir:   列表目录/读取数据
        read_attr:   读取属性
        read_ea:    读取扩展属性
        add_file:   创建文件/写入数据
        add_subdir:  创建目录/附加数据
        write_attr:  写入属性
        write_ea:   写入扩展属性
        del_child:   删除子目录和文件
        delete:    删除
        read_dacl:   读取特殊权限
        write_dacl:  写入特殊权限
        write_owner:  取得所有权

  注册表(与权限>安全标签中高级里的权限相对应)

        query_val:   查询数值
        set_val:    设定数值
        create_subkey: 创建子项
        enum_subkeys: 枚举子项
        notify:    通知
        create_link:  创建链接
        delete:    删除
        write_dacl:  写入特殊权限
        write_owner:  取得所有权
        read_access:  读取控制

───结束─────────────────────────


[ 本帖最后由 wxcute 于 2009-7-8 22:02 编辑 ]
1

评分人数

批处理之家论坛官方 QQ 群 :【当前人数/人数上限】【2009-07-08】
群①:43011867(181/200);群②:(暂缺数据);群③:66165582(120/200)。

TOP

示例讲解,根据官网示例翻译

英文原版示例:http://setacl.sourceforge.net/html/examples.html

━━━━━
文件系统
━━━━━
用于操作文件、目录或驱动器的权限。
-on 后跟对象名,可以是文件、目录或驱动器;
-ot 后跟种类,这时用 file。

示例一
SetACL.exe -on "C:\my dir" -ot file -actn ace
      -ace "n:domain1\user1;p:change"

(实际上这些参数应该写在一行的,为了方便说明特写成多行。)

设置“C:\my dir”目录,允许域 domain1 中 user1 用户拥有更改的权限。

示例二
SetACL.exe -on "C:\my dir" -ot file -actn ace
      -ace "n:domain1\user1;p:read,write_dacl"

和示例一一样,不同处在于设置了以下两个权限:
    读取(标准权限设置)
    写入特殊权限(特殊权限)


示例三
SetACL.exe -on "C:\my dir" -ot file -actn ace
      -ace "n:domain1\user1;p:change"
      -ace "n:administrators;p:full"

和示例一一样,相比增加设置 administrators 用户组权限为完全控制。

示例四
SetACL.exe -on "C:\my dir" -ot file -actn ace
      -ace "n:domain1\user1;p:change"
      -ace "n:S-1-5-32-544;p:full;s:y"

这是示例三的优化写法。administrators 是系统内建组,它会随操作系统语言的不同而改变,因此采用固定不变的 SID 替代会更好。

示例五
SetACL.exe -on "\\server1\share1\my dir" -ot file -actn ace
      -ace "n:domain1\user1;p:change"
      -ace "n:S-1-5-32-544;p:full;s:y"

类似示例四,但对象名是使用的 UNC(通用命名标准)名称,来远程连接服务器 server1 上的共享目录 share1。

示例六
SetACL.exe -on "\\server1\share1\my dir" -ot file -actn ace
      -ace "n:domain1\user1;p:change"
      -ace "n:S-1-5-32-544;p:full;s:y"
      -ace "n:domain2\user2;p:full;m:aud_fail;w:sacl"

在示例五的基础上,增加了对域 domain2 中 user2 用户设置权限是否成功的检查。

示例七
SetACL.exe -on "\\server1\share1\my dir" -ot file -actn ace
      -ace "n:domain1\user1;p:change"
      -ace "n:S-1-5-32-544;p:full;s:y"
      -ace "n:domain2\user2;p:full;m:aud_fail;w:sacl"
      -actn clear -clr "dacl,sacl"

和示例六一样,但有所改动。任何非继承的权限被删除,其他则成功设置。效果就是清除了有交叉重叠的权限。

示例八
SetACL.exe -on "\\server1\share1\my dir" -ot file -actn ace
      -ace "n:domain1\user1;p:change"
      -ace "n:S-1-5-32-544;p:full;s:y"
      -ace "n:domain2\user2;p:full;m:aud_fail;w:sacl"
      -actn clear -clr "dacl,sacl"
      -actn rstchldrn -rst "dacl,sacl"

类似示例七,但处理了更多事务。所有本该继承到子对象的权限都被重置,结果是只有特殊权限才被应用到整个目录树对象中。

示例九
SetACL.exe -on "\\server1\share1\my dir" -ot file -actn ace
      -ace "n:domain1\user1;p:change"
      -ace "n:S-1-5-32-544;p:full;s:y"
      -ace "n:domain2\user2;p:full;m:aud_fail;w:sacl"
      -actn clear -clr "dacl,sacl"
      -actn rstchldrn -rst "dacl,sacl"
      -log "c:\my files\setacl log.txt"

与示例八相同,但所有屏幕输出同时保存到了指定的日志文件。

示例十
SetACL.exe -on "\\server1\share1\my dir" -ot file -actn ace
      -ace "n:domain1\user1;p:change"
      -ace "n:S-1-5-32-544;p:full;s:y"
      -ace "n:domain2\user2;p:full;m:aud_fail;w:sacl"
      -actn clear -clr "dacl,sacl"
      -actn rstchldrn -rst "dacl,sacl"
      -log "c:\my files\setacl log.txt"
      -silent

和示例九相似,但没有屏幕输入而只输出到文件。

示例十一
SetACL.exe -on "\\server1\share1\my dir" -ot file -actn ace
      -ace "n:domain1\user1;p:change"
      -ace "n:S-1-5-32-544;p:full;s:y"
      -ace "n:domain2\user2;p:full;m:aud_fail;w:sacl"
      -actn clear -clr "dacl,sacl"
      -actn rstchldrn -rst "dacl,sacl"
      -log "c:\my files\setacl log.txt"
      -silent
      -fltr "secrets" -fltr "top secret"

跟示例十一样,但排除了含有“secrets”和“top secret”的文件/目录。

示例十二
SetACL.exe -on "\\server1\share1\users" -ot file -actn setprot
      -op "dacl:np;sacl:nc"
      -rec cont_obj
      -actn setowner -ownr "n:S-1-5-32-544;s:y"

重置整个目录到大多数管理员想要的那样:
将所有文件/目录的所有者提升到 administrators 组,还有将 DACL 权限设置为可继承,而 SACL 权限则不变。

示例十三
SetACL.exe -on "\\server1\share1\users" -ot file -actn list
      -lst "f:sddl;w:d,s,o,g"
      -rec cont
      -bckp "d:\data\setacl listing.txt"

用 SDDL 格式列出目录 \\server1\share1\users 及其子目录的完整权限清单,要列出的项包括 DACL、SACL、所有者及所属组。
清单保存为 UNICODE 编码格式的指定文件。

示例十四
SetACL.exe -on "dummy entry" -ot file -actn restore
      -bckp "d:\data\setacl listing.txt"

从备份文件中恢复所有安全描述数据(如 DACL、SACL、所有者和组等)到原始对象。

注意:如果你拥有相应的权限(通常是指你以管理员身份登录时),则所有的安全描述数据将会被覆盖。

说明:只有备份文件中包含的数据才会被覆盖。例如,你创建了一个只描述 SACL 权限的备份文件,则恢复时 DACL、所有者与组均不会改变。

示例十五
SetACL.exe -on "\\server1\share1\users" -ot file -actn trustee
      -rec cont_obj
      -trst "n1:domain1\user1;n2:domain2\user2;ta:cpytrst;w:dacl"

这个方法用于复制不同域中用户的权限时很有用。
此命令会复制原本属于 domain1\user1 的所有权限到 domain2\user2,结果就是使 user2 成为 user1 的权限副本,
即 user2 会拥有与 user1 一模一样的权限。

示例十六
SetACL.exe -on "\\server1\share1\users" -ot file -actn domain
      -rec cont_obj
      -dom "n1:domain1;n2:domain2;da:repldom;w:dacl"

这种方法用于复制或移动域之间的权限。
这个命令会用域 domain1 用户或组中所有 SID 来替换域 domain2 下相当用户或组的 SID。
执行结果就是 domain2\user1 会拥有与 domain1\user1 一样的权限。

━━━━━
注册表
━━━━━
-on 用注册表完整项名
-ot 用 reg,表示是注册表

示例十七
SetACL.exe -on "hklm\software\microsoft\policies" -ot reg -actn ace
      -ace "n:domain1\user1;p:full"

设置域 domain1 中 user1 用户拥有注册表项 HKEY_LOCAL_MACHINE\Software\Microsoft\Policies 的完全控制权限。

示例十八
SetACL.exe -on "\\machine2\hklm\software\microsoft\policies" -ot reg -actn ace
      -ace "n:domain1\user1;p:full"

跟示例十七相同,不同之处在于操作的是远程机器 machine2 上的注册表。

示例十九
SetACL.exe -on "hkcu" -ot reg -actn ace
      -ace "n:domain1\user1;p:full"

设置域 domain1 中的 user1 用户拥有注册表根项 HKEY_CURRENT_USER 的完全控制权限。

━━━━━
打印机
━━━━━
-on 打印机或共享打印机名称
-ot 用 prn 代表打印机

示例二十
SetACL.exe -on "\\server1\HP LaserJet 4050" -ot prn -actn list

列出服务器 server1 上名为“HP LaserJet 4050”的打印机的所有权限。

示例廿一
SetACL.exe -on "\\server1\HP LaserJet 4050" -ot prn -actn ace
      -ace "n:domain1\HelpDesk;p:man_docs"

设置域 domain1 中的 HelpDesk 组拥有服务器 server1 上共享打印机“HP LaserJet 4050”管理打印文档的权限。

━━━━━
共享
━━━━━

示例廿二
SetACL.exe -on "\\server1\Data$" -ot shr -actn list

列出服务器 server1 上共享目录 Data$ 的当前所有权限。

━━━━━
服务
━━━━━

示例廿三
SetACL.exe -on "\\server1\W32Time" -ot srv -actn ace
      -ace "n:domain1\group1;p:start_stop"

设置域 domain1 中的 group1 用户组拥有服务器 server1 上时间服务的开启与停止的权限。
━结━束━


[ 本帖最后由 wxcute 于 2009-5-11 15:36 编辑 ]
1

评分人数

批处理之家论坛官方 QQ 群 :【当前人数/人数上限】【2009-07-08】
群①:43011867(181/200);群②:(暂缺数据);群③:66165582(120/200)。

TOP

返回列表