现代操作系统大多是“多用户、多任务”系统:同一台电脑可能被多人使用,同一台服务器也可能同时承载多个服务。为了保证系统稳定与数据安全,操作系统必须回答三个关键问题:谁可以登录?谁能读取或修改哪些文件?程序被允许执行哪些操作?
身份验证与授权
在计算机安全体系中,权限控制通常由两个彼此独立、但缺一不可的环节组成:
-
身份验证(Authentication,常缩写为 AuthN):证明“你是谁”。 例如,用户输入账号密码、扫描指纹、进行人脸识别,或使用硬件密钥登录。系统首先要确认当前操作者是不是声称的那个身份。
-
授权(Authorization,常缩写为 AuthZ):判定“你能做什么”。 当身份确认后,系统会按照预先设定的规则,判断这个用户是否有权打开某个文档、运行某个软件、修改系统设置或访问某台资源。
简而言之: 身份验证负责确认身份,授权负责决定范围。
应用程序启动时,通常会继承启动它的用户身份和权限上下文。也就是说,程序以谁的身份运行,它一般就只能拥有那个身份允许的操作范围。例如:
- 如果你用普通用户账号登录系统,然后打开记事本,那么记事本进程也只能访问该普通用户有权限读取或修改的文件;
- 即使一个程序没有主动请求管理员权限,只要它以你的用户身份运行,就可能拥有读取、修改甚至删除你个人目录下照片、文档和其他私人数据的权限。
这也是为什么随意运行来源不明的程序非常危险:程序一旦启动,就可能借用了当前用户的权限边界。
读取、写入与执行权限
在操作系统层面,文件权限通常可以拆分为三类基本操作:读取、写入、执行。它们彼此独立,不能混为一谈。
| 权限 | 含义 | 典型表现 |
|---|---|---|
| 读取(Read,r) | 允许查看文件内容,或在一定条件下列出目录中的条目 | 能打开文件阅读,能看到目录里有哪些文件 |
| 写入(Write,w) | 允许修改文件内容,或在目录中新增、删除、重命名条目 | 能保存修改,能新建文件,能删除文件 |
| 执行(Execute,x) | 允许将文件作为程序或脚本运行;对目录而言,通常表示允许访问该目录路径 | 能运行 .exe、脚本,或进入指定目录 |
需要特别注意:能读取一个文件,并不等于能写入一个文件。
例如,你只有某个共享文件的“读取”权限。你可以用编辑器正常打开它、阅读内容,也可以在编辑器窗口里临时修改文字。可是,当你点击“保存”,试图把修改写回原文件时,操作系统会拦截这次写操作,并返回类似“拒绝访问(Access Denied / Permission Denied)”或“权限不足”的提示。
这里的关键在于:
- 打开文件,对应的是读取权限;
- 在编辑器里改动内容,只是修改了当前内存中的缓冲区;
- 保存回原文件,才真正涉及写入权限。
因此,修改成功与否,不能只看编辑器窗口里的文字有没有变化,而要看系统是否允许程序把结果写回磁盘。

