第 0 讲:没有权限的世界
第 0 讲:没有权限的世界
卷一 · 发明权限(共 15 讲)
本卷是师生对话实录课:AI 当老师、我当 0 基础学生,每讲只发明一个概念。实验场是 C:\Lab(本机已搭好:两个测试账号、一个测试组、三个样例文件)。
开场:一台电脑,一个人
🧑🏫 老师:
今天不讲任何新名词。先做个思想实验。
一台电脑,一个使用者。文件就躺在磁盘上,谁开机谁能动——读、改、删,全凭手快。这个「没有权限」的世界,有什么问题?
🧑🎓 学生: 呃……看起来没问题啊?我自己的电脑,我想动什么动什么。我现在这台机器不就这样?
🧑🏫 老师:
对,单人单机,权限是多余的——这正是很多人学 Windows 权限觉得抽象的原因:他们从没被迫跟别人共享过一台机器。麻烦从第二个人坐到这台电脑前开始。
不用真找一个人来。实验场里我们早就备好了「第二个人」——一个叫 LabUser2 的本机测试账号。看看同一台机器上,两个身份长什么样:
# 我(域账户,日常登录的这个)
whoami
# LabUser2(本机测试账户,用它的凭证起一个进程替我们跑)
# Start-Process -Credential ... cmd /c whoamijzfz\chengongyi ← 我:域 jzfz 里的账户
pc3507\labuser2 ← LabUser2:本机 PC3507 上的账户(前缀不一样有讲究——jzfz 是这台机器加入的域,pc3507 是机器自己。第 1 讲讲账户时这个差别会正式登场,今天只用它证明一件事:同一台机器上,确实存在「另一个身份」。)
🧑🎓 学生: 我猜到你要问什么了——这台机器怎么知道现在敲键盘的是哪一个?
🧑🏫 老师:
这就是全部要害。一旦「谁在操作」变成了一个真问题,后面三个问题会连环砸过来:
- 认人——机器靠什么认出「现在动手的是谁」?(名字会改、会重名,第 2 讲的 SID 解决)
- 记规则——「谁能对哪个东西做什么」记在哪、怎么记才不乱?(第 7~12 讲的权限位、ACE、DACL)
- 做裁决——动手那一刻,谁来比对「他」和「规则」,放行还是拒绝?(第 10 讲的访问检查)
「权限」这个词,就是这三个问题的总称。 卷一剩下的 14 讲,就是把这三个问题一个一个发明出答案来——像世界上从来没有过这些东西一样,从麻烦出发,一次发明一件。
顺手把实验场亮个相(附录·实验室搭的,全书通用):
C:\Lab\
├── public.txt 公开资料,谁都能看
├── boss-only.txt 只有老板能看
└── sub\ 演示继承的子文件夹
本机账号:LabUser1(在 LabReaders 组里)、LabUser2(不在任何组里)一个「组里的人」、一个「组外的人」,后面九成的「允许 / 拒绝」实验都用这两人对照。
一句话总结本讲:
单人单机不需要权限;第二个人的出现,逼出了「认人、记规则、做裁决」三个问题——全书就是这三个问题的三套答案。
你现在会了:为什么需要后面这些发明。
下一讲才需要:怎样认出「现在动手的是谁」——账户。