第 29 讲:有效权限实战
第 29 讲:有效权限实战
麻烦
第 28 讲把两道门(NTFS + 共享)配好了。配完之后呢?很多运维的验收就是「我觉得改对了」——然后第二天:
- 该能看的人打电话说打不开(组刚加、他令牌还是旧的;或一条 Deny 忘删);
- 不该能改的人,把只读文件改了(共享那道门漏配,或继承把权限带了下来);
- 用自己管理员账号去试,能打开就说「没问题」——可管理员带着
SeTakeOwnership、SeBackup这些特权,什么都能开,等于没试。
第 13 讲给了「有效访问」这一个动作。但它只是单点。本讲要把它扩成一条每次改完权限都跑一遍的流水线,让你不再靠人脑推、不再等用户打电话来验收。
这一讲只发明:一条四步验收流水线
改权限 → 有效访问 → 真人试开 → UNC 再验。
每一步堵一类坑,少一步就漏一类:
| # | 动作 | 堵住的坑 |
|---|---|---|
| 1 改 | icacls / 安全选项卡改 ACE | — |
| 2 算 | 有效访问,选目标用户算 | Deny 压过 Allow、继承带下来的意外权限 |
| 3 试 | 用那个用户的身份真去开 | 令牌过期(组刚加没重登)、特权绕过 |
| 4 验 | 走 UNC 路径再开一遍 | 共享权限这第二道门(第 28 讲) |
来源:icacls
为什么第 3、4 步不能省——这是本讲和第 13 讲的关键区别:
- 有效访问算的是「按 ACL 字面,此人该不该能」。它不知道那人电脑上的令牌是不是新的、有没有哪条旧会话还在用旧组。
- 真人试开算的是「此刻那个真实进程,真能打开吗」。令牌过期、缓存凭据、UAC 拆分(管理员令牌不带某些组,见第 5 讲),只有真人上去跑才暴露。
- UNC 再验算的是「走共享这条路还能不能」。第 28 讲说过,网络访问要同时过 NTFS 和共享两道门;本机有效访问好看,只证明 NTFS 侧没问题。
口诀:
改完别急着回。算一遍、试一遍、走网线再一遍。
用管理员账号试 = 没试——管理员什么都能。
和 icacls 对照的记录表
流水线要可重复,就得留痕。每次改权限,填一张五栏小表(建议就贴在工单里):
| 对象(打到具体文件) | icacls 摘要 | 有效访问(选谁) | 真人试开 | UNC 再验 |
|---|---|---|---|---|
E:\协同\项目A\图纸\总平.dwg | 项目A-R:(RX) 设总:(F) | 小李:读允许 / 写不允许 | runas 打开成功,另存被拒 | \\文件服务器\协同 dir 成功 |
两条纪律:
- 对象栏打到那个抱怨的文件,别只填父目录。 第 13 讲说过,父目录和文件可以是两扇门——继承切过、显式改过都会让两边答案不同。有效访问打在父目录上是「能进文件夹」,不代表「能打开里面那个文件」。
- 真人栏填的,是目标用户本人(或同组等价账号),不是你。 你是管理员,你试出来的「能开」对领导没有说服力。
怎么看见
第 2 步 · 有效访问(GUI)——打到那个具体文件,别打父目录:
总平.dwg → 右键 属性 → 安全 → 高级
→ 有效访问 → 选择用户:jzfz\xiaoli → 查看有效访问第 2 步 · 看 ACL 原料(门上的字,不是算完的结论):
icacls E:\协同\项目A\图纸\总平.dwgE:\协同\项目A\图纸\总平.dwg JZFZ\项目A-R:(RX)
JZFZ\设总:(F)
BUILTIN\Administrators:(F)
已成功处理 1 个文件; 处理 0 个文件时失败icacls 列的是规则,有效访问列的是对某人的结论——两者对得上,第 2 步才算过。
来源:icacls
第 3 步 · 真人试开——用目标用户的身份去开,别用自己:
runas /user:jzfz\xiaoli "notepad E:\协同\项目A\图纸\总平.dwg"输完小李的密码,弹出的 notepad 以小李身份在跑:能打开 = 读权限通;改一个字再保存被拒 = 写被挡。这一步会暴露有效访问看不出来的问题——比如小李刚被加进 项目A-R 组,但他本机还没重登,令牌里没这个组:有效访问按账户算「应该能」,notepad 照样打不开。这时让他注销重登再试,往往比继续改 ACE 更对症。
来源:runas
第 4 步 · UNC 再验——走共享那道门再开一遍:
runas /user:jzfz\xiaoli "cmd /k dir \\文件服务器\协同\项目A\图纸\总平.dwg"本机能开、UNC 开不开得了,取决于第 28 讲那道共享门。若本地账号和域账号不一致,加 /netonly 让这套凭据只在访问网络资源时生效。
与排障案例集交叉引用
这条流水线跑通了,日常八成的「改了权限没生效」都能当场堵住。但总有流程本身解释不了的例外——那些就交给下一讲《排障案例集》:
- 第 2 步显示「能」、第 3 步真人死活打不开 → 多半是令牌 / 组成员身份问题;
- 本机 UNC 通、跨子网 UNC 不通 → 多半是 SMB / 防火墙,不是权限;
- 一条继承怎么都改不掉 → 显式 Deny 留在子对象上。
收束
你现在会了: 一条每次改完权限都跑的四步流水线(改 → 算 → 试 → UNC 验),以及为什么每步都不能省——管理员试等于没试、只查 NTFS 漏共享、只查父目录漏文件、有效访问看不见令牌过期。
下一讲才需要: 这条流水线解释不了的那些怪情况,进《排障案例集》。
← 上一章:第 28 讲:共享设计
· 回书稿索引
→ 下一章:第 30 讲:排障案例集