WA学习-00-系统是怎么工作的-域名+权限

写在最前面:
最近因为一些工作上的原因,决定继续学习WA相关的内容。同时也回想了一下,之前学习过程中,各种放弃、失败的经历;但事物总是要往前发展的,无论是以什么形式。所以痛定思痛,把之前网上找到能够激励自己的一些话,又读了一遍。并且借助大模型,建立了一些新的学习方法。总的来说,还是希望自己能坚持吧。

其中,浙大翁恺老师:“计算机的所有东西都是人做出来的,别人能想得出来的,我也一定能想得出来。在计算机里头没有任何黑魔法,所有的东西只不过是我现在不知道而已,总有一天我会把所有细节、所有内部的东西全都搞明白的”。
scz老师:《你尽力了吗?》

相关工具如下:
书籍:《计算机原理》--谢希仁,第八版
MD文档撰写:Obsidian
集成开发环境IDE:VS Code
WA相关工具:BurpSuite等
错误排查工具:DS V4 Flash、GLM 5.3 Flash等大模型工具
学习资源:自行寻找
本记录撰写时间:2026.09.22;使用ds进行相关格式修改

----以下为正文----

一、浏览器是如何访问网站的?

Q: Alice 如果想要在自家访问 XX 系统,在整个互联网的角度上,是怎么实现的呢?

例: 如果 XX 系统 URL 为 https://www.example.com/page,会发生什么呢?

(一)URL 拆解

整个 URL 可以拆分为三部分:

组成部分 示例值 含义
协议 https 使用的通信协议
域名 www.example.com 服务器的可读地址
路径 /page 服务器上的具体资源路径

(二)DNS 解析:把域名翻译成 IP

Alice 在浏览器输入 URL 后,计算机无法直接通过域名找到服务器,必须先借助 DNS 解析(Domain Name System,域名解析系统),把域名“翻译”为具体的 IP 地址。

1、解析流程

(1)本地查询

  • 浏览器缓存
  • 操作系统缓存
  • hosts 文件
    (2)本地未命中,向附近 DNS 服务器请求解析
    (3)逐级向上查询
  • 根域名服务器
  • 顶级域名服务器(如 .com、.edu、.org)
  • 权威域名服务器
    最终得到 www.example.com 对应的 IP 地址,假设为 93.22.22.216。

2、补充知识

  • DNS 系统是一个联机分布式数据库系统,采用客户端-服务器(C/S)架构。
  • 绝大多数解析在本地完成,少部分才在互联网上完成。
  • 域名服务器分类(可类比二叉树):
    • 根域名服务器
    • 顶级域名服务器(com、edu、org)
    • 权限域名服务器(abc.com、aaa.com)

所以,Alice 的计算机首先会在本地缓存中查询域名,或向上级域名服务器请求解析,最终得到 XX 系统的服务器地址:93.22.22.216。

(本地址仅为随机示例,无实际意义。经查:ASN 为 AS15557 Societe Francaise Du Radiotelephone - SFR SA;网络范围 93.22.22.0/23;运营商为 Societe Francaise Du Radiotelephone - SFR SA。)

(三)建立 HTTPS 连接

获取到服务器 IP 后,Alice 的浏览器向 XX 系统服务器发起 HTTPS 协议连接。
由于 HTTPS 底层建立在 TCP 协议之上,因此需要分两步握手:

1、TCP 三次握手

SYN → SYN+ACK → ACK

2、TLS 握手

ClientHello → ServerHello + 证书 → 密钥交换 → Finished 等

3、关系总结

HTTPS = HTTP + TCP + TLS
通过以上步骤,客户端计算机与服务端服务器之间就建立了加密连接,可以进行信息交互和数据传递。

(四)抓包示例

使用自己的电脑访问 XX 网站时,可以抓取到相关请求报文,举例如下:

请求 URL [https://www.bilibili.com/](https://www.bilibili.com/)  
请求方法 GET  
状态代码 200 OK  
远程地址 221.XX.XX.93:443  
引用站点策略 strict-origin-when-cross-origin

1、信息解析

HTTPS 连接建立成功,HTTP 请求成功,服务器返回了 200 和页面内容。

(五)一个有意思的发现

上述抓取到的内容显示:某网站域名解析 IP 为 221.XX.XX.93:443。
约 1–2 分钟后,使用同一台电脑、同一网络环境,ping 同样的域名,得到的 IP 却是 218.XX.XX.15。
即:同一个域名,解析出了不同的 IP 地址。

1、原因分析

(1)CDN(Content Delivery Network,内容分发网络)

  • 一些高频请求的网站会在全国甚至全球部署大量节点进行内容分发。
  • 权威 DNS 服务器会根据客户端的源 IP 和服务商等,返回“最优”节点。
  • 因此,ping 和抓包这两种不同方式,在 CDN 看来可能是截然不同的请求。
    (2)DNS 配置了多个 IP
  • 高频请求的网站,在 DNS 中可能配置多个 IP 地址。

以上两种情况,都有可能造成同域名、不同 IP 的现象。

(六)页面渲染

客户端浏览器与服务端服务器建立稳定的 HTTPS 连接之后,即可渲染页面、加载相关服务。

二、操作系统权限是啥?

操作系统权限,是"谁能对什么资源做什么操作"的一套规则。
可以从三个维度理解:

维度 含义 例子
主体(WHO) 谁在操作 用户、用户组、进程
客体(WHAT) 操作什么 文件、目录、设备、注册表、服务、端口
操作(HOW) 做什么 读、写、执行、删除、修改权限

意义:限制进程越权访问,防止信息泄露等。


(一)Linux 下的权限

1. 三类身份 + 三种权限

Linux 中,每个文件/目录都有 owner / group / others 三类身份,不同身份可以做不同操作:

权限 字母 数字
读 r 4
写 w 2
执行 x 1

2. 实战:查看文件权限

命令与提示符解析

bash

Alice@bob:~/code $ ls -l dy.xlsx

部分 含义
Alice 当前登录用户名
@bob 当前主机名(机器叫 bob)
~ 当前路径为家目录
/code 完整路径是家目录下的 code 子目录
$ 普通用户提示符(root 用户提示符为 #)
ls -l dy.xlsx 以长格式列出 dy.xlsx 的详细信息

输出解析

text

-rwxrw-rw- 1 ceshi ceshi 8832 9月 21 12:40 dy.xlsx

权限部分 -rwxrw-rw-(共 10 位,第 1 位为文件类型,其余 9 位分 3 组):

位置 内容 含义
第 1 位 - 文件类型:普通文件(d=目录,l=链接)
第 2-4 位 rwx 属主权限:读、写、执行
第 5-7 位 rw- 属组权限:读、写、无执行
第 8-10 位 rw- 其他人权限:读、写、无执行

数字表示:rwx=7;rw-=6;rw-=6 → 权限为 766

其余字段:

字段 值 含义
属主 ceshi 文件拥有者
属组 ceshi 文件所属的组(创建用户时自动创建同名组)
大小 8832 字节 约 8.6KB(8832 ÷ 1024 = 8.626KB)
修改时间 9月21日 12:40 最后修改时间
文件名 dy.xlsx ——

3. 补充例子 1:目录权限

drwxr-xr--

  • d:这是一个目录
  • 属主权限:rwx(7)
  • 属组权限:r-x(5)
  • 其他人权限:r--(4)
  • 权限数字:754

目录的 r/w/x 含义:

权限 对目录的含义
r 可以列出目录内部文件名(ls)
w 可以在目录下创建、删除、重命名文件
x 可以进入该目录(cd),访问目录内文件

注意:只有 r 没有 x 时,ls 可以看文件名,但无法 cd 进入,也无法访问目录内文件内容。
省流版:drwxr-xr-- 表示这是一个目录,属主可读可写可进入,同组用户可读可进入但不可写,其他人只能看到文件名但进不去。权限数字为 754。


4. 补充例子 2:符号链接

创建与查看

ln -s /etc/nginx/nginx.conf myconf
ls -l myconf

输出:

lrwxrwxrwx 1 alice alice 20 9月 22 10:00 myconf -> /etc/nginx/nginx.conf

解析

部分 值 含义
第 1 位 l 符号链接
权限 rwxrwxrwx 符号链接默认显示,实际不生效
硬链接数 1 符号链接本身算一个文件
属主 alice ——
属组 alice ——
大小 20 目标路径字符串的长度(/etc/nginx/nginx.conf 共 20 字符)
时间 9月22日 10:00 ——
名称 myconf -> /etc/nginx/nginx.conf 链接名指向的目标

备注

Linux 大多数情况下,ln -s 创建符号链接时,系统默认把权限位设成 rwxrwxrwx。
但部分文件系统上(如 FAT/NTFS 挂载等),权限位可能显示为其他值。比如 macOS 中可能出现:

lrwxr-xr-x ... bar -> /tmp/foo

符号链接是啥?

符号链接(Symbolic Link,简称 symlink),可以理解成 Windows 里的快捷方式。它是一个特殊文件,内容只是指向另一个文件或目录的路径。


5. 修改权限

chmod 754 file.txt        # 数字方式
chmod u+x file.txt        # 符号方式:给属主加执行
chown alice:dev file.txt  # 改属主和属组
chgrp dev file.txt        # 只改属组

命令解析

命令 全称 作用
chmod change mode 改变模式/权限
chown change owner 改属主和属组
chgrp change group 只改属组

chmod 754 file.txt:属主 7;属组 5;其他 4。
chmod u+x file.txt:给属主增加执行权限。

  • u=user(属主);g=group(属组);o=others(其他);a=all(所有人)
  • +=加权限;-=减权限;==直接设定权限
  • x=执行;r=读;w=写
    chown alice:dev file.txt:修改属主和属组。
    chgrp dev file.txt:只把文件的属组修改为 dev。

常见问题

Q:为什么可以修改权限?
A:Linux 中,每个文件在文件系统里都有 inode(索引节点),里面包含:文件类型、大小、时间戳、属主 UID、属组 GID、权限位 mode。而 chmod/chown/chgrp 等指令就是修改 inode 里面的这些字段。

Q:如何防止非授权修改?
A:内核进行检查:

  • 改权限 chmod:只有文件属主或 root 才可以修改
  • 改属主 chown:只有 root 可以修改
  • 改属组 chgrp:属主可以把组改为自己所属的组,root 可以改为任意组

Q:为什么系统允许改?
A:Unix 就是这么设计的——一切皆文件。

额外注意

对于目录而言:

  • r:可以列出目录下内容(ls)
  • w:可以在目录里面创建、删除文件
  • x:可以进入目录(cd)、访问文件

6. 权限掩码 umask

umask(user file-creation mode mask) 用来决定新建文件/目录时,默认权限里要"扣掉"哪些位。
即:新建文件/目录时,系统先用一个基准权限,再减去 umask 里为 1 的位,得到最终权限。

umask        # 查看当前掩码,常见 022
umask 027    # 设置掩码为 027

基准权限(固定)

类型 基准权限 数字
普通文件 rw-rw-rw- 666
目录 rwxrwxrwx 777

最终权限 = 基准权限去掉 umask 中为 1 的位(按位与非)。

例子

umask = 022

类型 计算 结果
新建文件 666 去掉 022 644 → rw-r--r--
新建目录 777 去掉 022 755 → rwxr-xr-x

umask = 027

类型 计算 结果
新建文件 666 去掉 027 640 → rw-r-----
新建目录 777 去掉 027 750 → rwxr-x---

常见问题

Q:为什么会有 umask 的存在?
A:用于权限管理。想要严格,调大 umask 即可。

  • 022:常见默认,同组和其他人可以读
  • 027:其他人无权限,常用于服务器
  • 077:只有自己可以访问

额外注意:umask 只在当前 shell 会话生效,关闭则消失。要持久化,需写入配置文件:

范围 配置文件
当前用户 ~/.bashrc 或 ~/.profile
全局 /etc/profile 或 /etc/bashrc

例如在 ~/.bashrc 中增加一行:`umask 027

理解

  • chmod:精确给某个文件设定权限
  • umask:对新建文件/目录默认设定权限

补充

Linux 中,root 为超级用户,绕过所有权限检查;sudo 是给予普通用户临时 root 权限。


(二)Windows 下的权限

Windows 的权限控制与 Unix 差别比较明显,因为 Windows 的核心是 ACL(访问控制列表) 和 安全主体。

1. 安全主体

包含三类:

  • 用户账户:本地用户、域用户
  • 组:Administrators、Users、Guests 等
  • 计算机账户:域环境中的机器账户

如何理解上述几类?

用户账户 = 一个可以登录、可以被授权的人或服务。

类型 说明
本地用户 Administrator、Guest、Alice;只在本机有效,只能登录本机;登录时需验证口令
域用户 整个域内有效;在域内任意计算机上登录域用户账号,即可访问资源
内置特殊账户 Administrator 是最高权限本地管理员;Guest 默认禁用,只给无账户的访客使用

组:组是权限的容器。把权限授给组,再把用户加到组,则用户就继承了当前组的权限,不用给每个人单独配置权限。

类型 说明
本地组 只限定于当前计算机
域组 整个域内都有效

计算机账户:AD 域内,每台加入域的计算机本身也是一个安全主体,AD 里面对应一个计算机账户。


2. 权限类型

权限 说明
完全控制 读、写、执行、删除、改权限、改属主
修改 读、写、执行、删除
读取和执行 读取 + 执行
读取 只读
写入 只写

3. 权限检查链

用户登录
  → 域控验证用户账户
  → 机器用计算机账户与域建立信任
  → 生成访问令牌(含用户 SID + 所有组 SID)
  → 访问资源时,拿令牌 SID 比对资源 ACL
  → 决定允许/拒绝


4. 常见误区

  1. "Administrators 组 = Administrator 账户"
    不是。Administrator 是账户,Administrators 是组;前者默认属于后者。
  2. "本地管理员能管域"
    不能。本地 Administrators 只对本机有最高权限,对域没权限。
  3. "计算机账户不重要"
    很重要。删掉或损坏计算机账户,机器就失去域信任,需要重新加域。
  4. "组只是方便管理"
    不只是。组是安全主体,有自己的 SID,是权限授予的直接对象。
posted @ 2026-09-22 13:52  两块饼干  阅读(14)  评论(0)    收藏  举报