逐行逐项解释 ICACLS.EXE 的输出

Che*_*eso 18 windows icacls

这是什么意思:

C:\foo\> icacls .
. NT AUTHORITY\IUSR:(M)
  BUILTIN\IIS_IUSRS:(M)
  BUILTIN\IIS_IUSRS:(OI)(CI)(M)
  NT AUTHORITY\IUSR:(OI)(CI)(M)
  BUILTIN\IIS_IUSRS:(I)(OI)(CI)(RX)
  NT AUTHORITY\IUSR:(I)(OI)(CI)(RX)
  NT AUTHORITY\SYSTEM:(I)(OI)(CI)(F)
  BUILTIN\Administrators:(I)(OI)(CI)(F)
Run Code Online (Sandbox Code Playgroud)

我认为第一个意味着 userid 获得了对目录的修改权限 - 这意味着用户可以创建文件、更新文件或删除文件。对?什么是“NT AUTHORITY\IUSR”用户?这真的是一个单一的用户ID吗?它是默认的 IIS 用户 ID 吗?

好的,我认为第二行是指一个组。它获得相同的权限。

那些带有 (I) 和 (OI) 等等的行呢?请解释。

MaQ*_*eod 25

来自微软关于 ICACLS 的文章

条目是特定于该文件的用户和组(DOMAIN\USER 或 GROUP),列出的权限如下:

SID 可以是数字或友好名称形式。如果使用数字形式,请将通配符 * 附加到 SID 的开头。

icacls将 ACE 条目的规范顺序保留为:

  • 明确否认
  • 明确的赠款
  • 继承的否认
  • 继承补助金

Perm是一个权限掩码,可以用以下形式之一指定:

  1. 一系列简单的权利:
    • F(完全访问)
    • M(修改权限)
    • RX(读和执行访问)
    • R(只读访问)
    • W(只写访问)
  2. 特定权利括号中的逗号分隔列表:
    • D(删除)
    • RC(读控制)
    • WDAC(写DAC)
    • WO(写所有者)
    • S(同步)
    • AS(访问系统安全)
    • MA(最大允许)
    • GR(通用读取)
    • GW(通用写入)
    • GE(通用执行)
    • GA(通用所有)
    • RD(读取数据/列表目录)
    • WD(写入数据/添加文件)
    • AD(追加数据/添加子目录)
    • REA(读取扩展属性)
    • WEA(写扩展属性)
    • X(执行/遍历)
    • DC(删除子项)
    • RA(读取属性)
    • WA(写属性)

继承权可以先于任一Perm形式,并且它们仅适用于目录:

  • (OI) : 对象继承
  • (CI) : 容器继承
  • (IO) : 只继承
  • (NP) : 不传播继承
  • (I) : 从父容器继承的权限

对于文件,权限掩码或多或少是不言自明的:R意味着您可以读取文件,X允许它被执行(作为程序),等等。

对于其他类型的对象,您必须浏览 MSDN:

继承权英文:

  • (I) “继承的”:这个 ACE 是从父容器继承的。
  • (OI) “对象继承”:这个ACE将被放置在这个容器中的对象继承。
  • (CI) “容器继承”:这个ACE将被放置在这个容器中的子容器继承。
  • (IO)“仅继承”:此 ACE 将被继承(参见OICI),但不适用于此对象本身。
  • (NP)“不传播”:这个 ACE 将被对象和子容器继承一层深——它不适用于子容器内的事物。

对于文件系统,“容器”表示文件夹,“对象”表示文件,但请记住,可以在许多其他类型的对象上设置 ACL,并非所有对象都有“容器”的概念。

  • *一年后...* 是的。好多了谢谢。至于其他人说:“去读吧”,这就是超级用户的目的,不是吗?回答其他地方没有明确回答的问题。 (3认同)