第 13 讲:有效权限
第 13 讲:有效权限
卷一 · 发明权限(共 15 讲)
师生对话实录课:AI 当老师、我当 0 基础学生。实验场 C:\Lab。
开场:领导只问一句,小王答不上来
🧑🏫 老师:
第 9、12 讲之后,小王已经会往门上贴规矩、也会让规矩往下传。可验收的时候他仍会卡住。目录里有一份图:
E:\协同\项目A\图纸\总平.dwg门上的 DACL 是几轮继承和手工修改叠出来的:项目组能读、只读组也能看、设总完全控制,中间还留过临时封锁……icacls 一拉,十几行。领导问:
小李现在——能打开总平看吗?能不能改?
小王开始数:小李在项目组里,所以有 RX……只读组好像也有他……那条 Deny 还在不在……父目录和文件上的字还不一样……数到一半,说不清了。
🧑🎓 学生: 这里真正难的不是「不会贴 ACE」——
🧑🏫 老师:
对,是:门上的字是原材料;领导要的是对某一个人算完之后的结论。 原材料看得到(icacls、安全选项卡),结论——「小李:能读?能写?」——用人脑从十几行里推,很容易推崩。
而回想第 10 讲:小李双击文件时,系统会拿他进程里的令牌去对这份文件的 DACL,当场算出允不允许。也就是说——计算,系统一直在做。小王缺的不是再发明一种权限,而是:在领导追问时,把「系统会算出的那个答案」先看一眼。
于是有了本讲要发明的东西——把对表结果显示出来的那一页:有效访问(Effective Access),口语叫有效权限。注意它仍然读的是原来的 DACL,不是门上又多贴出第三种规矩。
第 1 课:小王跟着点一遍 + 我们跟着算一遍
🧑🏫 老师:
对「打不开就会挨问」的那一个对象操作(不要只查父文件夹就交差):
总平.dwg
→ 右键属性 → 安全 → 高级
→ 「有效访问」标签
→ 选择用户:小李
→ 查看有效访问屏幕上会出现:读取、写入、修改……对小李而言大概行不行。验收收成两句人话:领导要「能看」→ 看读相关项是否允许;领导要「不能改」→ 看写/修改是否不允许。
GUI 的那一页我没法截图给你,但它显示的结论可以用真实开门来验证——造一个最容易推崩的矛盾局面(组里 Allow、本人 Deny,本机实测):
PS> Set-Content C:\Lab\eff.txt 'total-drawing'
PS> icacls C:\Lab\eff.txt /inheritance:r /grant:r 'LabReaders:(RX)' # 组:读执行
PS> icacls C:\Lab\eff.txt /deny 'PC3507\LabUser1:(R)' # 本人:拒绝读
PS> icacls C:\Lab\eff.txt
C:\Lab\eff.txt PC3507\LabUser1:(DENY)(R) ← 本人 Deny
PC3507\LabReaders:(RX) ← 组 Allow人脑的直觉:LabUser1 在 LabReaders 组里,组给了 RX,「应该还能看」。有效访问会显示什么? 直接开门验证(以 LabUser1 真实身份):
PS>(LabUser1 身份)type C:\Lab\eff.txt
拒绝访问。 ← 组 Allow 被本人 Deny 扳倒了再把那条 Deny 删掉重试:
PS> icacls C:\Lab\eff.txt /remove:d LabUser1
PS>(LabUser1 身份)type C:\Lab\eff.txt
total-drawing ← 结论跟着 DACL 变了这就把第 9~10 讲的直觉钉死了:对表时 Deny 压过 Allow;有效访问不会替你「把组里的 Allow 和本人 Deny 平均一下」——它显示的是系统会采用的结论。 小王不必在脑子里做加减法:先看有效访问的结论,再去门上找那条 Deny。
| 你在问 | 看哪里 |
|---|---|
| 门上写了哪些规矩? | icacls / 安全选项卡的规则列表 |
| 小李最终怎样? | 有效访问(选小李,针对这个文件) |
插问:还有哪些坑会让人答错领导?
🧑🎓 学生: 除了 Deny 扳倒 Allow,还有什么会让「我以为的结论」和实际不一样?
🧑🏫 老师:
三句,句句对应一种真实事故:
- 查错对象。 小李能进
项目A、却打不开总平.dwg——父目录和文件是两扇门(继承切过、显式改过都会这样,第 12 讲)。有效访问要打在抱怨的那一个路径上。 - 本机说能、网上仍不能。 有效访问算的主要是 NTFS 这道门。走
\\服务器\共享\...还要过共享权限那道门(第 10 讲两道门)——本机有效访问好看,只说明 NTFS 侧没问题,代替不了查共享。 - 他那边令牌还是旧的。 小李刚被加进组、自己还没重新登录——他电脑上的令牌没有新组(第 8 讲「名册有我、令牌查无此组」、第 5 讲令牌定型)。你这边按账户算「应该能」,他那边进程就是进不去。让他重新登录再试,比继续改 ACE 对症。
收束
你现在会了: 改完权限后,用有效访问回答「这个人对此对象到底怎样」——它是对表结果的显示,不是新 ACL;icacls 看门上的字,有效访问看算完的结论;对不上就回 DACL 找那一行(Deny、两扇门、共享门、旧令牌,四类最常见)。
下一讲才需要: 不只问「能不能碰」,还要问「碰了记不记」——审计 / SACL。
← 上一章:第 12 讲:继承
· 回书稿索引
→ 下一章:第 14 讲:SACL