第一部分 原理篇 2
第1章 基本作业指南 2
1.1 为什么系统需要管理 2
1.2 谁管理着Linux系统 3
1.3 称谓和角色 4
1.3.1 系统操作员和经理 4
1.4 重叠的职责 6
1.5 “厂商”文档 6
1.6 其他书籍 7
1.7 网站上的这本书 7
第2章 需求分析 9
2.1 系统管理员的工作要求 9
2.1.1 责任假定 10
2.1.2 企业需求 10
2.2 服务级规范 11
2.3 最初的需求分析 12
2.4 进一步的需求分析 12
2.5 过程 13
2.5.1 提取问题说明 14
2.5.2 阐明职权 14
2.5.3 定义成功的测量标准 14
2.5.4 公开提出问题 14
2.5.5 编制规范 14
2.6 固有需求 15
2.6.1 保持系统资源的可访问性 15
2.6.2 使升级、扩展以及新的安装更加便利 16
2.7 操作分析 16
2.8 决策与建议 17
2.9 进一步的学习 17
第3章 制定系统还原计划 18
3.1 从零做起 19
3.2 紧急还原盘 19
3.2.1 自动安装 20
3.3 紧急还原根分区 20
3.3.1 自动还原的配置 20
3.4 分区表与引导程序代码 21
3.5 文件系统 23
3.5.1 快照分区 23
3.6 系统文档 25
3.6.1 忠告:保留一份唾手可得的打印分区表 25
3.7 风险评估 25
3.7.1 用户错误 26
3.7.2 管理员错误 26
3.7.3 硬件错误 26
3.7.4 设施故障 27
3.7.5 软件缺陷 27
3.7.6 安全缺口与破坏 27
3.7.7 关键人物 28
3.7.8 环境灾难 28
3.7.9 其他灾难 28
3.8 成本与后果评估 28
3.9 数据资源 29
3.9.1 软件 29
3.9.2 配置数据 29
3.9.3 过渡数据 29
3.9.4 开发中的数据 30
3.9.5 成品数据 30
3.9.6 数据库 30
3.10 简单事例 31
3.11 规划还原方法 31
3.12 测试还原计划 32
第4章 功能规划 33
4.1 监视 33
4.1.1 磁盘空间 36
4.1.2 带宽和等待时间 37
4.2 诊断 37
4.3 解决方案 38
4.3.1 性能优化 38
4.3.2 添加资源 40
4.3.3 减少资源利用 41
4.4 预留余地 41
4.5 人员的容量 41
4.6 结论 42
第5章 技术支援与问题提交 43
5.1 救急 43
5.2 分发 43
5.3 交际方法 43
5.4 报告系统 44
5.4.1 自动监视:报警 45
5.5 评估、预防与记录 45
5.6 提交计划 46
第6章 网络计算 47
6.1 结构目标 47
6.1.1 关于名称区间的一点看法 48
6.2 网络服务一览 49
6.3 新名词 49
6.3.1 企业内部网 49
6.3.2 外部网 50
6.4 Linux与网络技术 50
第7章 安全措施 51
7.1 数据完整性 51
7.1.1 避免对数据的破坏 51
7.1.2 检测遭破坏的数据 52
7.1.3 破坏还原 53
7.2 保证数据的可访问性 53
7.2.1 防止服务拒绝 53
7.2.2 检测服务攻击 54
7.2.3 还原可访问性 54
7.3 保护机密数据 54
7.3.1 防止泄露 54
7.3.2 检测机密数据的丢失 55
7.3.3 还原机密数据 55
7.4 安全措施的实施 55
第二部分 实践篇 58
第8章 安全措施的实施 58
8.1 保证企业的安全性 58
8.1.1 因特网 58
8.1.2 远程访问 59
8.1.3 内部安全性 59
8.1.4 数据中心 60
8.2 保证系统的安全性 60
8.2.1 配置 60
8.2.2 口令与口令短语 61
8.2.3 文件访问权限 61
8.2.4 特殊的帐号和环境 62
8.2.5 工具 62
8.2.6 暴露的系统 63
8.3 破解工具及其后果 63
8.3.1 用户破解工具 63
8.3.2 root破解工具 64
8.3.3 陷阱与特洛伊木马 64
8.3.4 拒绝服务 64
8.4 应对破坏的步骤 65
8.5 最新信息 65
8.6 进一步学习的参考资料 65
第9章 启动与关闭 66
9.1 启动 66
9.1.1 PC固件及其引导程序 66
9.1.2 Alpha固件及其引导程序 67
9.1.3 SPARC固件及其SILO 68
9.1.4 Macintosh固件及其BootX 68
9.1.5 内核引导 68
9.1.6 init 69
9.1.7 rc脚本 70
9.2 关闭过程 71
9.3 进一步学习的参考资料 72
第10章 内核程序的配置与创建 73
10.1 内核程序的基础知识 73
10.1.1 虚拟机 74
10.1.2 永久存储设备 74
10.1.3 进程间通信 74
10.1.4 内核的结构 74
10.1.5 Linux内核版本 75
10.2 虚拟内存 75
10.3 进程调度器 76
10.4 网络支持 77
10.5 文件系统的支持 77
10.5.1 ext2文件系统 78
10.5.2 Microsoft Windows文件系统 78
10.5.3 NFS 78
10.5.4 Auto FS 79
10.5.5 SMB支持 79
10.5.6 NCP支持 79
10.5.7 Coda文件系统 79
10.5.8 Proc文件系统 79
10.6 Capabilities模式 79
10.7 硬件支持 80
10.8 内核的配置 81
10.8.1 模块 81
10.9 编译内核程序 82
10.10 内核的安装 82
第11章 脚本编制 84
11.1 关于shell 84
11.2 常见的实用程序 85
11.3 其他编程语言 85
11.4 编写脚本的动机 85
11.4.1 简化 86
11.4.2 自动化 87
11.4.3 控制 87
11.4.4 任务委托 88
11.5 日志文件的过滤与老化 88
11.5.1 Perl 91
11.5.2 expect 95
11.6 安全性 95
11.7 进一步学习的参考资料 95
第12章 备份 97
12.1 假设条件 97
12.2 需求与措施 97
12.2.1 成本核算 98
12.2.2 时间调度 98
11.2.3 数据的保持方法 98
12.3 系统特点 99
12.3.1 档案格式 99
12.3.2 编目 99
12.3.3 磁带机器人技术与点播机 99
12.4 应用程序的因素 99
12.5 系统与数据 100
12.5.1 稀疏文件 101
12.5.2 所有权 101
12.6 存档媒体 102
12.7 测试 102
12.7.1 测度的风险 103
12.8 基本工具 103
12.8.1 系统相关的扩充 103
12.9 tar的使用 103
12.9.1 备份:本地磁带机 104
12.9.2 备份:选择性地 104
12.10 cpio的使用 107
12.10.1 备份:远程磁带机 107
12.10.2 备份:本地安装的文件系统 108
12.10.3 还原:本地磁带机 108
12.10.4 还原:远程磁带机 108
12.11 NFS 109
12.12 AMANDA的使用 109
12.13 支持命令 109
12.13.1 find 110
12.13.2 mt和mtx 110
12.13.3 buffer 110
12.13.4 bakdirs 111
12.13.5 多卷宗备份 111
12.14 其他的备份/还原软件包 112
第13章 网络技术 113
13.1 IP协议堆 113
13.2 IP的版本 4 114
13.2.1 IPv4的地址结构 114
13.2.2 RFC1918编址 116
13.2.3 地址解析协议(ARP) 116
13.2.4 IPv4的数据传输 117
13.2.5 IPv4寻址 117
13.2.6 用户数据报文协议(UDP) 118
13.2.7 传输控制协议(TCP) 119
13.3 IP版本 6 119
13.3.1 IPv6的地址结构 120
13.3.2 IPv6的地址分配 121
13.3.3 IPv6的地址表示法 122
13.3.4 DNS对IPv6的扩充 122
13.3.5 自动地址配置 123
13.3.6 邻近发现 123
13.3.7 IPv6的安全性 123
13.3.8 Linux的IPv6实现 124
13.4 Linux的网络配置 124
13.4.1 网络初始化 124
13.4.2 Linux的动态寻址 124
13.4.3 利用Linux建立防火墙 125
13.5 进一步学习的参考资料 125
第14章 系统框架 127
14.1 客户机 127
14.2 服务器 127
14.3 独特的计算机 128
14.4 文档 128
14.5 分区原理 129
14.5.1 /目录 129
14.5.2 /bin目录 129
14.5.3 /boot目录 130
14.5.4 /dev目录 130
14.5.5 /etc目录 130
14.5.6 /home目录 130
14.5.7 /lib目录 130
14.5.8 /lost+found目录 131
14.5.9 /mnt目录 131
14.5.10 /opt目录 131
14.5.11 /proc目录 131
14.5.12 /root目录 131
14.5.13 /sbin目录 131
14.5.14 /tmp目录 131
14.5.15 /usr目录 132
14.5.16 /var目录 132
14.6 客户机的分区 132
14.7 服务器的分区 132
14.7.1 DNS服务器的分区 133
14.7.2 NIS服务器的分区 133
14.7.3 邮件服务器的分区 133
14.7.4 ftp和http服务器的分区 133
14.7.5 NFS服务器的分区 134
14.7.6 Samba服务器的分区 134
14.7.7 新闻服务器的分区 134
14.7.8 数据库服务器的分区 134
14.7.9 应用程序服务器的分区 134
14.7.10 通用的服务器分区 135
14.8 结论 135
14.9 进一步学习的参考资料 136
第15章 安装与升级的自动化 137
15.1 备选方法 137
15.2 硬件问题 137
15.3 安全性 138
15.4 kickstart 138
15.4.1 language 139
15.4.2 network 139
15.4.3 安装方法 139
15.4.4 device 139
15.4.5 keyword 140
15.4.6 noprobe 140
15.4.7 zerombr 140
15.4.8 clearpart 140
15.4.9 使用part进行分区 140
15.4.10 安装还是升级 140
15.4.11 鼠标配置 141
15.4.12 设置时间域 141
15.4.13 X窗口系统配置 141
15.4.14 设置root的口令 141
15.4.15 NIS的配置 141
15.4.16 LILO 142
15.4.17 包的指定 142
15.4.18 后安装脚本 142
15.4.19 使用mkkickstart自动产生kickstart配置 142
15.5 系统框架的实现 143
15.5.1 kickstart文件的生成 144
15.6 版本控制 146
15.7 安装与升级的对比 146
15.8 进一步学习的参考资料 147
第16章 用户和工作组管理 148
16.1 用户与uid 148
16.1.1 伪登录 148
16.2 工作组与gid 149
16.3 添加用户 149
16.4 用户的更新 149
16.5 删除用户 150
16.6 关闭用户 150
16.7 shadow口令 151
16.8 口令的老化 152
16.9 定额 152
16.10 邮件 152
16.11 NIS 153
16.12 大型数据库 153
第三部分 服务篇 156
第17章 网络服务 156
17.1 系统层服务 156
17.1.1 DNS 156
17.1.2 NTP 157
17.1.3 BOOTP、DHCP、TFTP以及RARP 158
17.1.4 RPC 158
17.1.5 NIS 158
17.1.6 LDAP 158
17.2 应用层服务 159
17.2.2 NetNews 159
17.2.3 远程shell 159
17.2.4 FTP 160
17.2.5 http 160
17.3 进一步学习的参考资料 160
第18章 电子邮件服务 162
18.1 sendmail 162
18.1.1 sendmail的配置 163
18.2 qmail 163
18.2.1 qmail的配置 163
18.2.2 qmail的安装 163
18.3 邮件服务的结构化 164
18.3.1 部门级邮件服务器 164
18.3.2 外部邮件网关 164
18.4 procmail 164
18.5 Spam 165
18.6 邮件的使用政策 165
18.6.1 个人道德 166
18.7 电子邮件的故障诊断 167
18.7.1 用户代理的问题 167
18.7.2 传输代理的问题 168
18.7.3 发送代理的问题 168
第19章 打印和传真 169
19.1 Ipr 169
19.2 缓冲池目录 170
19.3 Ipd 170
19.3.1 printcap文件 170
19.3.2 过滤器 171
19.3.3 远程打印 174
19.4 管理命令 174
19.4.1 Ipd 174
19.4.2 Iprm 174
19.4.3 Ipc 175
19.5 添加一台打印机 175
19.6 打印服务器的配置 176
19.7 Samba 176
19.8 安全性 176
19.9 诊断 176
19.9.1 Winprinter 178
19.10 传真 179
19.11 进一步学习的参考资料 180
第20章 NFS的使用 181
20.1 NFS基础 181
20.1.1 使用自动安装程序控制NFS安装 181
20.1.2 访问控制的管理 182
20.2 用户Id的映射 182
20.3 NFS的服务器进程 183
20.4 NFS与文件加锁机制 183
20.5 NFS的无状态模式 183
20.6 调试技术与分析工具 184
20.6.1 端口映射表 185
20.6.2 分析工具 185
20.7 提供一份通用的文件分层结构 186
20.7.1 有关自动安装的更多内容 187
20.8 安全性 187
20.9 进一步学习的参考资料 187
第21章 NIS的管理 189
21.1 NIS的客户进程 189
21.2 NIS的服务器进程 190
21.2.1 NIS数据库的维护 190
21.2.2 NIS数据库的发行 191
21.3 顾客的INS数据 191
21.4 实现与互操作性 192
21.5 将NIS配置为便于使用的 192
21.6 调试技术与分析工具 193
21.7 NIS的备选系统 193
21.8 进一步学习的参考资料 194
第四部分 附录 196
附录A 突发事件 196
A.1 root口令丢失了 196
A.1.1 在没有重新启动的情况下 196
A.1.2 在没有root帐户权限的情况下重启 196
A.1.3 引导到单用户模式 197
A.1.4 修改root口令 198
A.2 我已经被黑掉了 199
A.3 启动时的烦恼 199
A.3.1 不能够引导内核:在LILO中停止了 199
A.3.2 运行/sbin/lilo时出现的问题 200
A.3.3 非法的LILO签字问题 200
A.3.4 不能访问BIOS驱动器了 201
A.3.5 遭到损害、感染或者破坏的MBR 201
A.3.6 新近安装的内核不能引导 202
A.3.7 新内核得到“kernel too big”的消息 202
A.3.8 内核发出“VFS Panic:unable to mount root”消息 203
A.3.9 内核报告“Unable to open an initial console” 203
A.3.10 屏幕不断闪烁并且没有登录提示出现 203
A.3.11 “Unable to load interpreter” 204
A.4 有关程序启动的问题 204
A.4.1 只有root能够执行命令 204
A.4.2 共享目录遭到破坏或者被不小心删除了 204
A.4.3 即使存在共享库也难以加载 205
A.4.4 “gerewd:cannot access parent directories” 205
A.4.5 程序正在“dumping core”(SIG 11) 206
A.4.6 root的$PATH“Broken”了 206
A.4.7 打开了最大数目的文件 207
A.5 文件系统的问题 207
A.5.1 “unable to find swap—space signature”错误消息 207
A.5.2 文件系统超越了空间限制 207
A.5.3 文件系统的inode用完了 208
A.5.4 可疑的坏磁盘簇/扇区 208
A.5.5 在安装命令运行过程中系统被锁定了 208
A.5.6 无意的文件删除 208
A.6 无意的递归性chown/chmod问题 209
A.6.1 数据遭到了破坏 209
A.7 网络问题 210
A.7.1 NIS访问不能使用了 210
A.7.2 系统不能通过网络进行访问了 210
A.7.3 TCP传输很慢或者不稳定 210
A.8 输入方面的问题 210
A.8.1 物理键盘上有个键失灵了 211
A.8.2 退格键不能退格,相反却产生了控制字符 211
A.8.3 文本都被显示成二进制字符了 211
A.8.4 系统好像不响应我的按键 211
A.9 其他问题 212
A.9.1 并行设备不能使用了 212
A.9.2 使用了超过64MB的内存,系统好像仍然很慢 212
A.9.3 使用了更多内存后,系统好像变得不稳定了 212
A.10 寻求帮助的其他一些地方 212
词汇表 213
参考书目 237