第一部分 基本管理技术 1
第1章 从何处入手 3
1.1 读者的知识背景 4
1.2 Linux同UNIX的关系 4
1.3 Linux和UNIX的历史 5
1.4 Linux的发行版本 5
1.4.1 最好的发行版本是什么 6
1.4.2 特定于发行版本的系统管理工具 7
1.5 表示法和印刷约定 7
1.6 从哪里获得信息 8
1.6.1 手册页的组织 9
1.6.2 man:读取手册页 10
1.6.3 其他的Linux信息资源 10
1.7 如何找到和安装软件 11
1.8.1 增删用户 12
1.8 系统管理员的基本任务 12
1.8.2 增删硬件 13
1.8.3 执行备份 13
1.8.4 安装新软件 13
1.8.5 监视系统 13
1.8.6 故障诊断 13
1.8.7 维护本地文档 13
1.8.8 审计安全 13
1.8.9 帮助用户 14
1.9 重压下的系统管理员 14
1.10 推荐读物 15
1.11 习题 15
第2章 引导和关机 17
2.1 引导 17
2.1.3 内核初始化 18
2.1.2 引导过程的步骤 18
2.1.1 自动引导和手工引导 18
2.1.4 硬件配置 19
2.1.5 系统进程 19
2.1.6 操作员干预(仅限手工引导) 19
2.1.7 执行启动脚本 20
2.1.8 多用户操作 20
2.2 引导PC 20
2.2.1 PC与专有硬件的不同 20
2.2.2 PC引导过程 20
2.3 引导加载程序:LILO和GRUB 21
2.3.1 LILO:传统的Linux引导加载程序 21
2.3.2 GRUB:全面统一的引导加载程序 22
2.3.3 PC上的多重引导 23
2.3.4 多重引导的技巧 23
2.3.5 LILO的多重引导配置 24
2.5 启动脚本 25
2.4 引导单用户模式 25
2.5.1 init和运行级 26
2.5.2 Red Hat的启动脚本 28
2.5.3 SuSE启动脚本 29
2.5.4 Debian引导脚本 31
2.6 重新引导和关机 31
2.6.1 关闭电源 31
2.6.2 shutdown:停止系统的妥善方式 32
2.6.3 halt:关闭系统的更简单方式 32
2.6.4 reboot:快速的重新启动 32
2.6.5 telinit:改变init的运行级 32
2.6.6 Poweroff:请Linux关闭电源 33
2.7 习题 33
第3章 超级用户的权力 34
3.1 文件和进程的归属关系 34
3.2 超级用户 35
3.3 选择root的口令 36
3.4 成为root用户 37
3.4.1 su:替换用户身份 37
3.4.2 sudo:受限的su 37
3.5 其他的伪用户 39
3.5.1 bin:系统命令的传统属主 40
3.5.2 daemon:无特权系统软件的属主 40
3.5.3 nobody:普通NFS用户 40
3.6 习题 40
第4章 进程控制 41
4.1 进程的组成部分 41
4.1.1 PID:进程的ID号 42
4.1.2 PPID:父PID 42
4.1.3 UID和EUID:实际的和有效的用户ID 42
4.1.6 控制终端 43
4.2 进程的生命周期 43
4.1.5 谦让度 43
4.1.4 GID和EGID:实际的和有效的组ID 43
4.3 信号 44
4.4 KILL和KILLALL:发送信号 46
4.5 进程的状态 46
4.6 nice和renice:影响调度优先级 47
4.7 PS:监视进程 48
4.8 TOP:更好地监视进程 49
4.9 失控进程 50
4.10 习题 51
第5章 文件系统 53
5.1 路径名称 54
5.2 安装和卸载文件系统 55
5.3 文件树的组织 56
5.4 文件类型 58
5.4.3 字符设备文件和块设备文件 59
5.4.1 普通文件 59
5.4.2 目录 59
5.4.4 本地域套接口 60
5.4.5 有名管道 60
5.4.6 符号链接 60
5.5 文件属性 61
5.5.1 setuid和setgid位 61
5.5.2 粘附位 61
5.5.3 权限位 61
5.5.4 查看文件属性 62
5.5.5 chmod:改变权限 63
5.5.6 chown:改变归属关系和组 64
5.5.7 umask:分配默认的权限 65
5.5.8 额外的标志 65
5.6 习题 66
6.1 /etc/passwd文件 68
第6章 添加新用户 68
6.1.1 登录名 69
6.1.2 加密的口令 70
6.1.3 UID号 71
6.1.4 默认的GID号 71
6.1.5 GECOS字段 72
6.1.6 主目录 72
6.1.7 登录shell 72
6.2 /etc/shadow文件 73
6.3 /etc/group文件 74
6.4 添加用户 75
6.4.1 编辑passwd和shadow文件 75
6.4.2 设置初始口令 76
6.4.3 创建用户的主目录 76
6.4.4 复制默认启动文件 76
6.4.5 设置用户的邮件主目录 77
6.4.6 编辑/etc/group文件 78
6.4.7 设置磁盘配额 78
6.4.8 验证新的登录 78
6.4.9 记录用户的状态和联系信息 79
6.5 删除用户 79
6.6 禁止登录 79
6.7 账号管理工具 80
6.8 习题 81
第7章 串行设备 82
7.1 串行标准 82
7.2 替代连接器 85
7.2.1 微型DIN-8连接器 85
7.2.2 DB-9连接器 86
7.2.3 RJ-45连接器 86
7.2.4 RJ-45连线的Yost标准 87
7.3 硬载波和软载波 89
7.4 硬件流控 90
7.5 电缆长度 90
7.6 串行设备文件 90
7.7 setserial:把串口参数通知给驱动程序 91
7.8 串行设备的软件配置 91
7.9 硬件终端的配置 92
7.9.1 登录过程 92
7.9.2 /etc/inittab文件 93
7.9.3 终端支持:termcap和terminfo数据库 94
7.10 特殊字符和终端驱动程序 95
7.11 stty:设置终端的选项 96
7.12 tset:自动设置选项 96
7.13 怎样解开僵住的终端 97
7.14.1 调制、错误纠正和数据压缩协议 98
7.14 调制解调器 98
7.14.2 minicom:拨出程序 99
7.14.3 双向调制解调器 99
7.15 调试串行线 99
7.16 其他常用的I/O端口 100
7.16.1 并口 100
7.16.2 USB:通用串行总线 101
7.17 习题 102
第8章 增加硬盘 103
8.1 硬盘接口 103
8.1.1 SCSI接口 104
8.1.2 IDE接口 107
8.1.3 SCSI和IDE的比较 108
8.2 硬盘的几何结构 109
8.3.1 连接硬盘 110
8.3 硬盘安装过程概述 110
8.3.2 格式化硬盘 111
8.3.3 标记硬盘和硬盘分区 111
8.3.4 建立逻辑卷 112
8.3.5 Linux文件系统 113
8.4 EXT2和EXT3文件系统 114
8.4.1 设置ext3fs扩展 115
8.4.2 设置自动安装 115
8.4.3 启用交换分区 117
8.5 fsck:检查和修复文件系统 117
8.6 向Linux增加硬盘:一步步的指导 119
8.7 习题 123
第9章 周期性进程 124
9.1 cron:按时间表执行命令 124
9.2 crontab文件的格式 125
9.4 cron的常见用途 127
9.4.1 清理文件系统 127
9.3 crontab管理 127
9.4.2 配置文件的网络分布 128
9.4.3 循环日志文件 128
9.5 习题 129
第10章 备份 130
10.1 备份基本原理 131
10.1.1 从一台机器执行所有的转储 131
10.1.2 给磁带加卷标 131
10.1.3 选择合理的备份间隔 131
10.1.4 仔细选择文件系统 131
10.1.5 在一卷磁带上做日常转储 132
10.1.6 使文件系统小于转储设备 132
10.1.7 异地保存磁带 132
10.1.9 执行转储期间的限制活动 133
10.1.10 检查磁带 133
10.1.8 保护备份 133
10.1.11 发掘磁带的寿命 134
10.1.12 为备份而设计数据 134
10.1.13 作最坏的准备 134
10.2 备份设备和介质 134
10.2.1 软盘 135
10.2.2 超级软盘 135
10.2.3 CD-R和CD-RW 135
10.2.4 可移动硬盘 136
10.2.5 8mm盒式磁带 136
10.2.6 DAT(4mm)盒式磁带 136
10.2.7 Travan磁带 137
10.2.8 DLT 137
10.2.9 AIT 137
10.2.10 Mammoth 137
10.2.13 介质类型小结 138
10.2.12 硬盘 138
10.2.11 自动选带机、自动换带机以及磁带库 138
10.2.14 设备选型 139
10.3 用dump建立增量备份机制 139
10.3.1 转储文件系统 140
10.3.2 转储顺序 142
10.4 用restore从转储中恢复 143
10.4.1 恢复单个文件 143
10.4.2 恢复整个文件系统 145
10.5 为系统升级而执行转储和恢复 146
10.6 使用其他存档程序 146
10.6.1 tar:打包文件 146
10.6.2 cpio:来自古代的存档工具 147
10.6.3 dd:处理位流 147
10.6.4 volcopy:复制文件系统 147
10.7 在一卷磁带上使用多个文件 147
10.8 AMANDA 148
10.8.1 Amanda的体系结构 149
10.8.2 安装Amanda 149
10.8.3 amanda.conf文件 150
10.8.4 disklist文件 154
10.8.5 Amanda的日志文件 155
10.8.6 调试Amanda 155
10.8.7 从一个Amanda备份恢复文件 158
10.8.8 Amanda的替换工具:其他开放源代码的备份软件包 159
10.9 商用备份产品 159
10.9.1 ADSM/TSM 160
10.9.2 Veritas 160
10.9.3 Legato 161
10.9.4 其他选择 161
10.10 推荐读物 161
10.11 习题 161
11.1.1 扔掉日志文件 163
11.1 日志记录的策略 163
第11章 系统日志与日志文件 163
11.1.2 轮换日志文件 164
11.1.3 存档日志文件 165
11.2 Linux的日志文件 165
11.2.1 特殊的日志文件 166
11.2.2 内核和启动日志 167
11.3 Logrotate:管理日志文件 168
11.4 syslog:系统事件的日志程序 169
11.4.1 配置syslogd 170
11.4.2 配置文件举例 172
11.4.3 syslog输出的样本 174
11.4.4 设计站点日志方案 174
11.4.5 使用syslog的软件 175
11.4.6 调试syslog 175
11.4.7 在程序中使用syslog 176
11.5 分析日志文件 177
11.6 习题 178
第12章 驱动程序和内核 179
12.1 内核的适应性 180
12.2 配置内核的原因 180
12.3 配置方法 180
12.4 调整Linux内核 181
12.5 添加设备驱动程序 182
12.6 添加Linux设备驱动程序 183
12.7 设备文件 185
12.8 可加载内核模块 185
12.9 构造Linux内核 187
12.10 如果没问题就不要动它 189
12.11 推荐读物 190
12.12 习题 190
第二部分 网络管理技术 191
第13章 TCP/IP网络 193
13.1.1 简要的历史回顾 194
13.1 TCP/IP和Internet 194
13.1.2 当今Internet的管理方法 195
13.1.3 网络标准和文献 195
13.2 连网技术概述 196
13.3 分组和封装 197
13.3.1 链路层 198
13.3.2 包的寻址方式 199
13.3.3 端口 200
13.3.4 地址类型 200
13.4 IP地址详解 201
13.4.1 IP地址分类 201
13.4.2 子网和网络掩码 201
13.4.3 IP地址危机 204
13.4.4 CIDR:无类域间路由 204
13.4.6 私用地址和NAT 206
13.4.5 地址分配 206
13.4.7 IPv6寻址方式 208
13.5 路由 210
13.5.1 路由表 210
13.5.2 ICMP重定向 211
13.6 ARP:地址解析协议 212
13.7 将一台主机加入网络 213
13.7.1 分配主机名和IP地址 214
13.7.2 ifconfig:配置网络接口 215
13.7.3 mii-tool:配置自动协商和其他介质特有的选项 217
13.7.4 route:配置静态路由 217
13.7.5 默认路由 219
13.7.6 配置DNS 219
13.7.7 Linux连网协议栈 220
13.8.1 Red Hat的网络配置 221
13.8 特定于发行版本的网络配置 221
13.8.2 SuSE的网络配置 222
13.8.3 Debian的网络配置 223
13.8.4 通过图形用户界面配置网络 224
13.9 DHCP:动态主机配置协议 224
13.9.1 DHCP软件 225
13.9.2 DHCP的工作方式 225
13.9.3 ISC的DHCP服务器 226
13.9.4 Red Hat的DHCP配置 227
13.9.5 SuSE的DHCP配置 228
13.9.6 Debian的DHCP配置 228
13.10 Linux的动态重新配置和调整 229
13.11 安全问题 230
13.11.1 IP转发 230
13.11.4 广播ping和其他形式的定向广播 231
13.11.5 IP欺骗 231
13.11.2 ICMP重定向 231
13.11.3 源路由 231
13.11.6 基于主机的防火墙 232
13.11.7 虚拟私用网络 232
13.11.8 与安全有关的内核变量 232
13.12 Linux的NAT(IP伪装) 233
13.13 PPP:点对点协议 234
13.13.1 解决PPP的性能问题 234
13.13.2 用PPP连网 235
13.13.3 让主机使用PPP 235
13.13.4 控制PPP链路 235
13.13.5 寻找一个对话的主机 235
13.13.8 确保安全性 236
13.13.9 使用终端服务器 236
13.13.6 分配地址 236
13.13.7 路由 236
13.13.10 使用对话脚本 237
13.13.11 Linux上的PPP配置 237
13.14 Linux连网配置的特殊之处 243
13.15 推荐读物 243
13.16 习题 244
第14章 路由 246
14.1 近观包转发 246
14.2 路由守护进程和路由协议 248
14.2.1 距离向量协议 249
14.2.2 链路状态协议 250
14.2.3 代价度量 250
14.2.4 内部和外部协议 250
14.3.1 RIP:路由信息协议 251
14.3.2 RIP-2:路由信息协议第2版 251
14.3 内部路由协议巡礼 251
14.3.3 OSPF:开放最短路径优先 252
14.3.4 IGRP和EIGRP:内部网关路由协议 252
14.3.5 IS-IS:ISO的“标准” 252
14.3.6 MOSPF、DVMRP和PIM:组播路由协议 253
14.3.7 路由器发现协议 253
14.4 routed:使用RIP的路由守护进程 253
14.5 gated:更好的路由守护进程 253
14.5.2 跟踪 254
14.5.1 gated的启动和控制 254
14.5.3 gated的配置文件 255
14.5.4 选项的配置语句 256
14.5.5 网络接口定义 256
14.5.6 其他定义 257
14.5.7 RIP的协议配置 258
14.5.8 OSPF的一些预备知识 259
14.5.9 OSPF的协议配置 260
14.5.10 ICMP重定向的协议配置 261
14.5.12 导出的路由 262
14.5.11 静态路由 262
14.5.13 完整的gated配置举例 263
14.6 路由策略的选择标准 264
14.7 Cisco路由器 265
14.8 推荐读物 267
14.9 习题 268
第15章 网络硬件 269
15.1 选择LAN、WAN,还是MAN 269
15.2 以太网:常见的局域网 270
15.2.1 以太网的工作方式 271
15.2.2 以太网拓扑结构 271
15.2.3 无屏蔽双绞线 272
15.2.4 连接和扩展以太网 273
15.4 FDDI:令人失望且昂贵的局域网 276
15.3 无线:流动人士的LAN 276
15.5 ATM:有前途(但被痛苦地击败的)的LAN 277
15.6 帧中继:被牺牲掉的WAN 278
15.7 ISDN:本土上的WAN 279
15.8 DSL和CM:大众的WAN 279
15.9 网络的前景 280
15.10 网络测试和调试 280
15.11 建筑物布线 281
15.11.1 UTP电缆的选择 281
15.11.2 到办公室的连接 281
15.11.3 布线标准 281
15.12 网络设计问题 282
15.12.1 网络结构与建筑物结构 282
15.12.4 拥塞 283
15.12.5 维护和建档 283
15.12.3 扩展 283
15.12.2 现成的网络 283
15.13 管理问题 284
15.14 推荐的厂商 284
15.14.1 电缆和连接器 285
15.14.2 测试仪器 285
15.14.3 路由器/交换机 285
15.16 习题 286
15.15 推荐读物 286
第16章 域名系统 287
16.1 DNS速成:添加新机器 287
16.2 DNS的历史 288
16.3 谁需要DNS 289
16.4 DNS的新特性 290
16.5 DNS名字空间 291
16.5.1 域名管理 293
16.5.3 域名爆炸 294
16.5.2 选择域名 294
16.5.4 注册二级域名 295
16.5.5 创建子域 295
16.6 BIND软件 295
16.6.1 BIND的版本 295
16.6.2 确定现有的BIND版本 296
16.6.3 BIND的组成 297
16.6.4 named:BIND的名字服务器 297
16.6.3 权威与仅缓存服务器 298
16.6.6 递归和非递归服务器 299
16.6.7 解析器库例程 299
16.6.8 DNS的shell接口 300
16.7 DNS的工作原理 300
16.7.1 授权 300
16.7.2 缓存和效率 301
16.8 BIND客户机问题 302
16.7.3 扩展的DNS协议 302
16.8.1 解析器配置 303
16.8.2 解析器测试 305
16.8.3 对系统其余部分的影响 305
16.9 配置BIND服务器 305
16.9.1 硬件要求 305
16.9.2 named的启动 306
16.9.3 配置文件 306
16.9.4 include语句 308
16.9.5 options语句 308
16.9.6 acl语句 312
16.9.7 server语句 312
16.9.8 logging语句 313
16.9.9 zone语句 313
16.9.11 trusted-keys语句 316
16.9.12 controls语句 316
16.9.10 key语句 316
16.9.13 split DNS和BIND9的view语句 318
16.10 BIND配置举例 319
16.10.1 家用Linux系统 319
16.10.2 一家小型的安全公司 321
16.10.3 大学里的一个系 324
16.11 DNS数据库 327
16.11.1 资源记录 328
16.11.2 SOA记录 330
16.11.3 NS记录 331
16.11.4 A记录 332
16.11.5 PTR记录 332
16.11.6 MX记录 333
16.11.7 CNAME记录 335
16.11.8 CNAME扩展 335
16.11.10 SRV记录 337
16.11.9 LOC记录 337
16.11.11 TXT记录 338
16.11.12 IPv6资源记录 339
16.11.13 IPv6地址记录 339
16.11.14 IPv6反向记录 340
16.11.15 区文件中的命令 342
16.11.16 localhost区 343
16.11.17 粘合记录:区之间的链接 344
16.12 更新区文件 345
16.12.1 区传送 346
16.12.2 动态更新 347
16.13 安全问题 348
16.13.1 再说访问控制列表 349
16.13.2 限制named 350
16.13.3 使用TSIG和TKEY保障服务器与服务器之间通信的安全 351
16.13.4 DNSSEC 352
16.13.5 Microsoft差,Linux好 357
16.14 测试和调试 358
16.14.1 日志功能 358
16.14.2 调试级别 362
16.14.3 用ndc调试 362
16.14.4 BIND8的统计 363
16.14.5 BIND9的统计 364
16.14.6 用nslookup、dig和host调试 365
16.14.7 残缺授权 367
16.15 其他细节信息 368
16.15.1 线索文件 368
16.15.2 localhost配置 369
16.15.3 主机管理工具 369
16.15.4 不在Internet上的系统的DNS 369
16.16.2 BIND文件 370
16.16.3 名字服务器开关文件 370
16.16 发行版本的特定信息 370
16.16.1 版本 370
16.16.4 配置文件 371
16.17 推荐读物 371
16.17.1 邮件列表和新闻组 371
16.17.2 书籍和其他文档 372
16.17.3 在线资源 372
16.17.4 RFC 372
16.18 习题 374
第17章 网络文件系统 375
17.1 NFS概述 375
17.1.1 NFS协议的版本 375
17.1.2 传输协议的选择 376
17.1.3 文件上锁机制 376
17.1.4 磁盘配额 376
17.1.7 安全性与NFS 377
17.1.5 cookies与无状态安装 377
17.1.6 共享文件系统的命名规则 377
17.1.8 root访问与nobody账号 378
17.2 服务器端NFS 378
17.2.1 exports文件 379
17.2.2 nnfsd:提供文件服务 380
17.3 客户端NFS 381
17.3.1 在启动时安装远程文件系统 383
17.3.2 端口安全限制 383
17.4 nfsstat:转储NFS统计信息 383
17.5 专用NFS文件服务器 384
17.6 自动安装 384
17.7 automount:最初的自动安装程序 385
17.7.1 主控文件 386
17.7.2 映射文件 386
17.8.1 amd映射文件 387
17.7.3 Executable maps可执行的映射文件 387
17.8 AMD:更复杂的自动安装程序 387
17.8.2 启动amd 388
17.8.3 停止amd 389
17.9 推荐读物 389
17.10 习题 390
第18章 共享系统文件 391
18.1 共享什么 392
18.2 把文件复制到各处 393
18.2.1 rdist:推文件 394
18.2.2 rsync:更安全地传输文件 396
18.2.3 拉文件 397
18.3 NIS:网络信息服务 398
19.3.1 网络组 399
19.3.2 制订管理信息源的优先级 400
18.3.4 NIS的工作方式 401
18.3.3 NIS的优缺点 401
18.3.5 建立NIS域 403
18.4 NIS+:NIS之子 404
18.5 LDAP:轻量级目录访问协议 405
18.5.1 LDAP的文档和规范 406
18.5.2 实际应用的LDAP 407
18.5.3 配置OpenLDAP服务器 407
18.5.4 公布服务器 408
18.5.5 设置LDAP客户机 408
18.5.6 LDAP和安全 408
18.6 习题 409
第19章 电子邮件 410
19.1 邮件系统 412
19.1.1 用户代理 412
19.1.4 消息库 414
19.1.3 投递代理 414
19.1.2 传输代理 414
19.1.5 访问代理 415
19.1.6 邮件提交代理 415
19.2 剖析邮件消息 416
19.2.1 邮件寻址 416
19.2.2 阅读邮件信头 416
19.3 邮件基本原理 420
19.3.1 使用邮件服务器 420
19.3.2 使用邮件之家 422
19.3.3 使用IMAP或POP 422
19.4 邮件别名 423
19.4.1 从文件中获取邮递列表 425
19.4.2 发邮件给文件 425
19.4.3 发邮件给程序 426
19.4.4 别名举例 426
19.4.5 邮件转发 427
19.4.6 散列的别名数据库 428
19.4.7 邮递列表和实现清单的软件 429
19.4.8 LDAP:轻量级目录访问协议 432
19.5 sendmail:电子邮件的指挥 433
19.5.1 sendmail的历史 434
19.5.2 各厂商提供的sendmail版本 434
19.5.3 从sendmail.org安装sendmail 435
19.5.4 在Debian系统上安装sendmail 437
19.5.5 开关文件 438
19.5.6 运行模式 438
19.5.7 邮件队列 439
19.6 sendmail的配置 441
19.6.1 使用m4预处理器 441
19.6.2 sendmail的配置片段 442
19.6.3 从mc样本文件构建配置文件 443
19.7.1 VERSIONID宏 444
19.6.4 改变sendmail的配置 444
19.7 基本的sendmail配置原语 444
19.7.2 OSTYPE宏 445
19.7.3 DOMAIN宏 446
19.7.4 MAILER宏 447
19.8 sendmail高级配置原语 448
19.8.1 FEATURE宏 448
19.8.2 use_cw_file功能 448
19.8.3 redirect功能 449
19.8.4 always_add_domain功能 449
19.8.5 nocanonify功能 449
19.8.6 表和数据库 450
19.8.7 mailertable功能 451
19.8.8 genericstable功能 452
19.8.9 virtusertable功能 452
19.8.10 ldap_routing功能 453
19.8.11 伪装和MASQUERADE_AS宏 454
19.8.12 MAIL_HUB和SMART_HOST宏 455
19.8.13 伪装和路由 456
19.8.14 nullclient功能 456
19.8.15 local_lmtp和smrsh功能 457
19.8.16 local_procmail功能 457
19.8.17 LOCAL_*宏 458
19.8.18 配置选项 458
19.9 配置文件举例 459
19.9.1 计算机科学系学生家里的机器 460
19.9.2 善用sendmail的小公司 461
19.9.3 另一个邮件主机/客户机的例子 464
19.9.4 Red Hat的sendmail配置 467
19.9.5 SuSE的sendmail配置 468
19.9.6 Debian的sendmail配置 471
19.10 sendmail中与垃圾邮件相关的功能 473
19.10.1 中继转发 474
19.10.2 访问数据库 475
19.10.3 把用户或站点列入黑名单 477
19.10.4 信头检查 479
19.10.5 Miltering:邮件过滤 479
19.10.6 处理垃圾邮件 480
19.10.7 垃圾邮件举例 481
19.10.8 SpamAssassin 483
19.11 安全与sendmail 484
19.11.l 所有权 484
19.11.2 权限 485
19.11.3 发到文件和程序的可靠邮件 485
19.11.4 隐私选项 486
19.11.5 运行chroot后的sendmail 487
19.11.6 拒绝服务攻击 487
19.11.7 伪造 488
19.11.8 消息的隐私 489
19.11.9 SASL:简单的身份验证和安全层 489
19.12 sendmail的性能 490
19.12.1 投递方式 490
19.12.2 队列分组和信封分割 490
19.12.3 队列运行器 491
19.12.4 负载平衡控制 492
19.12.5 队列中无法投递的消息 492
19.12.6 内核调优 493
19.13 sendmail的统计信息、测试和调试 494
19.13.1 测试和调试 494
19.13.2 罗嗦的投递 495
19.13.3 用SMTP通信 496
19.13.4 日志机制 497
19.14.2 Debian上的Exim 498
19.14.1 历史 498
19.14 Exim邮件系统 498
19.14.3 配置Exim 499
19.14.4 Exim和sendmail的相似之处 499
19.15 推荐读物 500
19.16 习题 501
第20章 网络管理和调试 503
20.1 网络故障的检测 504
20.2 ping:检查主机是否正常 505
20.3 traceroute:跟踪IP包 506
20.4 netstat:获得大量零的网络统计信息 508
20.4.1 监视网络连接的状态 508
20.4.2 检查接口的配置信息 509
20.4.3 检查路由表 510
20.4.4 查看各种网络协议的运行统计信息 510
20.5 包探测器 511
20.5.2 Ethereal:可视化的探测器 512
20.5.1 tcpdump:探测器之王 512
20.6 网络管理协议 513
20.7 SNWP:简单网络管理协议 513
20.7.1 SNMP的组织结构 514
20.7.2 SNMP协议操作 515
20.7.3 RMON:远程监视MIB 515
20.8 NET-SNMP代理程序 515
20.9 网络管理应用程序 516
20.9.1 NET-SNMP工具 516
20.9.2 MRTG:多路由器流量记录仪 517
20.9.3 NOCOL:在线网络运行中心 518
20.9.4 商业管理平台 519
20.10 推荐读物 519
20.11 习题 520
第21章 安全 521
21.2 克里福斯版的Linux安全 522
21.1 Linux安全吗 522
21.2.1 包过滤 523
21.2.2 不必要的服务 523
21.2.3 软件补丁 523
21.2.4 备份 523
21.2.5 口令 523
21.2.6 警惕性 523
21.2.7 普遍原则 523
21.3 安全性是如何受损害的 524
21.4 /etc/passwd和/etc/shadow文件里的安全问题 525
21.4.1 口令的检查和选择 525
21.4.2 PAM:是不会溅的炒菜油,还是验证奇才 526
21.4.3 隐蔽口令 526
21.4.7 获得root权限的办法 527
21.4.6 用户的shell 527
21.4.5 口令时限 527
21.4.4 组登录名和共享登录名 527
21.5 setuid程序 528
21.6 重要文件的权限 528
21.7 形形色色的安全事务 529
21.7.1 远程事件日志 529
21.7.2 安全终端 529
21.7.3 /etc/hosts.equiv和~/.rhosts 530
21.7.4 rexecd和tftpd 530
21.7.5 fingerd 530
21.7.6 安全与NIS 530
21.7.7 安全与NFS 531
21.7.8 安全与sendmail 531
21.7.9 安全与备份 531
21.7.10 特洛伊木马 531
21.8.1 nmap:扫描网络端口 532
21.8 加强安全的工具 532
21.8.2 ndiff:创建nmap的基准,查找可疑的变化 533
21.8.3 SAINT:检查连网系统的弱点 534
21.8.4 Nessus:下一代的网络扫描程序 534
21.8.5 crack:找出不安全的口令 534
21.8.6 tcpd:保护Internet服务 535
21.8.7 COPS:审计系统的安全性 535
21.8.8 tripwire:监视系统文件的变化 536
21.8.9 取证的工具 537
21.9 加密的安全工具 537
21.9.1 Kerberos:用于网络安全的统一方法 538
21.9.2 PGP:很好的私密性 538
21.9.3 SSH:安全的shell 539
21.9.4 OPIE:一次性口令 540
21.9.5 硬件标牌 540
21.10.2 如何过滤服务 541
21.10 防火墙 541
21.10.1 包过滤防火墙 541
21.10.3 服务代理防火墙 542
21.10.4 状态检查防火墙 542
21.10.5 防火墙保险吗 542
21.11 Linux的防火墙功能IP Tables 543
21.12 VPN 546
21.12.1 IPSEC隧道 546
21.12.2 VPN够用吗 547
21.13 安全信息的来源 547
21.13.1 CERT:卡内基梅隆大学的注册服务商标 547
21.13.2 Security Focus.com和BugTraq邮递列表 548
21.13.3 Crypto-Gram时事通讯 548
21.13.4 SANS:系统管理、网络和安全协会 548
21.13.5 特定发行版本的安全资源 548
21.15 如何对付站点攻击 549
21.14 坚固的Linux发行版本 549
21.13.6 其他邮递列表和网站 549
21.16 推荐读物 551
21.17 习题 552
第22章 Web主机托管和Internet服务器 554
22.1 Web主机托管 554
22.2 Web主机托管的基本知识 555
22.2.1 统一资源定位符 555
22.2.2 HTTP工作原理 556
22.2.3 CGI脚本:即时生成内容 557
22.2.4 负载平衡 557
22.3 HTTP服务程序的安装 557
22.3.1 选择服务程序 557
22.3.2 安装Apache 558
22.3.4 运行Apache 559
22.3.3 配置Apache 559
22.3.5 高性能主机托管 560
22.4 虚拟接口 560
22.4.1 配置虚拟接口 560
22.4.2 告诉Apache有关虚拟接口的信息 561
22.5 缓存和代理服务程序 562
22.6 匿名FTP服务程序的设置 563
22.7 习题 564
第三部分 其他管理技术 567
第23章 软件安装和本地化 569
23.1 Linux基本安装 569
23.2 自动安装 570
23.2.1 从网络引导PC 570
23.2.2 PXE:PC的网络引导标准 570
23.2.3 为Linux设置PXE 571
23.2.4 非PC的网络引导 571
23.2.5 Kickstart:Red Hat的自动安装程序 572
23.2.6 YaST:SuSE的安装工具 574
23.2.7 SystemImager 575
23.3 本地化 577
23.3.1 自动化 578
23.3.2 版本升级 578
23.3.3 离群的用户和部门 579
23.3.4 测试 579
23.3.5 让改动可撤消 580
23.3.6 版本控制 580
23.3.7 RCS:版本控制系统 581
23.3.8 文档 583
23.3.9 本地软件的位置 583
23.3.10 客户机安装多少软件 584
23.4 用rsync或者rdist保持系统更新 584
23.5 软件包的管理 586
23.5.1 RPM软件包 587
23.5.2 Debian的软件包 588
23.5.3 自动安装软件包 588
23.5.4 Red Hat Network 589
23.6 apt-get:自动下载和安装 589
23.6.1 配置apt-get 590
23.6.2 /etc/apt/sources.list文件的例子 591
23.6.3 使用代理扩展apt-get 591
23.6.4 设置内部APT服务器 592
23.6.5 自动执行apt-get 592
23.7 推荐读物 593
23.8 习题 593
第24章 打印 595
24.1 打印术语的小小词汇表 595
24.2 Linux的打印系统 596
24.3.1 串口和并口打印机 597
24.3.2 网络打印机 597
24.3 打印机的类型 597
24.3.3 没有PostScript的打印过程 598
24.4 LPD:打印系统 598
24.4.1 打印过程概述 598
24.4.2 控制打印环境 599
24.4.3 lpd:打印程序 600
24.4.4 lpr:提交打印作业 600
24.4.5 lpq:查看打印队列 600
24.4.6 lprm:取消打印作业 601
24.4.7 lpc:做管理性调整 601
24.4.8 /etc/printcap文件 603
24.4.9 printcap变量 603
24.4.10 串口设备的pintcap变量 606
24.5 LPRng 607
24.4.12 向打印机之外的地方打印 607
24.4.11 printcap扩展 607
24.5.1 LPRng命令 608
24.5.2 /etc/lpd.conf:配置lpd 609
24.5.3 /etc/lpd.perms:配置访问控制 609
24.5.4 建立printcap文件 610
24.5.5 过滤器 610
24.5.6 记账 610
24.6 添加打印机 610
24.7 调试打印问题 612
24.8 常用的打印软件 613
24.8.1 ghostscript 613
24.8.2 mpage 613
24.8.3 enscript 613
24.9.5 购买便宜的打印机 614
24.9.4 提供预览程序 614
24.9.3 提供回收箱 614
24.9.2 只在必要时使用标题页 614
24.9.1 对打印机记账 614
24.9 打印机的使用原则 614
24.9.6 保护打印机的安全 615
24.10 习题 615
第25章 维护与环境 616
25.1 维护基础 616
25.2 维护合同 617
25.2.1 现场维护 617
25.2.2 板卡更换维护 617
25.2.3 保修 617
25.3 处理电路板的知识 618
25.3.1 静电 618
25.3.2 重插板卡 618
25.4 监视器 618
25.6 预防性维护 619
25.5 内存模块 619
25.7 环境 620
25.7.1 温度 620
25.7.2 湿度 620
25.7.3 办公室降温 620
25.7.4 机房降温 620
25.7.5 温度监视 621
25.9 机架 622
25.8 电源 622
25.10 工具 623
25.11 习题 623
第26章 性能分析 625
26.1 做什么可以提高性能 626
26.2 影响性能的因素 627
26.3 全面检查系统性能 627
26.3.1 CPU使用情况分析 627
26.3.2 Linux的内存管理 629
26.3.3 内存使用情况分析 630
26.3.4 磁盘I/O分析 632
26.4 求助!系统为何越来越慢 633
26.5 推荐读物 635
26.6 习题 635
第27章 同Windows协作 636
27.1 文件及打印共享 636
27.1.1 NFS:网络文件系统 637
27.1.2 CIFS:公共Internet文件系统 637
27.1.3 SMBFS:安装远程的CIFS共享资源 637
27.1.4 Samba:Linux的CIFS服务器 637
27.1.5 Samba的安装与配置 638
27.1.6 Samba的调试 640
27.1.7 统一Windows和Linux的登录验证 640
27.3 X Windows仿真程序 641
27.2 支持SSH的安全终端仿真程序 641
27.4 PC邮件客户端程序 642
27.5 PC备份 642
27.6 双重引导 643
27.7 在Linux下运行Windows应用程序 643
27.8 PC硬件提示 644
27.9 推荐读物 645
27.10 习题 645
第28章 守护进程 646
28.1 init:基本守护进程 647
28.2 cron和atd:调度命令 647
28.3 inetd和xinetd:管理守护进程 648
28.3.1 配置inetd 648
28.3.2 配置xinetd 650
28.3.3 services文件 651
28.4 内核的守护进程 652
28.3.4 portmap/rpcbind:把RPC服务映射到TCP和UDP端口 652
28.5.1 rpc.nfsd:提供文件服务 653
28.5.2 rpc.mountd:响应安装请求 653
28.5.3 amd和automount:根据需要安装文件系统 653
28.5.4 rpc.lockd和rpc.statd:管理NFS锁 653
28.5.5 rpciod:缓存NFS数据块 653
28.5 文件服务守护进程 653
28.6.1 ypbind:定位NIS服务器 654
28.6.3 rpc.ypxfrd:传送NIS数据库 654
28.6.2 ypserv:NIS服务器 654
28.6.4 nscd:名字服务高速缓存守护进程 654
28.5.8 nmbd:NetBIOS名字服务器 654
28.5.7 smbd:向Windows客户端提供文件和打印服务 654
28.5.6 rpc.rquotad:远程磁盘配额服务 654
28.6 管理数据库守护进程 654
28.7.3 snmpd:提供远程网络管理服务 655
28.7.5 ftpd:文件传输服务器 655
28.7.4 rwhod:维护远程用户列表 655
28.7.2 sendmail:传输电子邮件 655
28.7.1 talkd:网络聊天服务 655
28.7 Internet守护进程 655
28.7.6 popper:基本邮箱服务器 656
28.7.7 imapd:高级邮箱服务器 656
28.7.8 rlogind:远程登录服务器 656
28.7.9 in.telnetd:另一种远程登录服务器 656
28.7.10 sshd:安全的远程登录服务器 656
28.7.11 in.rshd:远程命令执行服务器 656
28.7.12 in.rexecd:另一种命令执行服务器 656
28.7.17 syslogd:处理日志消息 657
28.7.16 named:DNS服务器 657
28.7.18 in.fingerd:查找用户? 657
28.7.15 gated:维护复杂的路由表 657
28.7.14 routed:维护路由表 657
28.7.13 rsynod:在多台主机间保持文件同步 657
28.7.19 httpd:World Wide Web服务器 658
28.7.20 lpd:管理打印 658
28.8 同步时钟守护进程 658
28.8.1 timed:同步时钟 658
28.8.2 ntpd和xntod:更好地同步时钟 658
28.9 引导和配置守护进程 659
28.9.1 dhcpd:动态地址分配? 659
28.9.2 in.tftpd:简单文件传送服务器? 659
28.9.3 ipc.bootparamd:高级的无盘支持? 659
28.10 习题 659
第29章 政策与策略 661
29.1 Linux文化 662
29.1.1 主流Linux 663
29.1.2 Linux计划 664
29.2 政策与规程 664
29.2.1 安全政策 665
29.2.2 用户政策协定 666
29.2.3 系统管理员政策协定 667
29.2.4 紧急情况下的政策与规程 668
29.2.5 灾难处理计划 668
29.2.6 其他杂项 670
29.3 法律问题 670
29.3.1 责任 670
29.3.2 加密 671
29.3.3 版权 671
29.3.4 隐私 672
29.3.5 政策落实 673
29.3.6 软件许可证 674
29.3.7 垃圾邮件:不请自来的商业电子邮件 674
29.3.9 SAGE薪酬调查 675
29.3.8 系统管理调查报告 675
29.3.10 SANS薪酬调查 676
29.4 服务范围 676
29.5 故障报告系统 677
29.6 主管部门 678
29.7 受聘、解聘和培训 678
29.7.1 姿态调整 679
29.7.2 操作员考验战 680
29.7.3 反复锻炼 680
29.8 冲突与道德规范 681
29.8.1 上司的错误之一 681
29.8.2 上司的错误之二 681
29.8.3 谁将被解雇 681
29.8.4 工程师与IT部门 682
29.8.5 复仇者Joe 682
29.8.8 搬迁数据 683
29.8.7 色情GIF图片 683
29.8.6 婚礼邀请 683
29.8.9 比尔该死 684
29.8.10 世贸中心的二手故事 684
29.9 本地建档 685
29.10 采购 686
29.11 硬件报废 686
29.12 组织、会议及其他资源 687
29.12.2 SAGE:系统管理员行业协会 688
29.12.1 LPI:Linux专业协会 688
29.12.3 SANS:系统管理、网络和安全协会 689
29.12.4 邮递列表和Web资源 689
29.13 标准 689
29.13.1 LSB:Linux标准库 690
29.13.2 POSIX 690
29.14 文档范例 690
29.15 推荐读物 691
29.16 习题 691