📄 security_descriptor.html
字号:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//ZH_CN">
<!-- http://linux-ntfs.sourceforge.net/ntfs/attributes/index_allocation.html -->
<html lang="ZH_CN">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<meta name="description" content="NTFS Documentation">
<link rel="stylesheet" type="text/css" href="../style/ntfsdoc.css">
<link rel="start" type="text/html" href="../index.html" title="NTFS Documentation">
<title>$SECURITY_DESCRIPTOR (0x50) - Attribute - NTFS Documentation</title>
</head>
<body>
<table border="0" class="toolbar" summary="" cellspacing="0">
<tr>
<td class="toolbar"><div class="toolbar"><a accesskey="1" class="toolbar" href="../index.html">主页</a></div></td>
<td class="toolbar"><div class="toolbar"><a accesskey="2" class="toolbar" href="../files/index.html">文件</a></div></td>
<td class="toolbar"><div class="toolbar"><a accesskey="3" class="toolbar" href="../attributes/index.html">属性</a></div></td>
<td class="toolbar"><div class="toolbar"><a accesskey="4" class="toolbar" href="../concepts/index.html">概念</a></div></td>
<td class="toolbar"><a accesskey="5" class="toolbar" href="../help/glossary.html">词汇</a></td>
</tr>
</table>
<h1>属性 - $SECURITY_DESCRIPTOR (0x50)</h1>
<a class="prevnext" accesskey="," href="object_id.html">前一页</a>
<a class="prevnext" accesskey="." href="volume_name.html">后一页</a>
<h2>概述</h2>
<pre>标准属性标题?</pre>
<p>安全描述符可总结如下:</p>
<ul>
<li>一个标题(也许是标记)后面跟着一两个ACL和两个SID。</li>
<li>第一个ACL包含审计信息并且可能没有。</li>
<li>第二个ACL包含许可(谁可以做)。</li>
<li>每个ACL包含至少一个ACE。</li>
<li>每个ACE包含一个SID。</li>
<li>最后两个SID指出对象的所有者(用户和群组)。</li>
</ul>
<table border="1" summary="" cellspacing="0">
<tr>
<th colspan="3">成份</th>
<th>描述</th>
</tr>
<tr>
<td colspan="3">Header</td>
<td>到不同结构的偏移量</td>
</tr>
<tr>
<td>Audit ACL</td>
<td>ACE</td>
<td>SID</td>
<td>审计 ACL的ACEs</td>
</tr>
<tr>
<td valign="top" rowspan="3">Permissions ACL</td>
<td>ACE</td>
<td>SID</td>
<td valign="top" rowspan="3">许可 ACL的 ACEs</td>
</tr>
<tr>
<td>ACE</td>
<td>SID</td>
</tr>
<tr>
<td>ACE</td>
<td>SID</td>
</tr>
<tr>
<td colspan="3">SID (User)</td>
<td valign="top" rowspan="2">对象的所有者</td>
</tr>
<tr>
<td colspan="3">SID (Group)</td>
</tr>
</table>
<!-- ======================================================================== -->
<p>
安全描述符对于阻止未经授权访问文件的情况是必要手段。它存储以下信息: </p>
<ul>
<li>文件所有者</li>
<li>所有者对其它用户的许可</li>
<li>需要记录的动作(审计)</li>
</ul>
<h2>属性结构</h2>
<h2>注意</h2>
<h3>大小</h3>
<p>
就像在 <a href="../files/attrdef.html">$AttrDef</a>中定义的,此属性没有上下限。</p>
<h3>其它信息</h3>
<h2>流的结构</h2>
<h2>问题</h2>
<ul>
<li>目录的ACE如何传递?</li>
<li>如何把ACE装入一个正常的UNIX文件系统?</li>
<li>如何把文件许可加入PAM或SMB?</li>
<li>能用NT鉴定吗?为什么?</li>
</ul>
<h2>需要做的</h2>
<ul>
<li>判断哪种规格,特性和权利涉及哪种文件系统活动,例如,FILE_APPEND_DATA允许用户扩展一个
文件而<b>不</b>是创建一个文件。</li>
<li>看是否填充零并且标记域做了标记。</li>
<li>试试一般的读/写/执行/全部标记。</li>
</ul>
<h3>标题</h3>
<table border="1" summary="" cellspacing="0">
<tr>
<th class="numeric">偏移量</th>
<th class="numeric">大小</th>
<th>描述</th>
</tr>
<tr>
<td class="numeric">0x00</td>
<td class="numeric">1</td>
<td>标题 1</td>
</tr>
<tr>
<td class="numeric">0x01</td>
<td class="numeric">1</td>
<td>标题 2</td>
</tr>
<tr>
<td class="numeric">0x02</td>
<td class="numeric">1</td>
<td>标题 3</td>
</tr>
<tr>
<td class="numeric">0x03</td>
<td class="numeric">1</td>
<td>标题 4</td>
</tr>
<tr>
<td class="numeric">0x04</td>
<td class="numeric">4</td>
<td>到用户 SID的偏移量</td>
</tr>
<tr>
<td class="numeric">0x08</td>
<td class="numeric">4</td>
<td>到群组 SID的偏移量</td>
</tr>
<tr>
<td class="numeric">0x0C</td>
<td class="numeric">4</td>
<td>ACL 审计</td>
</tr>
<tr>
<td class="numeric">0x10</td>
<td class="numeric">4</td>
<td>ACL 许可</td>
</tr>
</table>
<p>标题域可能是某些标记,没有任何说明。<br>
标题1好像总是0x01<br>
标题2好像总是0x00<br>
标题3是0x04 或 0x14,如果是0x04 那么无审计信息;如果是0x14则有审计信息。<br>
标题4好像总是0x80<br>
这里有4个偏移量域。如果标题域里有4比特(位),那么所有4个偏移量都在用。<br>
如果有3比特(位)则3个偏移量在用。 巧合?</p>
<h2>ACL</h2>
<table border="1" summary="" cellspacing="0">
<tr>
<th class="numeric">偏移量</th>
<th class="numeric">大小</th>
<th>描述</th>
</tr>
<tr>
<td class="numeric">0x00</td>
<td class="numeric">1</td>
<td>ACL 修订</td>
</tr>
<tr>
<td class="numeric">0x01</td>
<td class="numeric">1</td>
<td>填料 (0x00)</td>
</tr>
<tr>
<td class="numeric">0x02</td>
<td class="numeric">2</td>
<td>ACL 大小</td>
</tr>
<tr>
<td class="numeric">0x04</td>
<td class="numeric">2</td>
<td>ACE 计数</td>
</tr>
<tr>
<td class="numeric">0x06</td>
<td class="numeric">2</td>
<td>填料 (0x0000)</td>
</tr>
</table>
<p>访问控制列表(ACL)包含一个或更多的ACE。<br>
ACL修订在我的机子上是0x02。<br>
WIN32 API建议0x01 和 0x06包含为形成队列的0x00填料。</p>
<h3>ACE</h3>
<table border="1" summary="" cellspacing="0">
<tr>
<th class="numeric">偏移量</th>
<th class="numeric">大小</th>
<th>描述</th>
</tr>
<tr>
<td class="numeric">0x00</td>
<td class="numeric">1</td>
<td>类型</td>
</tr>
<tr>
<td class="numeric">0x01</td>
<td class="numeric">1</td>
<td>标记</td>
</tr>
<tr>
<td class="numeric">0x02</td>
<td class="numeric">2</td>
<td>大小</td>
</tr>
<tr>
<td class="numeric">0x04</td>
<td class="numeric">4</td>
<td>访问屏蔽</td>
</tr>
<tr>
<td class="numeric">0x08</td>
<td class="numeric">V</td>
<td>SID</td>
</tr>
</table>
<h3>标记</h3>
<p>现在执行的类型(在NT里):</p>
<table border="1" summary="" cellspacing="0">
<tr>
<th class="numeric">值</th>
<th>描述</th>
</tr>
<tr>
<td class="numeric">0x00</td>
<td>访问许可</td>
</tr>
<tr>
<td class="numeric">0x01</td>
<td>访问拒绝</td>
</tr>
<tr>
<td class="numeric">0x02</td>
<td>系统审计</td>
</tr>
</table>
<p>
标记是一个比特域。标记可能的值取决于类型值。当应用到一个目录时,访问许可和
访问拒绝可以标记为
</p>
<table border="1" summary="" cellspacing="0">
<tr>
<th class="numeric">值</th>
<th>描述</th>
</tr>
<tr>
<td class="numeric">0x01</td>
<td>对象延续的 ACE</td>
</tr>
<tr>
<td class="numeric">0x02</td>
<td>容器延续的 ACE</td>
</tr>
<tr>
<td class="numeric">0x04</td>
<td>不传播 '延续的 ACE'</td>
</tr>
<tr>
<td class="numeric">0x08</td>
<td>只延续 ACE</td>
</tr>
</table>
<p>如果类型是系统审计,那么标记可为</p>
<table border="1" summary="" cellspacing="0">
<tr>
<th class="numeric">值</th>
<th>描述</th>
</tr>
<tr>
<td class="numeric">0x40</td>
<td>成功审计</td>
</tr>
<tr>
<td class="numeric">0x80</td>
<td>失败审计</td>
</tr>
</table>
<h2>访问屏蔽 / 访问权</h2>
<p>
访问屏蔽 / 权利 是一个比特域,列举了所有 (不)允许的动作。
</p>
<table border="1" summary="" cellspacing="0">
<tr>
<th>比特 (范围)</th>
<th>含义</th>
<th>描述 / 例子</th>
</tr>
<tr>
<td>0 - 15</td>
<td>对象特定的访问权</td>
<td>读数据, 执行, 增补数据</td>
</tr>
<tr>
<td>16 - 22</td>
<td>标准访问权</td>
<td>删除, 写 ACL, 写所有者</td>
</tr>
<tr>
<td>23</td>
<td>可以访问安全 ACL</td>
<td> </td>
</tr>
<tr>
<td>24 - 27</td>
<td>保留的</td>
<td> </td>
</tr>
<tr>
<td>28</td>
<td>一般的所有 (读, 写, 执行)</td>
<td>所有下面的</td>
</tr>
<tr>
<td>29</td>
<td>一般执行</td>
<td>所有需要执行一个程序的事</td>
</tr>
<tr>
<td>30</td>
<td>一般写</td>
<td>所有需要写入一个文件的事</td>
</tr>
<tr>
<td>31</td>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -