⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 security_descriptor.html

📁 这是NTFS文件0.5版本技术文件
💻 HTML
📖 第 1 页 / 共 2 页
字号:
        <td>一般读</td>
        <td>所有需要读取文件的事</td>
      </tr>
    </table>

    <h2>SID (安全标识符)</h2>
    <p>
    一个典型的SID看起来象:S-1-5-21-646518322-1873620750-619646970-1110
    </p>

    <p>它由'S-p-q-r-s-t-u-v'组成。</p>

    <table border="1" summary="" cellspacing="0">
      <tr>
        <td>S</td>
        <td>安全</td>
      </tr>
      <tr>
        <td>p</td>
        <td>修订号 (当前是1)</td>
      </tr>
      <tr>
        <td>q</td>
        <td>NT 著作权. 这个数值分为6个字节 (48 比特 数字)。</td>
      </tr>
      <tr>
        <td>r&nbsp;-&nbsp;v</td>
        <td>NT 子著作权 (在这里可以有多个)</td>
      </tr>
    </table>

    <p>磁盘上的SID存为:<br>          
     &nbsp;&nbsp;&nbsp;S-1-5-21-646518322-1873620750-619646970-1110<br>
     十六进制形式为:<br>          
     &nbsp;&nbsp;&nbsp;S-1-5-15-26891632-6fad2f0e-24ef0ffa-456 (5 个子著作权)</p>          

    <table border="1" summary="" cellspacing="0">
      <tr>
        <td>0x00</td>
        <td>01</td>
        <td>05</td>
        <td>00</td>
        <td>00</td>
        <td>00</td>
        <td>00</td>
        <td>00</td>
        <td>05</td>
      </tr>
      <tr>
        <td>0x08</td>
        <td>15</td>
        <td>00</td>
        <td>00</td>
        <td>00</td>
        <td>32</td>
        <td>16</td>
        <td>89</td>
        <td>26</td>
      </tr>
      <tr>
        <td>0x10</td>
        <td>0e</td>
        <td>2f</td>
        <td>ad</td>
        <td>6f</td>
        <td>fa</td>
        <td>0f</td>
        <td>ef</td>
        <td>24</td>
      </tr>
      <tr>
        <td>0x18</td>
        <td>56</td>
        <td>04</td>
        <td>00</td>
        <td>00</td>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
      </tr>
    </table>

    <p>这是一个可变长度的结构。可以更多或更少,子著作权使结构更大或更小。</p>          

    <h3>安全描述符控制标记</h3>

    <table border="1" summary="" cellspacing="0">
      <tr>
        <th class="numeric">标记</th>
        <th>描述</th>
      </tr>
      <tr>
        <td class="numeric">0x0001</td>
        <td>默认所有者</td>
      </tr>
      <tr>
        <td class="numeric">0x0002</td>
        <td>默认群组</td>
      </tr>
      <tr>
        <td class="numeric">0x0004</td>
        <td>当前的DACL</td>
      </tr>
      <tr>
        <td class="numeric">0x0008</td>
        <td>默认的DACL</td>
      </tr>
      <tr>
        <td class="numeric">0x0010</td>
        <td>当前的SACL</td>
      </tr>
      <tr>
        <td class="numeric">0x0020</td>
        <td>默认的 SACL</td>
      </tr>
      <tr>
        <td class="numeric">0x0100</td>
        <td>要求自动延续的DACL</td>
      </tr>
      <tr>
        <td class="numeric">0x0200</td>
        <td>要求自动延续的SACL</td>
      </tr>
      <tr>
        <td class="numeric">0x0400</td>
        <td>自动延续的DACL</td>
      </tr>
      <tr>
        <td class="numeric">0x0800</td>
        <td>自动延续的SACL</td>
      </tr>
      <tr>
        <td class="numeric">0x1000</td>
        <td>DACL 保护</td>
      </tr>
      <tr>
        <td class="numeric">0x2000</td>
        <td>SACL 保护</td>
      </tr>
      <tr>
        <td class="numeric">0x4000</td>
        <td>RM 控制有效</td>
      </tr>
      <tr>
        <td class="numeric">0x8000</td>
        <td>自相关的</td>
      </tr>
    </table>

    <h3>默认的所有者</h3>
    <p>
    在设置时,这个布尔数学系统的标记用所有者域指示SID所指向的,
    是由一个默认的机构提供,而不是由安全描述符的初始供给者明确地提供。
    这也许会影响SID关于所有者延续的处理。
    </p>

    <h3>默认群组</h3>
    <p>
    在设置时,这个布尔数学系统的标记用所有者域指示SID所指向的,
    是由一个默认的机构提供,而不是由安全描述符的初始供给者明确地提供。
    这也许会影响SID关于初始群组的处理。
    </p>

    <h3>当前DACL</h3>
    <p>
    在设置时,这个布尔数学系统的标记指示包含一个ACL目录的安全描述符。
    如果此标记已经设置且安全标识符的DACL域是零,那么就明确说明了一个无效的ACL。
    </p>

    <h3>默认的DACL</h3>
    <p>
    在设置时,这个布尔数学系统的标记用所有者域指示SID所指向的,
    是由一个默认的机构提供,而不是由安全描述符的初始供给者明确地提供。
    这也许会影响ACL关于一个ACL延续的处理。如果没有设置DACL当前标记则可忽略此标记。
    </p>

    <h3>当前SACL</h3>
    <p>
    在设置时,这个布尔数学系统的标记指示包含一个由SACL域指向的系统ACL的安全描述符。
    如果此标记已经设置且安全描述符的SACL域为零,则指定了一个空(但是存在)的ACL。
    </p>

    <h3>默认的SACL</h3>
    <p>
    在设置时,这个布尔数学系统的标记用所有者域指示SID所指向的,
    是由一个默认的机构提供,而不是由安全描述符的初始供给者明确地提供。
    这也许会影响ACL关于一个ACL延续的处理。如果设置了当前SACL,则此标记可忽略。
    </p>

    <h3>自相关</h3>
    <p>
    在设置时,这个布尔数学系统的标记指示安全描述符是自相关形式。
    在这种形式中,安全描述符的所有域在内存中是连续的,所有指针域表示为从安全描述符开始的偏移量。
    </p>

    <pre>
    SID结构是一个可变长度结构,用于唯一地识别用户或群组。
    
    SID代表安全描述符。

    SID的标准原文表示法为:S-R-I-S-S...

    这里:
       - 第一个“S”是文字符,确定下面的数字是一个SID。
       - R 是SID的修订水平,表示为一个数字序列,可为十进制或十六进制
         如果是后者,由“0x”做前缀)。
       - I 是48比特的著作权标识符,表示为和上面的R相同的数字。
       - S... 是一个或更多的子著作权值,表示为和上面的R相同的数字。

    SID实例; 范围自相关SID,在WINDOWS NT/2K上有本地的管理群组:
    
        S-1-5-32-544

    转化到SID为:
        修订本 = 1,
        子著作权数 = 2,
        著作权标识符 = {0,0,0,0,0,5},   NT的安全著作权
        子著作权[0] = 32,               SECURITY_BUILTIN_DOMAIN_RID
        子著作权[1] = 544               DOMAIN_ALIAS_RID_ADMINS

    ACE类型:

    ACCESS_MIN_MS_ACE_TYPE           = 0
    ACCESS_ALLOWED_ACE_TYPE          = 0
    ACCESS_DENIED_ACE_TYPE           = 1
    SYSTEM_AUDIT_ACE_TYPE            = 2
    SYSTEM_ALARM_ACE_TYPE            = 3 不在win2k下执行.
    ACCESS_MAX_MS_V2_ACE_TYPE        = 3

    ACCESS_ALLOWED_COMPOUND_ACE_TYPE = 4
    ACCESS_MAX_MS_V3_ACE_TYPE        = 4

    下面只在WIN2K环境里

    ACCESS_MIN_MS_OBJECT_ACE_TYPE    = 5
    ACCESS_ALLOWED_OBJECT_ACE_TYPE   = 5
    ACCESS_DENIED_OBJECT_ACE_TYPE    = 6
    SYSTEM_AUDIT_OBJECT_ACE_TYPE     = 7
    SYSTEM_ALARM_OBJECT_ACE_TYPE     = 8
    ACCESS_MAX_MS_OBJECT_ACE_TYPE    = 8

    ACCESS_MAX_MS_V4_ACE_TYPE        = 8

    下面这个只针对WINNT和2K

    ACCESS_MAX_MS_ACE_TYPE           = 8

    用于审计和延续的ACE标记(8比特):

    SUCCESSFUL_ACCESS_ACE_FLAG只用于系统审计和警告ACE类型来指示
    为访问成功产生一个信息(在WINDOWS里)。

    FAILED_ACCESS_ACE_FLAG只用于系统审计和警告ACE类型来指示为访
    问失败产生一个信息(在WINDOWS里)。

    延续标记:
    OBJECT_INHERIT_ACE           = 0x01
    CONTAINER_INHERIT_ACE        = 0x02
    NO_PROPAGATE_INHERIT_ACE     = 0x04
    INHERIT_ONLY_ACE             = 0x08
    INHERITED_ACE                = 0x10  Win2k only
    VALID_INHERIT_FLAGS          = 0x1f

    审计标记:
    SUCCESSFUL_ACCESS_ACE_FLAG   = 0x40
    FAILED_ACCESS_ACE_FLAG       = 0x80

    访问标准权利的定义

    标准权利:
    删除                   = 0x00010000
    读取控制               = 0x00020000
    DAC写入                = 0x00040000
    所有者写入             = 0x00080000
    同步                   = 0x00100000

    要求的标准权利         = 0x000f0000

    标准权利读取           = 0x00020000
    标准权利写入           = 0x00020000
    标准权利执行           = 0x00020000

    所有标准权利           = 0x001f0000

    访问系统ACL和最大允许访问类型

    访问系统安全           = 0x01000000
    最大允许               = 0x02000000

    一般权利:
    所有一般的               = 0x10000000
    一般执行                 = 0x20000000
    一般写入                 = 0x40000000
    一般读取                 = 0x80000000

    对象ACE标记(32比特):
    ACE当前对象类型          = 1
    ACE当前延续对象类型      = 2

    ACL常数
    当前修订本:
    ACL修订本                = 2
    ACL_REVISION_DS          = 4

    修订本历史:
    ACL_REVISION1        = 1
    MIN_ACL_REVISION     = 2
    ACL_REVISION2        = 2
    ACL_REVISION3        = 3
    ACL_REVISION4        = 4
    MAX_ACL_REVISION     = 4

   绝对安全描述符不包含所有者和群组SID,在安全描述符里也没有SACL和DACL ACL。
   作为替代,它包含到内存里哪些结构的指针。显然,绝对安全描述符只用于在内存
   中安全描述符的表示法。在磁盘上,使用一个自相关的安全描述符。

   属性:安全描述符(0x50).一个标准的自相关安全描述符。
   注意:总是常驻的。
   注意:在NTFS3.0+中不用,因为安全描述符存储在文件安全里并且正确的描述符使用
   标准信息属性中的安全标识符.

   在NTFS3.0+中,所有的安全描述符存储在文件安全里.只存储每个唯一的安全描述符。

   文件安全包含非未命名数据属性,例如,它有零长度。但是它包含两个索引($SDH 和 $SII)
   和一个命名的数据流($SDS).

   每个唯一的安全描述符分配了一个唯一的安全标识符(安全验证,不要和SID混淆)。
   安全验证对于NTFS卷来说是唯一的,用作一个到$SII的索引,它指出了安全验证到安
   全描述符在$SDS数据流里的存储位置。$SII索引由安全验证升序分类。

   
   一个简单的杂乱信号是从每个安全描述符计算的,这个杂乱信号用作到$SDH索引的一
   个索引,它指出了安全描述符杂乱信号到安全描述符在$SDS数据流里的存储位置。此$SDH
   索引由安全描述符杂乱信号分类且存储在一个B+子目录结构里。当搜索$SDH时(想确定是
   否已经有一个新的安全描述符存在于$SDS数据流里),如果发现了一个匹配的杂乱信号,
   但是安全描述符不匹配,就要继续在$SDH索引中的搜索,寻找下一个匹配的杂乱信号。


   当发现一个精确的匹配时,就会从$SDH索引项读取在$SDS属性里安全描述符所对应的安全
   验证,并存储在应用安全描述符的文件/目录的标准信息属性里。标准信息属性存在于
   所有低级的MFT记录里(例如在所有文件和目录里)。
   

   如果没发现匹配,则阿全描述符被分配了一个新的唯一安全验证并添加到$SDS数据属性。那
   么,涉及到$SDS数据属性中的安全描述符的条目则被添加到$SDH 和 $SII索引。

   注意:条目从不会被从文件安全里删除,即使没有任何事涉及到此条目。
   
   $SDS数据流包含安全描述符,以16字节边界排列,由安全验证在一个B+子目录结构里分类。
   安全描述符不能超过256k字节边界(此限制是由WINDOWS 缓存管理器强加的)。每个安全描述
   符包含在一个SDS条目结构里。而且,每个安全描述符在$SDS流里以一个0x40000字节(256k字
   节,WINDOWS缓存管理器的最大值)的固定偏移量距离存储两次。例如,如果一个SDS条目指定
   了一个0x51d0的偏移量,那么安全描述符的第一个拷贝在$SDS数据流的偏移量0x51d0处,第二
   个拷贝在偏移量0x451d0处。

   $SII索引,整理类型是COLLATION_NTOFS_ULONG。
   $SDH索引,整理规则是COLLATION_NTOFS_SECURITY_HASH。
   </pre>

    <br>
    <a class="contact" href="http://linux-ntfs.sourceforge.net/ntfs/attributes/security_descriptor.html">Online</a>
    <a class="contact" href="http://www.reddragonfly.org/ntfs/attributes/security_descriptor.html">中文在线</a>
    <!-- The two validators will only work if this page is visible on the web -->          
    <a class="contact" href="http://validator.w3.org/check/referer">Validate HTML</a>          
    <a class="contact" href="http://jigsaw.w3.org/css-validator/check/referer">Validate CSS</a>          
    <a class="contact" href="mailto:webmaster@flatcap.org">$Id: security_descriptor.html,v 1.9 2001/07/11 11:04:05 flatcap Exp $</a>          
  </body>
</html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -