鸟哥的私房菜:权限应用、程序观察与基本管理学习笔记

导言
在 Linux 系统的理论研究与工程实践过程中,权限分配机制、程序运行监控及基础管理策略构成了系统安全与资源调度的核心理论体系。深入解析这些关键技术,不仅有助于构建稳固的系统安全防线,还能通过资源的精细化管理提升系统整体运行效能。以下将对这些核心内容展开系统性探讨。
一、权限在目录与文件系统中的作用机制
Linux 系统基于用户身份(所有者、所属组、其他用户)与权限类型(读r、写w、执行x)构建三维权限管理模型。不同文件类型(普通文件、目录文件)权限语义差异显著,影响资源访问与操作。
普通文件权限:读权限允许查看内容;写权限支持内容修改但不包括删除;执行权限赋予运行能力,但需文件内容有效。
目录文件权限:读权限可枚举文件名;写权限能修改目录结构;执行权限决定能否进入目录。
二、程序管理的理论与实践
在 Linux 系统运行中,程序从外部设备加载到内存后成为进程,对进程的监控与调度是系统管理关键。
1. 程序与进程的概念辨析
程序:静态存储于硬盘等介质的二进制文件,无运行时动态特征。
进程:程序执行时,系统将代码、数据及权限载入内存并分配 PID。同一程序可生成多个进程,进程间有父子层级关系。
2. 进程监控的命令工具集
实验时,可设计流程检索特定进程 PID 与名称,分析进程依赖;通过man ps研究ps命令输出格式与排序规则,掌握top命令参数配置技巧。
ps -l
:
该命令是ps(process status
,进程状态)的长格式输出变体,专门用于查询与当前 shell 进程相关的程序信息。
执行后,终端会呈现包含F 列(进程标志)、S 列(运行状态,如 S 表示睡眠、R 表示运行)、UID 列(用户 ID)、PID 列(进程 ID)、PPID 列(父进程 ID) 等核心字段的详细列表。
例如,当用户在bash
环境下输入ps -l
,不仅能看到当前活跃的bash进程,还能追溯到其下挂的子进程(如通过管道连接的命令进程),这种信息对于理解当前操作引发的进程树状结构,排查命令执行异常等场景具有重要价值。
pstree
:
作为进程关系可视化的利器,pstree
以树形结构直观呈现系统进程的层次关系。
通过添加-A选项可强制使用 ASCII 字符绘制树形图,避免因终端编码问题导致的显示错乱;-up组合选项则会在每个进程节点旁标注其 PID 与所属用户信息。
例如,执行pstree -Aup
后,终端会以systemd
(系统初始化进程,PID 通常为 1)为根节点,逐层展开所有进程的父子从属关系。当系统出现僵尸进程或异常进程链时,运维人员可借助这种可视化呈现方式,快速定位到异常进程的根源节点。
ps aux
:
该命令采用 BSD 风格输出,能够获取系统中所有运行进程的详细信息,包含USER 列(所属用户)、PID 列(进程 ID)、% CPU 列(CPU 使用率)、% MEM 列(内存占用率)、VSZ 列(虚拟内存大小) 等 11 个关键指标。
系统管理员在排查性能瓶颈时,可通过管道结合grep命令快速筛选特定进程(如ps aux | grep java查找 Java 进程),或使用sort命令对进程按资源占用排序(如ps aux --sort=-%mem按内存占用倒序排列),从而精准定位高负载进程,为系统调优提供数据支持。
top
:
作为动态系统监控的核心工具,top默认每 5 秒自动刷新数据,实时展示系统负载、CPU 利用率、内存使用情况以及各进程的运行参数。
在交互界面中,用户可通过按键操作实现灵活控制:按P键可将进程列表按 CPU 使用率降序排列,快速定位 CPU 密集型任务;按M键则以内存占用为排序依据,识别内存消耗大户;通过d键可自定义刷新频率(如输入2将刷新间隔调整为 2 秒)。
此外,输入进程 PID 后按k键可直接向指定进程发送信号(如终止进程的SIGTERM信号),这种一站式的监控与管理功能,使其成为系统运维中不可或缺的利器。。
3. 进程优先级的调控机制
Linux 通过 PRI(静态优先级,用户不可直接修改)和 NI(用户可调控)管理进程优先级,PRI(new) = PRI(old) + NI。NI 取值范围 - 20 至 19,root 用户可调整任意进程 NI 值,普通用户仅能调整自身进程且范围为 0 至 19,只能调高优先级。
nice命令用于程序启动时设定 NI 值,renice命令修改运行中进程 NI 值,也可在top交互界面动态调整。实验可观察bash进程参数,对比top与ps -eo
对优先级计算差异,修改 NI 值分析其影响。
4. bash 环境下的作业管理体系
bash 作业分前台(与终端交互)和后台(非交互,[ctrl]+c无法终止,需bg/fg控制)作业,后台作业禁止阻塞终端输入。
常用命令:
command &
:后台执行命令,建议配合输出重定向。[ctrl]+z
:暂停前台作业并转入后台。jobs [-l]
:列出作业信息,-l显示 PID。fg %n
:恢复指定后台作业到前台。bg %n
:恢复指定后台作业运行。
四、特殊权限的功能特性与应用场景
Linux 的 SUID、SGID 及 SBIT 特殊权限满足特定安全与共享需求。
1. 特殊权限的功能解析
可通过实际操作验证,如修改密码观察 SUID,用locate分析 SGID,实验/tmp
目录验证 SBIT。
SUID:用于二进制可执行程序,用户执行时临时获取程序所有者权限,如
/usr/bin/passwd
程序。SGID:在二进制程序与目录中起作用,程序执行时获取所属群组权限,目录下新建文件所属群组与目录一致。
SBIT:用于公共可写目录(如
/tmp
),仅文件所有者与 root 用户可删除文件。
2. 特殊权限的设置方法
特殊权限可通过数字法(4 代表 SUID,2 代表 SGID,1 代表 SBIT,与传统权限组合)和符号法(chmod u+s
设置 SUID,chmod g+s
设置 SGID,chmod o+t
设置 SBIT)设置。实验可按需为程序和目录配置特殊权限。