第一部分 基本管理 2
第1章 从何处开始 2
1.1 读者的知识背景 3
1.2 UNIX的惨淡历史 3
1.3 作为示例的UNIX系统 4
1.4 记法和印刷约定 4
1.5 怎样使用用户手册 6
1.5.1 手册页面的组织 6
1.5.2 man:读取手册页面 7
1.6 系统管理员的基本任务 8
1.6.1 增删用户 8
1.6.2 增删硬件 8
1.6.3 执行备份 8
1.6.4 安装新软件 9
1.6.5 监视系统 9
1.6.6 故障诊断 9
1.6.7 维护本地文档 9
1.6.8 审计安全性 9
1.6.9 帮助用户 9
1.7 怎样在Internet上查找文件 9
1.8 重压下的系统管理 10
1.9 推荐读物 11
第2章 引导和关机 12
2.1 引导 12
2.1.1 自动引导和手工引导 13
2.1.2 引导过程的步骤 13
2.1.3 内核初始化 13
2.1.4 硬件配置 14
2.1.5 系统进程 14
2.1.6 操作员干预(限于手工引导) 14
2.1.7 执行启动脚本 15
2.1.8 多用户操作 15
2.2 引导PC 16
2.2.1 PC与专有硬件的不同 16
2.2.2 PC引导过程 16
2.2.3 LILO:Linux引导加载程序 17
2.2.4 配置LILO 17
2.2.5 FreeBSD的引导加载程序 18
2.2.6 PC上的多系统引导 19
2.2.7 多系统引导技巧 19
2.2.8 LILO的多重引导配置 20
2.2.9 FreeBSD的多重引导配置 21
2.3 在单用户模式下引导 21
2.3.1 Solaris的单用户模式 21
2.3.2 HP-UX的单用户模式 22
2.3.3 Linux的单用户模式 22
2.3.4 FreeBSD的单用户模式 23
2.4 启动脚本 23
2.4.1 SystemV风格的启动脚本 24
2.4.2 Solaris的启动脚本 26
2.4.3 HP-UX的启动脚本 27
2.4.4 Red Hat的启动脚本 28
2.4.5 FreeBSD的启动脚本 30
2.5 重新引导和关机 32
2.5.1 关闭电源 32
2.5.2 Shutdown:停止系统的一种周到和安全的方式 33
2.5.3 halt:关闭系统的更简单方式 33
2.5.4 reboot:快速而不洁的重新启动 33
2.5.5 给init发送一个TERM信号 34
2.5.6 telinit:改变init的运行级别 34
2.5.7 终止init进程 34
第3章 root用户的权力 35
3.1 文件和进程的归属关系 35
3.2 超级用户 36
3.3 选择root的口令 37
3.4 成为root用户 38
3.4.1 su:替换用户身份 38
3.4.2 sudo:受限的su 39
3.5 其他的伪用户 41
3.5.1 daemon:无特权的系统软件的属主 41
3.5.2 bin:系统命令的属主 41
3.5.3 sys:内核和内存映像的属主 41
3.5.4 nobody:普通NFS用户 41
第4章 进程控制 43
4.1 进程的组件 43
4.1.1 PID:进程的ID号 44
4.1.2 PPID:父PID 44
4.1.3 UID和EUID:实际的和有效的用户ID 44
4.1.4 GID和EGID:实际的和有效的组ID 44
4.1.5 谦让性 45
4.1.6 控制终端 45
4.2 进程的生命周期 45
4.3 信号 46
4.4 KILL:发送信号 48
4.5 进程的状态 48
4.6 nice和renice:影响调度优先级 49
4.7 PS:监视进程 50
4.8 TOP:更好地监视进程 54
4.9 失去控制的进程 54
第5章 文件系统 57
5.1 路径名称 58
5.2 安装和卸载文件系统 59
5.3 文件树的组织 60
5.4 文件类型 62
5.4.1 普通文件 62
5.4.2 目录 63
5.4.3 字符设备文件和块设备文件 63
5.4.4 UNIX域套接口 64
5.4.5 命名管道 64
5.4.6 符号链接 64
5.5 文件属性 65
5.5.1 setuid和setgid位 65
5.5.2 粘附位 65
5.5.3 权限位 66
5.5.4 查看文件属性 66
5.5.5 FreeBSD的附加标记 68
5.5.6 chmod:改变权限 68
5.5.7 chown和chgrp:改变归属关系 69
5.5.8 umask:分配默认的权限 70
第6章 添加新用户 71
6.1 /etc/passwd文件 71
6.1.1 登录名 72
6.1.2 加密的口令 73
6.1.3 UID号 73
6.1.4 默认的GID号 74
6.1.5 GECOS字段 75
6.1.6 主目录 75
6.1.7 登录shell 75
6.2 FreeBSD的/etc/master.passwd文件 76
6.3 FreeBSD的/etc/login.conf文件 76
6.4 Solaris和Red Hat的/etc/shadow文件 77
6.5 /etc/group文件 78
6.6 添加用户 79
6.6.1 编辑passwd和shadow文件 80
6.6.2 设置初始口令 80
6.6.3 创建用户主目录 81
6.6.4 默认启动文件中的复制 81
6.6.5 设置用户邮件主目录 82
6.6.6 编辑/etc/group文件 83
6.6.7 设置磁盘配额 83
6.6.8 验证新的登录 83
6.7 删除用户 84
6.8 禁止登录 84
6.9 厂商提供的账号管理工具 85
第7章 串行设备 87
7.1 串行标准 87
7.2 替代连接器 90
7.2.1 微型DIN-8连接器 90
7.2.2 DB-9连接器 91
7.2.3 RJ-45连接器 92
7.2.4 RJ-45连线的Yost标准 92
7.3 硬载波和软载波 94
7.4 硬件流控制 95
7.5 电缆长度 95
7.6 串行设备文件 95
7.7 串行设备的软件配置 97
7.8 直接相连终端的配置 97
7.8.1 登录进程 97
7.8.2 /etc/ttys文件和/etc/ttytab文件 98
7.8.3 /etc/ttytype文件 99
7.8.4 /etc/gettytab文件 99
7.8.5 /etc/inittab文件 100
7.8.6 /etc/gettydefs文件 101
7.8.7 Solaris和sacadm 101
7.8.8 终端支持:termcap和terminfo数据库 102
7.9 特殊字符和终端驱动程序 102
7.10 stty:设置终端选项 103
7.11 tset:自动设置选项 104
7.12 怎样解脱僵化的终端 104
7.13 调制解调器 105
7.13.1 调制、错误校正以及数据压缩协议 105
7.13.2 拨出配置:/etc/phones和/etc/remote 106
7.13.3 双向调制解调器 107
7.14 调试串行线 107
7.15 其他常用的I/O端口 108
7.15.1 并口 108
7.15.2 通用串行总线 109
第8章 增加硬盘 110
8.1 磁盘接口 110
8.1.1 SCSI接口 111
8.1.2 IDE接口 115
8.1.3 SCSI和IDE的比较 116
8.2 硬盘几何结构 116
8.3 磁盘安装过程概述 118
8.3.1 连接磁盘 118
8.3.2 创建设备记录 118
8.3.3 格式化磁盘 119
8.3.4 标记磁盘和磁盘分区 119
8.3.5 建立逻辑卷 120
8.3.6 创建UNIX文件系统 121
8.3.7 设置自动安装 122
8.3.8 启用交换分区 124
8.4 fsck:检查和修复文件系统 125
8.5 不同操作系统的特殊之处 127
8.5.1 在Solaris系统中添加硬盘 127
8.5.2 在HP-UX中添加硬盘 132
8.5.3 在Red Hat Linux系统中添加硬盘 137
8.5.4 在FreeBSD系统中添加硬盘 142
第9章 周期性进程 146
9.1 cron:调度命令 146
9.2 crontab文件格式 147
9.3 crontab管理 148
9.4 cron的常见用途 149
9.4.1 清理文件系统 149
9.4.2 配置文件的网络分布 150
9.4.3 循环日志文件 151
9.5 不同操作系统的特殊之处 151
第10章 备份 152
10.1 备份基本原理 152
10.1.1 从一台机器中执行所有的转储 153
10.1.2 给磁带加卷标 153
10.1.3 选择合理的备份间隔 153
10.1.4 仔细选择文件系统 153
10.1.5 在一卷磁带上进行日常转储 154
10.1.6 使文件系统比转储设备更小 154
10.1.7 异地保存磁带 154
10.1.8 保护备份 155
10.1.9 限制转储过程中的活动 155
10.1.10 检查磁带 155
10.1.11 开发磁带的生命周期 156
10.1.12 设计备份数据 156
10.1.13 作最坏的准备 156
10.2 备份设备和介质 157
10.2.1 软盘 157
10.2.2 超级软盘 158
10.2.3 CD-R和CD-RW 158
10.2.4 可移动硬盘 158
10.2.5 8mm盒式磁带 158
10.2.6 DAT(4mm)盒式磁带 159
10.2.7 Travan磁带 159
10.2.8 OnStream ADR 159
10.2.9 DLT 160
10.2.10 AIT 160
10.2.11 Mammoth 160
10.2.12 自动选带机、自动换带机以及磁带库 160
10.2.13 硬盘 161
10.2.14 介质类型小结 161
10.2.15 购买备份设备的类型选择 161
10.3 设置增量备份策略 162
10.3.1 转储文件系统 162
10.3.2 转储顺序 165
10.4 从转储中恢复 166
10.4.1 恢复单个文件 167
10.4.2 恢复整个文件系统 169
10.5 升级的转储和恢复 170
10.6 使用其他存档程序 170
10.6.1 tar:打包文件 170
10.6.2 cpio:SysV风格的存档 171
10.6.3 dd:处理位流 171
10.6.4 volcopy:复制文件系统 172
10.7 在一卷磁带上使用多个文件 172
10.8 AMANDA 173
10.8.1 Amanda的体系结构 174
10.8.2 Amanda设置 174
10.8.3 amanda conf文件 175
10.8.4 disklist文件 180
10.8.5 Amanda的日志文件 181
10.8.6 Amanda调试 182
10.8.7 从一个Amanda备份恢复文件 185
10.8.8 Amanda的替换工具:其他开放源代码的备份包 187
10.9 商用备份产品 187
10.9.1 ADSM/TSM 187
10.9.2 Veritas 188
10.9.3 Legato 188
10.9.4 其他选择 189
10.10 推荐读物 189
第11章 Syslog和日志文件 190
11.1 日志记录的策略 190
11.1.1 扔掉日志文件 190
11.1.2 轮换日志文件 191
11.1.3 存档日志文件 192
11.2 查找日志文件 193
11.3 不加管理的文件 194
11.4 不同系统的特殊之处 195
11.5 Syslog:系统事件的日志程序 195
11.5.1 配置syslogd 196
11.5.2 Red Hat对syslog的改进 199
11.5.3 FreeBSD对syslog的改进 199
11.5.4 配置文件实例 200
11.5.5 syslog输出实例 203
11.5.6 为计算机设计日志方案 203
11.5.7 使用syslog的软件 204
11.5.8 调试syslog 205
11.5.9 在程序中使用syslog 206
11.6 分析日志文件 207
第12章 驱动程序和内核 209
12.1 内核类型 210
12.2 配置内核的原因 210
12.3 配置Solaris内核 211
12.3.1 Solaris内核区 211
12.3.2 用/etc/system配置内核 212
12.3.3 /etc/system文件的一个例子 213
12.3.4 调试Solaris配置 214
12.4 编译HP-UX内核 214
12.5 配置Linux内核 215
12.5.1 编译Linux的二进制内核 217
12.5.2 调整Linux配置 217
12.6 编译FreeBSD内核 218
12.6.1 编译内核的基本方法 219
12.6.2 检查系统硬件 219
12.6.3 在SYS/i386/conf中创建配置文件 220
12.6.4 运行config 220
12.6.5 运行make depend 220
12.6.6 构建内核 221
12.6.7 安装新内核 221
12.6.8 测试新内核 221
12.6.9 编写新内核的文档 221
12.7 创建BSD配置文件 222
12.7.1 关键字maxusers 222
12.7.2 关键字options 223
12.7.3 关键字config 224
12.7.4 硬件设备 224
12.7.5 关键字pseudo-device 225
12.7.6 FreeBSD配置文件实例 226
12.7.7 调整FreeBSD内核 228
12.8 添加设备驱动程序 229
12.8.1 设备号 230
12.8.2 添加Solaris设备驱动程序 231
12.8.3 添加Linux设备驱动程序 231
12.8.4 添加FreeBSD设备驱动程序 233
12.9 设备文件 234
12.10 设备命名约定 234
12.11 可加载内核模块 235
12.11.1 Solaris中的可加载内核模块 236
12.11.2 Linux中的可加载内核模块 236
12.11.3 FreeBSD中的可加载内核模块 238
12.12 推荐读物 239
第二部分 网络管理 241
第13章 TCP/IP网络 241
13.1 TCP/IP和Internet 242
13.1.1 简要的历史回顾 242
13.1.2 当今的Internet管理方法 243
13.1.3 网络标准和文献 243
13.2 网络线路图 244
13.3 分组和封装 245
13.3.1 链路层 246
13.3.2 包寻址 248
13.3.3 端口 248
13.3.4 地址类型 249
13.4 IP地址 249
13.4.1 IP地址分类 249
13.4.2 子网和网络掩码 250
13.4.3 IP地址危机 252
13.4.4 CIDR:无类域间路由 253
13.4.5 地址分配 254
13.4.6 专用地址和NAT 255
13.4.7 IPv6寻址 257
13.5 路由 258
13.5.1 路由表 259
13.5.2 ICMP重定向 260
13.6 ARP:地址解析协议 260
13.7 DHCP:动态主机配置协议 262
13.7.1 DHCP软件 262
13.7.2 DHCP的工作方式 263
13.7.3 ISC的DHCP服务器 264
13.8 PPP:点对点协议 265
13.8.1 解决PPP的性能问题 266
13.8.2 用PPP连网 266
13.8.3 让主机说PPP 267
13.8.4 控制PPP链路 267
13.8.5 寻找一个对话的主机 267
13.8.6 分配地址 267
13.8.7 路由 267
13.8.8 确保安全性 268
13.8.9 使用终端服务器 268
13.8.10 使用聊天脚本 268
13.9 安全问题 268
13.9.1 IP转发 268
13.9.2 ICMP重定向 269
13.9.3 源路由 269
13.9.4 广播ping和其他形式的定向广播 269
13.9.5 基于UNIX的防火墙 269
13.9.6 虚拟专用网 270
13.9.7 IPSEC:安全IP 270
13.10 在网络中加入新计算机 270
13.10.1 分配主机名和IP地址 271
13.10.2 ifconfig:配置网络接口 272
13.10.3 route:配置静态路由 274
13.10.4 默认路由 275
13.10.5 配置DNS 276
13.11 特定厂商的网络配置 277
13.12 Solaris的网络配置 278
13.12.1 Solaris的基本网络配置 278
13.12.2 Solaris的配置实例 280
13.12.3 Solaris的DNCP配置 281
13.12.4 Solaris的动态重新配置和调整 282
13.12.5 Solaris的安全性、防火墙、过滤和NAT 283
13.12.6 Solaris的PPP配置 284
13.12.7 Solaris连网的特别之处 285
13.13 HP-UX的网络配置 286
13.13.1 HP-UX的基本网络配置 286
13.13.2 HP-UX的配置实例 287
13.13.3 HP-UX的DHCP配置 289
13.13.4 HP-UX的动态重新配置和调整 290
13.13.5 HP-UX的安全性、防火墙、过滤和NAT 291
13.13.6 HP-UX的PPP配置 291
13.13.7 HP-UX连网的特殊之处 292
13.14 Red Hat的网络配置 292
13.14.1 Red Hat的基本网络配置 293
13.14.2 Red Hat的配置实例 294
13.14.3 Red Hat的DHCP配置 295
13.14.4 Red Hat的动态重新配置和调整 296
13.14.5 Red Hat的安全性、防火墙、过滤和NAT 297
13.14.6 Red Hat的PPP配置 300
13.14.7 Red Hat连网的特别之处 300
13.15 FreeBSD的网络配置 300
13.15.1 FreeBSD的基本网络配置 301
13.15.2 FreeBSD的配置实例 301
13.15.3 FreeBSD的DHCP配置 303
13.15.4 FreeBSD的动态重新配置和调整 303
13.15.5 FreeBSD的安全性、防火墙、过滤和NAT 304
13.15.6 FreeBSD的PPP配置 308
13.15.7 FreeBSD连网的特别之处 310
13.16 推荐读物 310
第14章 路由 312
14.1 近观包转发 313
14.2 路由守护进程和路由协议 315
14.2.1 距离向量协议 316
14.2.2 链路状态协议 316
14.2.3 代价尺度 317
14.2.4 内部和外部协议 317
14.3 内部协议 318
14.3.1 RIP:路由信息协议 318
14.3.2 RIP-2:路由信息协议第2版 318
14.3.3 OSPF:开放最短路径优先 319
14.3.4 IGRP和EIGRP:内部网关路由协议 319
14.3.5 IS-IS:ISO“标准” 319
14.3.6 MOSPF、DVMRP和PIM:多播路由协议 320
14.3.7 路由器发现协议 320
14.4 routed:使用RIP的路由守护进程 320
14.5 gated:更好的路由守护进程 321
14.5.1 gated的启动和控制 321
14.5.2 跟踪 322
14.5.3 gated配置文件 322
14.5.4 选项配置语句 323
14.5.5 网络接口定义 323
14.5.6 其他定义 325
14.5.7 RIP的协议配置 326
14.5.8 OSPF的一些预备知识 327
14.5.9 OSPE的协议配置 328
14.5.10 ICMP重定向的协议配置 329
14.5.11 静态路由 330
14.5.12 导出的路由 331
14.5.13 完整的gated配置示例 331
14.6 不同操作系统的特殊之处 333
14.7 路由策略选择标准 334
14.8 Cisco路由器 335
14.9 推荐读物 337
第15章 网络硬件 339
15.1 选择LAN、WAN,还是MAN 339
15.2 以太网:常见的局域网 340
15.2.1 以太网的工作方式 340
15.2.2 以太网拓扑结构 342
15.2.3 无屏蔽双绞线 342
15.2.4 连接和扩展以太网 343
15.3 FDDI:令人失望而昂贵的局域网 345
15.4 ATM:有前途(但被痛苦地击败)的LAN 347
15.5 帧中继:牺牲的WAN 347
15.6 ISDN:本地的WAN 348
15.7 DSL:大众的WAN 348
15.8 网络的前景 349
15.9 网络测试和调试 350
15.10 建筑物布线 350
15.10.1 UTP电缆连接的选择 350
15.10.2 到办公室的连接 351
15.10.3 布线标准 351
15.11 网络设计问题 352
15.11.1 网络结构与建筑物结构 352
15.11.2 已有的网络 352
15.11.3 扩展 353
15.11.4 拥塞 353
15.11.5 维护和建档 353
15.12 管理问题 354
15.13 推荐的网络产品厂家 354
15.13.1 电缆和连接器 354
15.13.2 测试仪器 355
15.13.3 路由器/交换机 355
15.14 推荐读物 356
第16章 域名系统 357
16.1 DNS初步:添加新机器 357
16.2 DNS的历史 358
16.3 谁需要DNS 359
16.4 DNS新特性 360
16.5 DNS名字空间 361
16.5.1 管理域名 363
16.5.2 选择域名 364
16.5.3 域名爆炸 364
16.5.4 注册二级域名 365
16.5.5 创建子域 365
16.6 BIND软件 365
16.6.1 BIND的版本 365
16.6.2 确定现有的BIND版本 366
16.6.3 BIND的组成 367
16.6.4 named:BIND的名字服务器 367
16.6.5 权威与仅高速缓存服务器 368
16.6.6 递归和非递归服务器 369
16.6.7 解析器库例程 369
16.6.8 DNS shell界面 370
16.7 DNS的工作方式 370
16.7.1 委托 370
16.7.2 高速缓存和效率 371
16.7.3 扩展的DNS协议 372
16.8 BIND客户机问题 372
16.8.1 解析器配置 373
16.8.2 解析器测试 375
16.8.3 对系统剩余部分的影响 375
16.9 BIND服务器配置 376
16.9.1 硬件要求 376
16.9.2 named的启动 376
16.9.3 配置文件 376
16.9.4 include语句 378
16.9.5 options语句 378
16.9.6 acl语句 382
16.9.7 server语句 383
16.9.8 logging语句 384
16.9.9 zone语句 384
16.9.10 key语句 387
16.9.11 trusted-keys语句 387
16.9.12 controls语句 388
16.9.13 view语句 388
16.10 BIND配置示例 389
16.10.1 家用Linux系统 389
16.10.2 大学的一个系 392
16.10.3 一个web主机托管公司 396
16.11 DNS数据库 397
16.11.1 资源记录 397
16.11.2 SOA记录 399
16.11.3 NS记录 401
16.11.4 A记录 402
16.11.5 PTR记录 402
16.11.6 MX记录 403
16.11.7 CNAME记录 404
16.11.8 CNAME扩展 405
16.11.9 LOC记录 407
16.11.10 SRV记录 407
16.11.11 TXT记录 408
16.11.12 IPv6资源记录 409
16.11.13 A6记录 409
16.11.14 DNAME记录 410
16.11.15 区文件中的命令 412
16.11.16 localhost区域 413
16.11.17 黏合记录:区之间的链接 413
16.12 更新区文件 415
16.12.1 区传送 416
16.12.2 动态更新 417
16.13 安全问题 417
16.13.1 再说访问控制列表 418
16.13.2 限制named 419
16.13.3 使用TSIG和TKEY保障服务器与服务器之间通信的安全 420
16.13.4 DNSSEC 421
16.13.5 Microsoft差,UNIX好 425
16.14 测试和调试 425
16.14.1 日志系统 425
16.14.2 调试级别 429
16.14.3 用ndc调试 430
16.14.4 用nslookup、dig和host调试 431
16.14.5 残缺委托 434
16.15 其他细节信息 435
16.15.1 线索文件 435
16.15.2 localhost配置 436
16.15.3 主机管理工具 437
16.15.4 用于系统而不是Internet的DNS 437
16.16 厂商的特定信息 437
16.16.1 Solaris的特定信息 437
16.16.2 HP-UX的特定信息 438
16.16.3 Red Hat Linux的特定信息 439
16.16.4 FreeBSD的特定信息 440
16.17 推荐读物 441
16.17.1 邮递列表和新闻组 441
16.17.2 书籍和其他文档 442
16.17.3 联机资源 442
16.17.4 RFC 442
第17章 网络文件系统 444
17.1 NFS概述 444
17.1.1 NFS协议的版本 444
17.1.2 传输协议的选择 445
17.1.3 WebNFS 445
17.1.4 文件上锁 446
17.1.5 磁盘配额 446
17.1.6 全局UID和GID 446
17.1.7 root访问与nobody账号 446
17.1.8 cookies与无状态安装 447
17.1.9 共享文件系统的命名规则 447
17.1.10 安全性与NFS 447
17.2 服务器端NFS 448
17.2.1 share命令与dfstab文件(Solaris) 449
17.2.2 exportfs命令与exports文件(HP-UX,Red Hat,FreeBSD) 450
17.2.3 nfsd:提供文件服务 454
17.3 客户端NFS 455
17.3.1 biod与nfsiod:提供客户端高速缓存 455
17.3.2 安装远程文件系统 455
17.3.3 端口安全限制 457
17.4 nfsstat:转储NFS统计信息 457
17.5 专用NFS文件服务器 457
17.6 自动安装 458
17.7 automount:最初的自动安装程序 459
17.7.1 间接映射文件 460
17.7.2 直接映射文件 460
17.7.3 主映射文件 460
17.7.4 可执行的映射文件 461
17.7.5 使用automount安装重复的文件系统 461
17.7.6 自动的automounts 462
17.7.7 Red Hat Linux特别说明 462
17.8 AMD:更复杂的自动安装程序 462
17.8.1 amd映射文件 463
17.8.2 启动amd 464
17.8.3 停止amd 465
17.9 参考文献 465
第18章 共享系统文件 466
18.1 共享什么 467
18.2 到处复制文件 467
18.2.1 rdist:推文件 468
18.2.2 rsync:更安全地推文件 470
18.2.3 expect:拉文件 472
18.3 NIS:网络信息服务 473
18.3.1 网络组 474
18.3.2 制订管理信息源的优先级 475
18.3.3 NIS的优缺点 476
18.3.4 NIS的工作方式 476
18.3.5 建立NIS域 478
18.3.6 厂商的特定信息 479
18.4 NIS+:NIS之子 480
18.5 LDAP:轻量级目录访问协议 481
18.5.1 LDAP文档和规范 482
18.5.2 实际应用的LDAP 483
第19章 电子邮件 484
19.1 邮件系统 486
19.1.1 用户代理 487
19.1.2 传送代理 488
19.1.3 投递代理 488
19.1.4 消息库 489
19.1.5 访问代理 489
19.1.6 邮件提交代理 489
19.2 剖析邮件消息 490
19.2.1 邮件寻址 490
19.2.2 阅读邮件信头 491
19.3 邮件基本原理 494
19.3.1 使用邮件服务器 495
19.3.2 使用邮件之家 496
19.3.3 使用IMAP或POP 496
19.4 邮件别名 497
19.4.1 从文件中获取邮递列表 499
19.4.2 发邮件给文件 499
19.4.3 发邮件给程序 500
19.4.4 别名示例 500
19.4.5 邮件转发 502
19.4.6 散列的别名数据库 503
19.4.7 邮递列表和清单争执软件 503
19.4.8 LDAP:轻量级目录访问协议 506
19.5 SENDMAIL:电子邮件的指挥 508
19.5.1 sendmail的历史 508
19.5.2 各厂商提供的sendmail版本 509
19.5.3 sendmail的安装 510
19.5.4 开关文件 511
19.5.5 运行模式 511
19.5.6 邮件队列 512
19.6 sendmail配置 514
19.6.1 使用m4预处理器 515
19.6.2 sendmail配置的片段 516
19.6.3 从示例的.mc文件构建配置文件 517
19.7 基本的sendmail配置原语 518
19.7.1 VERSIONID宏 518
19.7.2 OSTYPE宏 518
19.7.3 DOMAIN宏 520
19.7.4 MAILER宏 520
19.8 sendmail高级配置原语 521
19.8.1 FEATURE宏 521
19.8.2 use_cw_file功能 521
19.8.3 redirect功能 522
19.8.4 always_add_domain功能 522
19.8.5 nocanonify功能 523
19.8.6 表和数据库 523
19.8.7 mailertable功能 524
19.8.8 genericstable功能 524
19.8.9 virtusertable功能 525
19.8.10 ldap_routing 525
19.8.11 伪装和MASQUERADE_AS宏 526
19.8.12 MAIL_HUB和SMART_HOST宏 527
19.8.13 伪装和路由 528
19.8.14 nullclient功能 528
19.8.15 local_lmtp和smrsh功能 529
19.8.16 local_procmail功能 529
19.8.17 LOCAL_ 宏 530
19.8.18 配置选项 530
19.9 配置文件示例 531
19.9.1 一个计算机科学系学生家里的机器 532
19.9.2 一个很小但善用sendmail的公司 534
19.9.3 另一个邮件主机/客户机的例子 537
19.10 SENDMAIL中与垃圾邮件相关的功能 539
19.10.1 转发 540
19.10.2 访问数据库 542
19.10.3 把用户或站点列入黑名单 544
19.10.4 信头检查 544
19.10.5 处理垃圾邮件 545
19.10.6 垃圾邮件示例 546
19.11 安全性与sendmail 549
19.11.1 所有权 550
19.11.2 权限 550
19.11.3 到文件和程序的可靠邮件 551
19.11.4 隐私选项 552
19.11.5 运行chroot后的sendmail 553
19.11.6 拒绝服务攻击 553
19.11.7 伪造 553
19.11.8 消息隐私 554
19.11.9 SASL:简单的身份验证和安全性层 555
19.12 sendmail的统计信息、测试和调试 555
19.12.1 测试和调试 556
19.12.2 罗嗦的投递 556
19.12.3 用SMTP交谈 558
19.12.4 日志 558
19.13 Postfix邮件系统 559
19.13.1 Postfix的体系结构 559
19.13.2 配置Postfix 560
19.13.3 垃圾邮件的控制 562
19.13.4 Postfix示例 562
19.14 推荐读物 564
第20章 网络管理和调试 565
20.1 网络的故障排除 566
20.2 ping:检查主机是否活着 567
20.3 traceroute:跟踪IP包 568
20.4 netstat:获得大量零的网络统计信息 570
20.4.1 监视网络连接的状态 570
20.4.2 检查接口的配置信息 572
20.4.3 检查路由选择表 573
20.4.4 查看各种网络协议运行的统计信息 573
20.5 包探测器 574
20.5.1 snoop:Solaris的包探测器 575
20.5.2 nettl:HP-UX的包探测器 576
20.5.3 tcpdump:探测器之王 576
20.6 网络管理协议 577
20.7 SNMP:简单网络管理协议 578
20.7.1 SNMP的组织结构 578
20.7.2 SNMP协议操作 579
20.7.3 RMON:远程监视MIB 580
20.8 SNMP代理程序 580
20.8.1 Solaris上的SNMP 580
20.8.2 HP-UX上的SNMP 581
20.8.3 UCD SNMP代理程序 582
20.9 网络管理应用程序 583
20.9.1 UCD SNMP工具 583
20.9.2 MRTG:多路由器流量记录仪 584
20.9.3 NOCOL:网络在线运行中心 585
20.9.4 商业管理平台 585
20.10 推荐读物 586
第21章 安全性 587
21.1 7条安全性的常识规则 588
21.2 安全性如何受损害 589
21.3 /etc/passwd文件的安全问题 590
21.3.1 口令的检查和选择 590
21.3.2 隐蔽口令 591
21.3.3 组登录名和共享登录名 591
21.3.4 口令时限 592
21.3.5 用户shell 592
21.3.6 像root一样的条目 592
21.4 setuid程序 592
21.5 重要的文件权限 593
21.6 形形色色的安全性事务 594
21.6.1 远程事件记录 594
21.6.2 安全终端 594
21.6.3 ./etc/hosts.equiv和~/.rhosts 594
21.6.4 rexd、rexecd和tftpd 595
21.6.5 fingerd 595
21.6.6 安全性与NIS 595
21.6.7 安全性与NFS 596
21.6.8 安全性与sendmail 596
21.6.9 安全性与备份 596
21.6.10 特洛伊木马 596
21.7 安全增强工具 597
21.7.1 nmap:扫描网络端口 597
21.7.2 SAINT:检查连网系统的弱点 599
21.7.3 Nessus:下一代的网络扫描程序 599
21.7.4 crack:找出不安全的口令 599
21.7.5 tcpd:保护Internet服务 600
21.7.6 COPS:审计系统的安全性 601
21.7.7 tripwire:监视系统文件的变化 601
21.7.8 讨论的工具 603
21.8 加密安全工具 603
21.8.1 Kerberos:用于网络安全的统一方法 603
21.8.2 PGP:Pretty Good Privacy(很好的私密性) 604
21.8.3 SSH:安全shell 605
21.8.4 SRP:Secure Remote Password(安全的远程口令) 606
21.8.5 OPIE:One-time Passwords in Everything(每件事情的一次性口令) 606
21.9 防火墙 607
21.9.1 包过滤器防火墙 607
21.9.2 过滤服务 607
21.9.3 服务代理防火墙 608
21.9.4 状态检查防火墙 609
21.9.5 防火墙的可靠性 609
21.10 安全信息的来源 609
21.10.1 CERT:卡耐基梅隆大学的注册服务商标 609
21.10.2 SecurityFocus.com和Bug Traq邮递列表 610
21.10.3 SANS:System Administration,Networking,and Security Institute(系统管理、网络和安全协会) 610
21.10.4 特定供应厂商的安全性资源 610
21.10.5 其他邮递列表和网站 611
21.11 如何对付站点攻击 611
21.12 推荐读物 613
第22章 Web主机和Internet服务器 614
22.1 Web主机托管 614
22.2 Web主机托管的基本知识 615
22.2.1 统一资源定位符 616
22.2.2 HTTP如何工作 616
22.2.3 CGI脚本:即时生成内容 617
22.2.4 负载平衡 617
22.3 HTTP服务程序的安装 618
22.3.1 选择服务程序 618
22.3.2 编译和安装Apache 618
22.3.3 配置Apache 619
22.3.4 运行Apache 620
22.4 虚拟接口 620
22.4.1 配置虚拟接口 621
22.4.2 告诉Apache有关虚拟接口的信息 623
22.5 高速缓存和代理服务程序 623
22.5.1 设置Squid 624
22.6 匿名FTP服务程序的设置 625
22.7 Usenet新闻 626
22.7.1 USENET新闻馈送 627
22.7.2 Usenet软件 627
22.7.3 Usenet新闻去往何方 628
第三部分 其他管理技术 630
第23章 打印过程 630
23.1 打印术语的小词汇表 631
23.2 打印机类型 632
23.2.1 串口和并口打印机 632
23.2.2 网络打印机 632
23.2.3 没有PostScript的打印过程 633
23.3 BSD打印过程 633
23.3.1 打印过程概述 633
23.3.2 控制打印环境 634
23.3.3 lpd:BSD假脱机打印程序 635
23.3.4 lpr:提交打印作业 635
23.3.5 lpq:查看打印队列 635
23.3.6 lprm:取消打印作业 636
23.3.7 lpc:管理方面的修改 636
23.3.8 /etc/printcap文件 638
23.3.9 printcap变量 639
23.3.10 串口设备的printcap变量 642
23.3.11 printcap扩展 643
23.3.12 向打印机之外的地方打印 643
23.4 SystemV的打印过程 644
23.4.1 概述 644
23.4.2 目的地及类 645
23.4.3 lp简述 645
23.4.4 lpsched与lpshut:启动和停止打印 645
23.4.5 lpadmin:配置打印环境 646
23.4.6 lpstat:获取状态信息 648
23.4.7 cancel:删除打印作业 649
23.4.8 accept和reject:控制假脱机处理 649
23.4.9 emable和disable:控制打印 650
23.4.10 lpmove:传送作业 650
23.4.11 接口程序 651
23.4.12 lp系统混乱状况的处理方法 651
23.5 添加打印机 652
23.5.1 向Solaris添加打印机 652
23.5.2 向HP-UX添加打印机 655
23.5.3 向Red Hat Linux添加打印机 656
23.5.4 向FreeBSD添加打印机 657
23.6 LPRng 658
23.6.1 LPRng命令 659
23.6.2 LPRng的获取与安装 659
23.6.3 /etc/lpd.conf:配置lpd 660
23.6.4 /etc/lpd.perms:配置访问控制 660
23.6.5 建立printcap文件 661
23.6.6 过滤器 661
23.6.7 记账过程 661
23.7 调试打印问题 662
23.8 常见的打印软件 662
23.8.1 rlpr 662
23.8.2 ghostscript 663
23.8.3 mpage 663
23.8.4 enscript 663
23.9 打印机的使用原则 663
23.9.1 使用打印机记账 663
23.9.2 只在必要时使用标题页 664
23.9.3 提供回收箱 664
23.9.4 提供预览程序 664
23.9.5 购买便宜的打印机 664
23.9.6 随手备有富余的墨粉盒 664
23.9.7 保护打印机的安全 665
第24章 维护与环境 666
24.1 维护基础 666
24.2 维护合同 667
24.2.1 现场维护 667
24.2.2 板卡更换维护 667
24.2.3 保修项目 667
24.3 电路板处理知识 668
24.3.1 静电 668
24.3.2 重插板卡 668
24.4 监视器 669
24.5 内存模块 669
24.6 预防性维护 669
24.7 环境 670
24.7.1 温度 670
24.7.2 湿度 670
24.7.3 办公室降温 670
24.7.4 机房降温 671
24.7.5 温度监视 672
24.8 电源 672
24.8.1 远程供电控制 673
24.9 机柜 673
24.10 工具 673
第25章 性能分析 675
25.1 做什么可以提高性能 676
25.2 影响性能的因素 677
25.3 全面检查系统性能 677
25.3.1 CPU使用情况分析 678
25.3.2 UNIX如何内存管理 680
25.3.3 内存使用情况分析 681
25.3.4 硬盘I/O分析 683
25.3.5 虚拟Adrian 685
25.3.6 procinfo:显示Red Hat的性能数据 685
25.3.7 pstat:输出随机的FreeBSD统计数据 685
25.4 求助!系统为何越来越慢 686
25.5 推荐读物 687
第26章 与Windows协作 688
26.1 文件及打印共享 688
26.1.1 NFS:网络文件系统 689
26.1.2 CIFS:公共Internet文件系统 689
26.1.3 Samba:UNIX的CIFS 689
26.1.4 Samba的安装与配置 690
26.1.5 Samba的调试 692
26.2 支持SSH的安全终端仿真程序 693
26.3 X Windows仿真程序 693
26.4 PC邮件客户端程序 694
26.5 PC备份 694
26.6 双重引导 695
26.7 在UNIX下运行Windwos应用程序 695
26.8 PC硬件提示 695
第27章 政策与政治 697
27.1 政策与规程 698
27.1.1 安全政策 699
27.1.2 用户政策协定 700
27.1.3 系统管理员政策协定 701
27.1.4 紧急情况下的政策与规程 702
27.1.5 事故处理计划 702
27.1.6 其他杂项 704
27.2 法律问题 704
27.2.1 责任 704
27.2.2 加密 705
27.2.3 版权 705
27.2.4 隐私 706
27.2.5 政策实施 706
27.2.6 软件许可证 708
27.2.7 垃圾邮件:主动提供的商业电子邮件 708
27.3 系统管理综述 709
27.3.1 SAGE收入调查 709
27.3.2 SANS收入调查 710
27.4 服务范围 710
27.5 故障报告系统 711
27.6 主管部门 712
27.7 受雇、解雇和培训 712
27.7.1 态度调整 713
27.7.2 操作员考验战 714
27.7.3 不断锻炼 714
27.8 冲突与道德规范 714
27.8.1 上司的错误之一 715
27.8.2 上司的错误之二 715
27.8.3 Dan,你的新名字叫Lester 715
27.8.4 谁将被解雇 716
27.8.5 报复者Joe 716
27.8.6 婚礼邀请 716
27.8.7 色情GIF图片 717
27.8.8 搬迁数据 717
27.8.9 比尔该死 718
27.9 本地化与升级 718
27.9.1 管理跨系统的软件 718
27.9.2 升级 719
27.9.3 有用的第三方软件 720
27.10 本地建档 722
27.11 采购 723
27.12 硬件退役 724
27.13 软件专利 725
27.14 机构、会议及其他资源 725
27.14.1 SAGE:系统管理员行业协会 726
27.14.2 邮递列表和Web资源 727
27.14.3 打印资源 728
27.15 标准 728
27.16 范例文档 730
27.17 推荐读物 730
第28章 守护进程 731
28.1 init:基本守护进程 732
28.2 cron:调度命令 733
28.3 inetd:管理守护进程 733
28.3.1 配置inetd 733
28.3.2 services文件 734
28.3.3 重启inetd 735
28.3.4 保护inetd的安全 735
28.3.5 portmap/rpcbind:把RPC服务映射到TCP和UDP端口 736
28.4 系统守护进程 736
28.4.1 分页守护进程 736
28.4.2 交换守护进程 736
28.4.3 文件系统同步守护进程 737
28.5 打印守护进程 737
28.5.1 lpd:管理BSD打印 737
28.5.2 lpsched:管理ATT打印 737
28.5.3 rlpdaemon:从BSD向HP-UX打印 737
28.6 NFS守护进程 737
28.6.1 nfsd:服务文件 737
28.6.2 mountd:响应安装请求? 738
28.6.3 amd和automount:按要求安装文件系统 738
28.6.4 lockd和statd:管理NFS上锁 738
28.6.5 biod:高速缓存NFS块 738
28.7 NIS守护进程 738
28.7.1 ypbind:定位NIS服务器 738
28.7.2 ypserv:NIS服务器 739
28.7.3 ypxfrd:传送NIS数据库 739
28.7.4 rpc.nisd:NIS+服务器 739
28.8 Internet守护进程 739
28.8.1 talkd:网络聊天服务 739
28.8.2 comsat:通知用户有新邮件? 739
28.8.3 sendmail:传送电子邮件 740
28.8.4 snmpd:提供远程网络管理服务 740
28.8.5 rwhod:维护远程用户列表 740
28.8.6 ftpd:文件传输服务器? 740
28.8.7 popper:基本邮箱服务器? 740
28.8.8 imapd:高级邮箱服务器? 740
28.8.9 rlogind:远程登录服务器? 741
28.8.10 telnetd:另一种远程登录服务器? 741
28.8.11 sshd:安全的远程登录服务器? 741
28.8.12 rshd:远程命令执行服务器? 741
28.8.13 rexecd:另一种命令执行服务器? 741
28.8.14 rpc.rexd:第三种命令执行服务器? 741
28.8.15 routed:维护路由表 741
28.8.16 gated:维护复杂的路由表 742
28.8.17 named:DNS服务器? 742
28.8.18 syslogd:处理登录消息 742
28.8.19 fingerd:查找用户? 742
28.8.20 httpd:World Wide Web服务器? 742
28.9 时间同步守护进程 742
28.9.1 timed:同步时钟 743
28.9.2 xntpd:更好的时钟同步 743
28.10 引导和配置守护进程 743
28.10.1 bootpd:引导服务器? 743
28.10.2 tftpd:普通文件传输服务器? 744
28.10.3 rarpd:把Ethernet地址映射到IP地址 744
28.10.4 bootparamd:高级无盘支持? 744
28.10.5 dhcpd:动态地址分配? 744