书籍详情
UNIX/Linux 系统管理技术手册(第四版)
作者:(美)Evi Nemeth Garth Snyder Trent R.Hein Ben Whaley 著
出版社:人民邮电出版社
出版时间:2012-06-01
ISBN:9787115279002
定价:¥128.00
购买这本书可以去
内容简介
《UNIX/Linux系统管理技术手册(第四版)》(ULAHv4)是《Linux系统管理技术手册》和《UNIX系统管理技术手册》的终结版,也是Evi Nemeth的封刀之作。 《UNIX/Linux系统管理技术手册(第四版)》延续了《Linux系统管理技术手册(第二版)》以及《UNIX系统管理技术手册(第三版)》的讲解风格,以当前主流的5种Linux发行版本(Red Hat ES、SUSE、Debian、Fedora Core和Ubuntu)为例,把Linux系统管理技术分为3部分分别介绍。第一部分全面介绍了运行单机Linux系统涉及的各种管理知识和技术,如系统引导和关机、进程控制、文件系统管理、用户管理、设备管理、系统备份、软件配置以及cron和系统日志的管理使用等。第二部分从详细讲解TCP/IP协议基本原理开始,深入讨论了网络的两大基本应用:域名系统和路由技术,然后逐章讲解Linux上的各种Internet关键应用,如电子邮件、NFS、文件共享、Web托管和Internet服务,在这部分里还有专门的章节介绍网络硬件、网络管理与调试以及系统安全。第三部分包括了多种不容忽视的重要主题:X窗口系统、打印系统、系统维护与环境、性能分析、与Windows系统的协作、串行设备、操作系统驱动程序和内核、系统守护进程以及政策与行政管理方面的知识等。 《UNIX/Linux系统管理技术手册(第四版)》的几位作者是分别来自学术界、企业界以及职业培训领域的Linux/UNIX系统管理专家,这使得本书从第一版开始,即成为全面、深入而且颇富实用性的Linux系统管理权威参考书。 《UNIX/Linux系统管理技术手册(第四版)》适合于从Linux初学者到具有丰富经验的Linux专业技术人员使用。
作者简介
Evi Nemeth,已经从科罗拉多大学计算机科学系教师的岗位上退休了。她现在正坐在自己40英尺长的帆船Wonderland号上遨游太平洋呢。这是她写的最后一版:当船停泊在人间天堂里的时候,用只有30波特率的GPRS收发电子邮件,是无法跟上最新系统管理技术的步伐了。 Garth Snyder,曾经在NeXT和Sun公司工作过,他从斯沃索莫学院(Swarthmore College)获得了工学学士学位,并从罗彻斯特大学取得MD和MBA学位。 Trent R. Hein,是Applied Trust公司的创办人之一,这是一家提供网络基础设施咨询服务的公司。Trent从科罗拉多大学获得了计算机科学专业学士学位。 Ben Whaley,是Applied Trust公司的企业构架主管,这是一家位于科罗拉多州波尔多的IT咨询公司。Ben在2004年获得科罗拉多大学计算机科学专业学士学位。
目录
第一部分 基本管理技术 1第1章 从何处入手 2
1.1 系统管理员的基本任务 3
1.1.1 账号管理 3
1.1.2 增删硬件 3
1.1.3 执行备份 3
1.1.4 安装和更新软件 3
1.1.5 监视系统 4
1.1.6 故障诊断 4
1.1.7 维护本地文档 4
1.1.8 时刻警惕系统安全 4
1.1.9 救火 4
1.2 读者的知识背景 4
1.3 UNIX和Linux之间的摩擦 5
1.4 Linux的发行版本 7
1.5 本书使用的示例系统 8
1.5.1 用作示例的Linux发行版本 8
1.5.2 用作示例的UNIX发行版本 9
1.6 特定于系统的管理工具 10
1.7 表示法和印刷约定 10
1.8 单位 11
1.9 手册页和其他联机文档 12
1.9.1 手册页的组织 12
1.9.2 man:读取手册页 13
1.9.3 手册页的保存 14
1.9.4 GNUTexinfo 14
1.10 其他的权威文档 14
1.10.1 针对系统的专门指南 14
1.10.2 针对软件包的专门文档 15
1.10.3 书籍 15
1.10.4 RFC和其他Internet文档 16
1.10.5 LDP 16
1.11 其他的信息资源 16
1.12 查找和安装软件的途径 17
1.12.1 判断软件是否已经安装 18
1.12.2 增加新软件 18
1.12.3 从源代码编译软件 20
1.13 重压下的系统管理员 21
1.14 推荐读物 21
1.15 习题 23第2章 脚本和shell 24
2.1 shell的基础知识 25
2.1.1 编辑命令 25
2.1.2 管道和重定向 25
2.1.3 变量和引用 27
2.1.4 常见的过滤命令 27
2.2 bash脚本编程 30
2.2.1 从命令到脚本 31
2.2.2 输入和输出 32
2.2.3 命令行参数和函数 33
2.2.4 变量的作用域 34
2.2.5 控制流程 35
2.2.6 循环 36
2.2.7 数组和算术运算 38
2.3 正则表达式 39
2.3.1 匹配过程 40
2.3.2 普通字符 40
2.3.3 特殊字符 40
2.3.4 正则表达式的例子 41
2.3.5 捕获 42
2.3.6 贪心、懒惰和灾难性的回溯 43
2.4 Perl编程 44
2.4.1 变量和数组 45
2.4.2 数组和字符串文字 45
2.4.3 函数调用 46
2.4.4 表达式里的类型转换 46
2.4.5 字符串表达式和变量 46
2.4.6 哈希 46
2.4.7 引用和自动生成 48
2.4.8 Perl语言里的正则表达式 48
2.4.9 输入和输出 49
2.4.10 控制流程 50
2.4.11 接受和确认输入 51
2.4.12 Perl用作过滤器 52
2.4.13 Perl的附加模块 53
2.5 Python脚本编程 54
2.5.1 Python快速入门 54
2.5.2 对象、字符串、数、列表、字典、元组和文件 56
2.5.3 确认输入的例子 57
2.5.4 循环 58
2.6 脚本编程的最佳实践 59
2.7 推荐读物 60
Shell基础知识和bash脚本编程 60
正则表达式 60
Perl脚本编程 60
Python脚本编程 61
2.8 习题 61第3章 引导和关机 62
3.1 引导 62
3.1.1 恢复模式下引导进入shell 63
3.1.2 引导过程的步骤 63
3.1.3 初始化内核 63
3.1.4 配置硬件 64
3.1.5 创建内核进程 64
3.1.6 操作员干预(仅限恢复模式) 64
3.1.7 执行启动脚本 65
3.1.8 引导进程完成 65
3.2 引导PC 65
3.3 GRUB:全面统一的引导加载程序 66
3.3.1 内核选项 67
3.3.2 多重引导 68
3.4 引导进入单用户模式 68
3.4.1 用GRUB引导单用户模式 68
3.4.2 SPARC上的单用户模式 69
3.4.3 HP-UX的单用户模式 69
3.4.4 AIX的单用户模式 70
3.5 启动脚本 70
3.5.1 init及其运行级 70
3.5.2 启动脚本概述 71
3.5.3 Red Hat启动脚本 73
3.5.4 SUSE的启动脚本 74
3.5.5 Ubuntu的启动脚本和Upstart守护进程 75
3.5.6 HP-UX的启动脚本 75
3.5.7 AIX的启动 76
3.6 引导Solaris 77
3.6.1 Solaris的SMF 77
3.6.2 崭新的世界:用SMF引导系统 79
3.7 重新引导和关机 79
3.7.1 shutdown:停止系统的妥善方式 79
3.7.2 halt和reboot:关闭系统的更简单方式 80
3.8 习题 80第4章 访问控制和超级权限 82
4.1 传统的UNIX访问控制 82
4.1.1 文件系统的访问控制 83
4.1.2 进程的所有权 83
4.1.3 root账号 84
4.1.4 setuid和setgid执行方式 84
4.2 现代的访问控制 85
4.2.1 基于角色的访问控制 85
4.2.2 SELinux:增强安全性的Linux 86
4.2.3 POSIX能力(Linux) 86
4.2.4 PAM:可插入式身份验证模块 87
4.2.5 Kerberos:第三方的加密验证 87
4.2.6 访问控制列表 87
4.3 实际中的访问控制 87
4.3.1 选择root的口令 88
4.3.2 登录进入root账号 89
4.3.3 su:替换用户身份 89
4.3.4 sudo:受限的su 89
4.3.5 口令保险柜和口令代管 92
4.4 root之外的其他伪用户 92
4.5 习题 93第5章 进程控制 94
5.1 进程的组成部分 94
5.1.1 PID:进程的ID号 95
5.1.2 PPID:父PID 95
5.1.3 UID和EUID:真实的和有效的用户ID 95
5.1.4 GID和EGID:真实的和有效的组ID 96
5.1.5 谦让度 96
5.1.6 控制终端 96
5.2 进程的生命周期 96
5.3 信号 97
5.4 kill: 发送信号 99
5.5 进程的状态 100
5.6 nice和renice:影响调度优先级 101
5.7 ps:监视进程 102
5.8 用top、prstat和topas动态监视进程 105
5.9 /proc文件系统 105
5.10 strace、truss和tusc:追踪信号和系统调用 107
5.11 失控进程 108
5.12 推荐读物 108
5.13 习题 109第6章 文件系统 110
6.1 路径名称 111
6.1.1 绝对路径和相对路径 111
6.1.2 文件名中的空白 112
6.2 挂载和卸载文件系统 112
6.3 文件树的组织 114
6.4 文件类型 116
6.4.1 普通文件 117
6.4.2 目录 117
6.4.3 字符设备文件和块设备文件 118
6.4.4 本地域套接口 118
6.4.5 有名管道 119
6.4.6 符号链接 119
6.5 文件属性 119
6.5.1 权限位 120
6.5.2 setuid和setgid位 120
6.5.3 粘附位 121
6.5.4 ls:列出和查看文件 121
6.5.5 chmod:改变权限 122
6.5.6 chown和chgrp:改变归属关系和组 123
6.5.7 umask:分配默认的权限 124
6.5.8 Linux上的额外标志 124
6.6 访问控制列表 125
6.6.1 UNIX ACL简史 126
6.6.2 ACL的实现 126
6.6.3 系统支持的ACL 127
6.6.4 POSIX的ACL 127
6.6.5 NFSv4的ACL 130
6.7 习题 134第7章 添加新用户 136
7.1 /etc/passwd文件 137
7.1.1 登录名 138
7.1.2 加密的口令 139
7.1.3 UID号 140
7.1.4 默认的GID号 141
7.1.5 GECOS字段 141
7.1.6 主目录 142
7.1.7 登录shell 142
7.2 /etc/shadow和/etc/security/passwd文件 142
7.3 /etc/group文件 145
7.4 添加用户:基本步骤 146
7.4.1 编辑passwd和group文件 146
7.4.2 设置口令 147
7.4.3 创建主目录并安装启动文件 147
7.4.4 设置权限和所属关系 148
7.4.5 设置邮件主目录 148
7.4.6 配置角色和管理特权 148
7.4.7 收尾步骤 148
7.5 用useradd添加用户 149
7.5.1 Ubuntu上的useradd 150
7.5.2 SUSE上的useradd 150
7.5.3 Red Hat上的useradd 151
7.5.4 Solaris上的useradd 151
7.5.5 HP-UX上的useradd 152
7.5.6 AIX的useradd 152
7.5.7 useradd举例 154
7.6 用newusers成批添加用户(Linux) 154
7.7 删除用户 155
7.8 禁止登录 156
7.9 用系统的专门工具管理用户 157
7.10 用PAM降低风险 157
7.11 集中管理账号 157
7.11.1 LDAP和Active Directory 158
7.11.2 单一登录系统 158
7.11.3 身份管理系统 158
7.12 推荐读物 159
7.13 习题 159第8章 存储 161
8.1 只想加一块硬盘! 161
8.1.1 Linux的做法 162
8.1.2 Solaris的做法 162
8.1.3 HP-UX的做法 163
8.1.4 AIX的做法 163
8.2 存储硬件 164
8.2.1 硬盘 164
8.2.2 固态盘 165
8.3 存储硬件接口 166
8.3.1 PATA接口 167
8.3.2 SATA接口 168
8.3.3 并行SCSI 168
8.3.4 串行SCSI 170
8.3.5 SCSI和SATA的比较 170
8.4 层层剖析:存储上的软件 171
8.5 硬盘的安装和底层管理 173
8.5.1 在硬件层面上的安装核实 173
8.5.2 磁盘设备文件 173
8.5.3 格式化和坏块管理 176
8.5.4 ATA安全擦除 176
8.5.5 hdparm:设置磁盘和接口参数(Linux) 177
8.5.6 使用SMART监视磁盘 179
8.6 磁盘分区 179
8.6.1 传统的分区方式 180
8.6.2 Windows的分区 181
8.6.3 GPT:GUID分区表 182
8.6.4 Linux的分区 183
8.6.5 Solaris的分区 183
8.6.6 HP-UX的分区 183
8.7 RAID:廉价磁盘冗余阵列 183
8.7.1 软硬RAID对比 184
8.7.2 RAID的级别 184
8.7.3 硬盘故障恢复 186
8.7.4 RAID 5的缺点 186
8.7.5 mdadm:Linux上的软RAID 187
8.8 逻辑卷管理 189
8.8.1 LVM的实现 190
8.8.2 Linux的逻辑卷管理 191
8.8.3 HP-UX的逻辑卷管理 194
8.8.4 AIX的逻辑卷管理 196
8.10 文件系统 197
8.9.1 Linux文件系统:ext家族的文件系统 197
8.9.2 HP-UX文件系统 198
8.9.3 AIX的JFS2文件系统 198
8.9.4 文件系统的术语 199
8.9.5 文件系统的多态性 199
8.9.6 mkfs:格式化文件系统 200
8.9.7 fsck:检查和修复文件系统 200
8.9.8 挂载文件系统 201
8.9.9 设置自动挂载 201
8.9.10 挂载USB设备 203
8.9.11 启用交换分区 204
8.10 ZFS:解决所有存储问题 204
8.10.1 ZFS体系结构 205
8.10.2 举例:Solaris磁盘分区 205
8.10.3 文件系统和属性 206
8.10.4 属性继承 207
8.10.5 每个用户一个文件系统 208
8.10.6 快照和克隆 208
8.10.7 原始卷 209
8.10.8 通过NFS、CIFS和iSCSI共享文件系统 209
8.10.9 存储池管理 210
8.11 存储区域网络 211
8.11.1 SAN网络 212
8.11.2 iSCSI:SCSI over IP 213
8.11.3 从iSCSI卷引导 214
8.11.4 iSCSI的厂商特性 214
8.12 习题 216第9章 周期性进程 218
9.1 cron:按时间表执行命令 218
9.2 crontab文件的格式 219
9.3 crontab管理 220
9.4 Linux及其Vixie-CRON的扩展 221
9.5 cron的常见用途 222
9.5.1 简单的提醒功能 222
9.5.2 清理文件系统 223
9.5.3 配置文件的网络分布 224
9.5.4 循环日志文件 224
9.6 习题 224第10章 备份 225
10.1 备份基本原理 226
10.1.1 从中心位置执行所有的备份 226
10.1.2 给备份介质加卷标 226
10.1.3 选择合理的备份间隔 226
10.1.4 仔细选择文件系统 227
10.1.5 在单一介质上做日常转储 227
10.1.6 异地保存介质 227
10.1.7 保护备份 228
10.1.8 备份期间限制活动 228
10.1.9 查验介质 228
10.1.10 发掘介质的寿命 229
10.1.11 为备份而设计数据 229
10.1.12 做最坏的准备 230
10.2 备份设备和介质 230
10.2.1 光盘:CD-R/RW、DVD±R/RW、DVD-RAM和蓝光 231
10.2.2 便携和移动硬盘 231
10.2.3 磁带概述 231
10.2.4 小型磁带机:8mm磁带和DDS/DAT 232
10.2.5 DLT和S-DLT 232
10.2.6 AIT和SAIT 232
10.2.7 VXA和VXA-X 233
10.2.8 LTO 233
10.2.9 自动选带机、自动换带机以及磁带库 233
10.2.10 硬盘 233
10.2.11 因特网和云备份服务 234
10.2.12 介质类型小结 234
10.2.13 设备选型 235
10.3 节省空间和时间与增量备份 235
10.3.1 简单的计划 236
10.3.2 适中的计划 236
10.4 用dump建立备份机制 236
10.4.1 转储文件系统 237
10.4.2 用restore从转储中恢复 239
10.4.3 恢复整个文件系统 241
10.4.4 恢复到新硬盘上 242
10.5 为系统升级而执行转储和恢复 242
10.6 使用其他存档程序 242
10.6.1 tar: 给文件打包 242
10.6.2 dd:处理位流 243
10.6.3 ZFS的备份 244
10.7 使用同一卷磁带上的多个文件 244
10.8 Bacula 245
10.8.1 Bacula的模型 246
10.8.2 设置Bacula 246
10.8.3 安装数据库和Bacula的守护进程 247
10.8.4 配置Bacula的守护进程 247
10.8.5 公共的配置段 248
10.8.6 bacular-dir.conf:配置控制文件 249
10.8.7 bacula-sd.conf:配置存储守护进程 252
10.8.8 bconsole.conf:配置控制台 253
10.8.9 安装和配置客户端的文件守护进程 253
10.8.10 启动Bacula的守护进程 253
10.8.11 向存储池添加介质 254
10.8.12 执行一次手工备份 254
10.8.13 执行一次恢复工作 254
10.8.14 给Windows客户机做备份 257
10.8.15 监视和调试Bacula的配置 257
10.8.16 Bacula的技巧和窍门 258
10.8.17Bacula的替代工具 258
10.9 商用备份产品 259
10.9.1 ADSM/TSM 259
10.9.2 VeritasNetBackup 259
10.9.3 EMCNetWorker 260
10.9.4 其他选择 260
10.10 推荐读物 260
10.11 习题 260第11章 系统日志与日志文件 262
11.1 日志文件的位置 263
11.1.1 不用管理的文件 264
11.1.2 厂商特有的文件 265
11.2 syslog:系统事件的日志程序 266
11.2.1 syslog的体系结构 266
11.2.2 配置syslogd 267
11.2.3 配置文件举例 269
11.2.4 调试syslog 271
11.2.5 syslog的其他替代方案 271
11.2.6 Linux内核和引导时刻日志 272
11.3 AIX:日志记录和出错处理 273
11.3.1 AIX的syslog配置 274
11.4 logrotate: 管理日志文件 275
11.5 分析日志文件 276
11.6 日志记录的策略 277
11.7 习题 278第12章 软件安装和管理 280
12.1 安装Linux和OpenSolaris 280
12.1.1 从网络引导PC 281
12.1.2 为Linux设置PXE 281
12.1.3 非PC的网络引导 282
12.1.4 Kickstart:RHEL的自动安装程序 282
12.1.5 AutoYaST:SUSE的自动安装工具 284
12.1.6 用Ubuntu的安装程序自动安装 285
12.2 安装Solaris 286
12.2.1 使用JumpStart网络安装 287
12.2.2 使用自动安装程序进行网络安装 290
12.3 安装HP-UX 291
12.3.1 用Ignite-UX自动安装 293
12.4 使用NIM安装AIX 293
12.5 软件包管理 294
12.6 Linux的高级软件包管理系统 295
12.6.1 rpm:管理RPM软件包 295
12.6.2 dpkg:管理Debian的软件包 296
12.7 Linux的高级软件包管理系统 297
12.7.1 软件包的库 298
12.7.2 RHN:Red Hat网络 299
12.7.3 APT:高级软件包工具 299
12.7.4 配置apt-get 300
12.7.5 /etc/apt/sources.list文件的例子 301
12.7.6 创建本地的库镜像 301
12.7.7 自动执行apt-get 302
12.7.8 yum:管理RPM的发布 302
12.7.9 Zypper:SUSE的软件包管理 303
12.8 UNIX的软件包管理 304
12.8.1 Solaris软件包 304
12.8.2 HP-UX软件包 305
12.8.3 AIX的软件管理 307
12.9 版本控制 307
12.9.1创建备份文件 307
12.9.2 正规的版本控制系统 308
12.9.3 Subversion 309
12.9.4 Git 310
12.10 软件的本地化和配置 313
12.10.1 本地化的组织 313
12.10.2 测试 314
12.10.3 本地编译软件 314
12.10.4 发布本地软件 315
12.11 配置管理工具 315
12.11.1 cfengine:计算机免疫系统 316
12.11.2 LCFG:大规模配置系统 316
12.11.3 Template Tree 2:cfengine的帮手 316
12.11.4 DMTF/CIM:公共信息模型 317
12.12 通过NFS共享软件 317
12.12.1 软件包的名字空间 318
12.12.2 依赖关系的管理 318
12.12.3 封装脚本 319
12.13 推荐读物 319
12.14 习题 320第13章 驱动程序和内核 321
13.1 内核的适应性 322
13.2 驱动程序和设备文件 322
13.2.1 设备文件和设备号 323
13.2.2 创建设备文件 324
13.2.3 设备的命名约定 324
13.2.4 自定义内核和可加载模块 325
13.3 配置Linux内核 325
13.3.1 调整Linux内核参数 325
13.3.2 构造Linux内核 327
13.3.3 内核没问题就不要改它 327
13.3.4 配置内核选项 327
13.3.5 构建Linux内核的二进制文件 328
13.3.6 添加Linux设备驱动程序 329
13.4 配置Solaris内核 330
13.4.1 Solaris内核区 330
13.4.2 用/etc/system配置内核 331
13.4.3 添加一个Solaris设备驱动程序 332
13.4.4 调试Solaris的配置 332
13.5 配置HP-UX内核 333
13.6 管理AIX内核 334
13.6.1 ODM 334
13.6.2 内核调配 335
13.7 可加载内核模块 336
13.7.1 Linux的可加载内核模块 336
13.7.2 Solaris的可加载内核模块 337
13.8 Linux udev的意义和作用 338
13.8.1 Linux sysfs:设备对外的窗口 339
13.8.2 用udevadm浏览设备 339
13.8.3 构造规则和固定不变的名字 340
13.9 推荐读物 343
13.10 习题 343第二部分 网络管理技术 345第14章 TCP/IP网络 346
14.1 TCP/IP和Internet 346
14.1.1 Internet的运行管理 347
14.1.2 网络的标准和文献 347
14.2 连网技术概述 348
14.2.1 IPv4和IPv6 349
14.2.2 分组和封装 349
14.2.3 以太网组帧 350
14.2.4 最大传输单位(MTU) 350
14.3 分组地址 351
14.3.1 硬件(MAC)地址 351
14.3.2 IP地址 352
14.3.3 主机名“地址” 352
14.3.4 端口 352
14.3.5 地址类型 353
14.4 IP地址详解 353
14.4.1 IPv4地址分类 353
14.4.2 子网 354
14.4.3 计算子网的技巧和工具 355
14.4.4 CIDR:无类域间路由 356
14.4.5 地址分配 356
14.4.6 私用地址和NAT 357
14.4.7 IPv6地址 358
14.5 路由选择 359
14.5.1 路由表 360
14.5.2 ICMP重定向 361
14.6 ARP:地址解析协议 361
14.7 DHCP:动态主机配置协议 362
14.7.1 DHCP软件 363
14.7.2 DHCP的工作方式 363
14.7.3 ISC的DHCP服务器 363
14.8 安全问题 365
14.8.1 IP转发 365
14.8.2 ICMP重定向 365
14.8.3 源路由 365
14.8.4 广播ping和其他形式的定向广播 365
14.8.5 IP欺骗 366
14.8.6 基于主机的防火墙 366
14.8.7 虚拟私用网络 367
14.9 PPP:点对点协议 367
14.10 基本的网络配置 368
14.10.1 分配主机名和IP地址 368
14.10.2 ifconfig:配置网络接口 369
14.10.3 网络硬件参数 371
14.10.4 route:配置静态路由 371
14.10.5 配置DNS 373
14.11 特定于系统的网络配置 373
14.12 Linux连网 374
14.12.1 NetworkManager 374
14.12.2 Debian和Ubuntu的网络配置 375
14.12.3 SUSE的网络配置 375
14.12.4 Red Hat的网络配置 376
14.12.5 Linux的网络硬件配置选项 377
14.12.6 Linux的TCP/IP配置选项 378
14.12.7 有关安全的内核变量 380
14.12.8 Linux的NAT和包过滤 381
14.13 Solaris连网 381
14.13.1 基本网络配置 381
14.13.2 网络配置举例 383
14.13.3 DHCP的配置 384
14.13.4 ndd:调整TCP/IP和接口 384
14.13.5 安全 385
14.13.6 防火墙和过滤机制 386
14.13.7 NAT 386
14.13.8 Solaris连网的特别之处 387
14.14 HP-UX连网 387
14.14.1 基本网络配置 387
14.14.2 网络配置举例 388
14.14.3 DHCP的配置 389
14.14.4 动态的重新配置和调整 390
14.14.5 安全、防火墙、过滤和NAT 390
14.15 AIX连网 391
14.15.1 no:管理AIX的网络可配参数 392
14.16 推荐读物 393
14.17 习题 394第15章 路由选择 395
15.1 近观包转发 396
15.2 路由守护进程和路由协议 398
15.2.1 距离向量协议 398
15.2.2 链路状态协议 399
15.2.3 代价度量 399
15.2.4 内部协议和外部协议 400
15.3 路由协议巡礼 400
15.3.1 RIP和RIPng:路由信息协议 400
15.3.2 OSPF:开放最短路径优先 401
15.3.4 EIGRP:增强内部网关路由协议 401
15.3.5 IS-IS:ISO的“标准” 402
15.3.6 RDP和NDP 402
15.3.7 BGP:边界网关协议 402
15.4 路由策略的选择标准 402
15.5 路由守护进程 403
15.5.1 routed:过时的RIP实现 404
15.5.2 gated:第一代的多协议路由守护进程 404
15.5.3 Quagga:主流的路由守护进程 404
15.5.4 ramd:HP-UX的多协议路由系统 405
15.5.5 XORP:计算机里的路由器 405
15.5.6 各操作系统的特性 405
15.6 思科路由器 406
15.7 推荐读物 408
15.8 习题 409第16章 网络硬件 410
16.1 以太网:连网技术中的瑞士军刀 411
16.1.1 以太网的工作方式 412
16.1.2 以太网拓扑结构 412
16.1.3 无屏蔽双绞线 412
16.1.4 光纤 414
16.1.5 连接和扩展以太网 415
16.1.6 自动协商 416
16.1.7 以太网供电 416
16.1.8 巨大帧 417
16.2 无线:流动人士的LAN 417
16.2.1 无线网络的安全 418
16.2.2 无线交换机和轻量级AP 419
16.3 DSL和CM:最后一英里 419
16.4 网络测试和调试 420
16.5 建筑物布线 420
16.5.1 UTP电缆的选择 420
16.5.2 到办公室的连接 421
16.5.3 布线标准 421
16.6 网络设计问题 422
16.6.1 网络结构与建筑物结构 422
16.6.2 扩展 422
16.6.3 拥塞 423
16.6.4 维护和建档 423
16.7 管理问题 423
16.8 推荐的厂商 424
16.8.1 电缆和连接器 424
16.8.2 测试仪器 424
16.8.3 路由器/交换机 424
16.9 推荐读物 424
16.10 习题 425第17章 DNS:域名系统 426
17.1 谁需要DNS 427
17.1.1 管理DNS 427
17.2 DNS的工作原理 428
17.2.1 资源记录 428
17.2.2 授权 429
17.2.3 缓存和效率 430
17.2.4 多重响应 430
17.3 DNS速成 430
17.3.1 向DNS添加新机器 431
17.3.2 配置DNS客户机 433
17.4 域名服务器 435
17.4.1 权威与仅缓存服务器 435
17.4.2 递归和非递归服务器 436
17.5 DNS名字空间 437
17.5.1 注册二级域名 438
17.5.2 创建子域 438
17.6 设计DNS环境 438
17.6.1 名字空间管理 439
17.6.2 权威服务器 439
17.6.3 缓存服务器 440
17.6.4 硬件要求 440
17.6.5 安全 441
17.6.6 总结 441
17.7 DNS的新特性 442
17.8 DNS数据库 443
17.8.1 区文件中的命令 444
17.8.2 资源记录 444
17.8.3 SOA记录 447
17.8.4 NS记录 448
17.8.5 A记录 449
17.8.6 PTR记录 449
17.8.7 MX记录 450
17.8.8 CNAME记录 451
17.8.9 巧用CNAME 452
17.8.10 SRV记录 453
17.8.11 TXT记录 454
17.8.12 IPv6资源记录 454
17.8.13 SPF记录 455
17.8.14 DKIM和ADSP记录 457
17.8.15 SSHFP资源记录 459
17.8.16 粘合记录:区之间的链接 460
17.9 BIND软件 461
17.9.1 判定版本 461
17.9.2 BIND的组成 463
17.9.3 配置文件 463
17.9.4 include语句 465
17.9.5 options语句 465
17.9.6 acl语句 470
17.9.7 (TSIG)key语句 471
17.9.8 trusted-keys语句 471
17.9.9 server语句 471
17.9.10 masters语句 472
17.9.11 logging语句 472
17.9.12 statistics-channels语句 473
17.9.13 zone语句 473
17.9.14 rndc的controls语句 475
17.9.15 分离式DNS和view语句 476
17.10 BIND配置举例 478
17.10.1 localhost区 478
17.10.2 一家小型的安全公司 479
17.10.3 ISC 481
17.11 NSD/Unbound软件 482
17.11.1 安装和配置NSD 483
17.11.2 运行nsd 488
17.11.3 安装和配置Unbound 488
17.12 更新区文件 494
17.12.1 区传送 494
17.12.2 BIND的动态更新 495
17.13 安全问题 497
17.13.1 再谈BIND访问控制列表 498
17.13.2 开放的解析器 499
17.13.3 在监管环境下运行 499
17.13.4 使用TSIG和TKEY保障服务器与服务器之间通信的安全 500
17.13.5 为BIND设置TSIG 500
17.13.6 NSD里的TSIG 502
17.13.7 DNSSEC 502
17.13.8 DNSSEC策略 505
17.13.9 DNSSEC资源记录 505
17.13.10 启用DNSSEC 506
17.13.11 生成密钥对 507
17.13.12 区签名 509
17.13.13 DNSSEC信任链 510
17.13.14 DLV:域旁路认证 511
17.13.15 DNSSEC密钥延期 512
17.13.16 DNSSEC工具 513
17.13.17 调试DNSSEC 515
17.14 微软和DNS 516
17.15 测试和调试 516
17.15.1 BIND的日志功能 516
17.15.2 NSD/Unbound的日志功能 521
17.15.3 域名服务器的控制程序 521
17.15.4 域名服务器统计 523
17.15.5 用dig进行调试 524
17.15.6 残缺授权 525
17.15.7 其他DNS检查工具 526
17.15.8 性能问题 527
17.16 各操作系统的特定信息 527
17.16.1 Linux 528
17.16.2 Solaris 530
17.16.3 HP-UX 530
17.16.4 AIX 531
17.17 推荐读物 532
17.17.1 邮递列表和新闻组 532
17.17.2 书籍和其他文档 532
17.17.3 网上资源 533
17.17.4 RFC 533
17.18 习题 534第18章 网络文件系统 535
18.1 NFS概述 535
18.1.1 状态问题 535
18.1.2 性能问题 536
18.1.3 安全 536
18.2 NFS的方法 536
18.2.1 NFS协议的版本和历史 537
18.2.2 传输协议 537
18.2.3 状态 537
18.2.4 文件系统导出 538
18.2.5 文件上锁机制 538
18.2.6 安全问题 539
18.2.7 NFSv4的标识映射 540
18.2.8 root访问与nobody账号 541
18.2.9 NFSv4的性能考虑 541
18.2.10 磁盘配额 541
18.3 服务器端NFS 542
18.3.1 share命令和dfstab文件(Solaris/HP-UX) 543
18.3.2 exportfs命令和exports文件(Linux/AIX) 544
18.3.3 在AIX上导出文件系统 544
18.3.4 在Linux上导出文件系统 545
18.3.5 nfsd:提供文件服务 547
18.4 客户端NFS 548
18.4.1 在启动时挂载远程文件系统 550
18.4.2 端口安全限制 550
18.5 NFSv4的标识映射 551
18.6 nfsstat:转储NFS统计信息 551
18.7 专用NFS文件服务器 552
18.8 自动挂载 552
18.8.1 间接映射文件 553
18.8.2 直接映射文件 554
18.8.3 主控映射文件 554
18.8.4 可执行的映射文件 554
18.8.5 自动挂载的可见性 555
18.8.6 重复的文件系统和自动挂载 555
18.8.7 自动的automount(除Linux之外其他系统上的NFSv3) 556
18.8.8 Linux的特定信息 556
18.9 推荐读物 557
18.10 习题 557第19章 共享系统文件 558
19.1 共享什么 559
19.2 把文件复制到各处 559
19.2.1 NFS的选项 559
19.2.2 “推”系统和“拉”系统 560
19.2.3 rdist:推文件 560
19.2.4 rsync:更安全地传输文件 562
19.2.5 拉文件 564
19.3 LDAP:轻量级目录访问协议 564
19.3.1 LDAP数据的结构 565
19.3.2 LDAP的特点 566
19.3.3 LDAP的文档和规范 567
19.3.4 OpenLDAP:传统的开源LDAP 567
19.3.5 389 Directory Server:另一种开源LDAP服务器 568
19.3.6 用LDAP代替/etc/passwd和/etc/group 568
19.3.7 LDAP查询 569
19.3.8 LDAP和安全 570
19.4 NIS:网络信息服务 570
19.4.1 NIS模型 571
19.4.2 理解NIS的工作方式 571
19.4.3 NIS的安全 572
19.5 确定管理信息源的优先级 573
19.5.1 nscd:缓存查找的结果 574
19.6 推荐读物 574
19.7 习题 574第20章 电子邮件 576
20.1 邮件系统 577
20.1.1 用户代理 577
20.1.2 提交代理 578
20.1.3 传输代理 579
20.1.4 本地投递代理 579
20.1.5 消息库 579
20.1.6 访问代理 580
20.1.7 内容太多,时间太少 580
20.2 剖析邮件消息 580
20.2.1 阅读邮件信头 581
20.3 SMTP协议 582
20.3.1 EHLO 583
20.3.2 SMTP出错代码 583
20.3.3 SMTP身份验证 584
20.4 邮件系统的设计 585
20.4.1 使用邮件服务器 585
20.5 邮件别名 587
20.5.1 从文件中获取别名 589
20.5.2 发邮件给文件 589
20.5.3 发邮件给程序 590
20.5.4 别名举例 590
20.5.5 散列的别名数据库 590
20.5.6 邮递列表和实现清单的软件 590
20.5.7 维护邮递列表的软件包 591
20.6 内容扫描:垃圾邮件和恶意软件 591
20.6.1 垃圾邮件 592
20.6.2 伪造邮件 592
20.6.3 消息隐私 593
20.6.4 垃圾邮件过滤 593
20.6.5 何时过滤 593
20.6.6 灰名单技术/DCC 594
20.6.7 SpamAssassin 594
20.6.8 黑名单 595
20.6.9 白名单 595
20.6.10 邮件过滤库 596
20.6.11 SPF和Sender ID 596
20.6.12 DomainKeys、DKIM和ADSP 596
20.6.13 MTA特有的反垃圾邮件功能 597
20.6.14 MailScanner 597
20.6.15 amavisd-new 597
20.6.16 测试MTA的扫描效力 600
20.7 电子邮件配置 600
20.8 sendmail 601
20.8.1 开关文件 602
20.8.2 运行模式 603
20.8.3 邮件队列 604
20.9 配置sendmail 604
20.9.1 m4预处理器 605
20.9.2 sendmail的配置 605
20.9.3 从.mc样板文件构建配置文件 606
20.10 sendmail基本配置原语 607
20.10.1 表和数据库 607
20.10.2 通用宏和功能 608
20.10.3 客户端选项 612
20.10.4 配置选项 612
20.10.5 sendmail中处理垃圾邮件的功能 614
20.10.6 sendmail中的milter配置 616
20.10.7 amavisd和sendmail的连接 617
20.11 安全与sendmail 618
20.11.1 所有权 618
20.11.2 权限 619
20.11.3 向文件和程序更安全地发邮件 620
20.11.4 隐私选项 620
20.11.5 运行一个chroot过的sendmail(真正严格的要求) 621
20.11.6 拒绝服务攻击 622
20.11.7 SASL:简单的身份验证和安全层 622
20.11.8 TLS:传输层安全 622
20.12 sendmail的性能 623
20.12.1 投递方式 623
20.12.2 队列分组和信封分割 623
20.12.3 队列运行器 623
20.12.4 控制平均负载 624
20.12.5 队列中无法投递的消息 624
20.12.6 内核调优 625
20.13 sendmail测试和调试 626
20.13.1 队列监视 626
20.13.2 日志机制 627
20.14 Exim 627
20.14.1 安装Exim 628
20.14.2 Exim的启动脚本 629
20.14.3 Exim的工具 630
20.14.4 Exim的配置语言 631
20.14.5 Exim的配置文件 631
20.14.6 全局的配置选项 632
20.14.7 ACL 633
20.14.8 ACL内容扫描 636
20.14.9 身份验证器 637
20.14.10 路由 638
20.14.11 传输 640
20.14.12 重试配置 641
20.14.13 重写配置 641
20.14.14 本地扫描功能 642
20.14.15 amavisd和Exim的连接 642
20.14.16 日志机制 642
20.14.17 调试机制 643
20.15 Postfix邮件系统 644
20.15.1 Postfix的体系结构 644
20.15.2 安全 645
20.15.3 Postfix命令和文档 645
20.15.4 配置Postfix 646
20.15.5 虚拟域 649
20.15.6 访问控制 651
20.15.7 反垃圾邮件和病毒 653
20.15.8 用amavisd做内容过滤 654
20.15.9 调试 656
20.16 DKIM配置 657
20.16.1 DKIM:域密钥身份识别邮件 657
20.16.2 DKIM邮件过滤 658
20.16.3 在amavisd-new中配置DKIM 660
20.16.4 sendmail中的DKIM 660
20.16.5 Exim中的DKIM 661
20.16.6 Postfix中的DKIM 663
20.17 综合的电子邮件解决方案 663
20.18 推荐读物 664
20.19 习题 665第21章 网络管理和调试 668
21.1 网络故障的检测 669
21.2 ping:检查主机是否正常 670
21.3 SmokePing:ping的累计统计 671
21.4 traceroute:跟踪IP包 672
21.5 netstat:获得网络统计信息 674
21.5.1 检查接口的配置信息 674
21.5.2 监视网络连接的状态 676
21.5.3 标识正在监听的网络服务 677
21.5.4 检查路由表 677
21.5.5 查看各种网络协议运行的统计信息 678
21.6 检查工作接口的活动 679
21.7 包嗅探器 680
21.7.1 tcpdump:业界标准的包嗅探器 680
21.7.2 Wireshark和TShark:增强型的tcpdump 681
21.8 ICSI Netslyzr 682
21.9 网络管理协议 683
21.10 SNMP:简单网络管理协议 684
21.10.1 SNMP的组织结构 684
21.10.2 SNMP协议的操作 685
21.10.3 RMON:远程监视MIB 686
21.11 NET-SNMP代理程序 686
21.12 网络管理应用程序 687
21.12.1 NET-SNMP工具 687
21.12.2 SNMP数据的采集和绘图 688
21.12.3 Nagios:基于事件的SNMP和服务监视工具 689
21.12.4 终极网络监测软件包:仍在寻觅 690
21.12.5 商业管理平台 690
21.13 NetFlow:面向连接的监视 691
21.13.1 用nfdump和Nfsen监测NetFlow数据 691
21.13.2 在思科路由器上配置NetFlow 693
21.14 推荐读物 693
21.15 习题 694第22章 安全 696
22.1 UNIX安全吗? 697
22.2 安全性是如何受损害的 698
22.2.1 社交工程 698
22.2.2 软件漏洞 698
22.2.3 配置错误 699
22.3 安全的技巧和思想 699
22.3.1 补丁 700
22.3.2 不必要的服务 700
22.3.3 远程的事件日志 701
22.3.4 备份 701
22.3.5 病毒和蠕虫 701
22.3.6 特洛伊木马 702
22.3.7 隐匿木马 702
22.3.8 包过滤 702
22.3.9 口令 702
22.3.10 警惕性 703
22.3.11 普遍原则 703
22.4 口令和用户账号 703
22.4.1 口令时限 704
22.4.2 组登录名和共享登录名 704
22.4.3 用户的shell 704
22.4.4 获得root权限的办法 704
22.5 PAM:验证奇才 705
22.5.1 系统对PAM的支持 705
22.5.2 配置PAM 706
22.5.3 Linux上详细配置举例 708
22.6 setuid程序 709
22.7 有效使用chroot 709
22.8 加强安全的工具 710
22.8.1 nmap:网络端口扫描程序 710
22.8.2 Nessus:下一代的网络扫描程序 711
22.8.3 John the Ripper:找出不安全的口令 712
22.8.4 hosts_acces:主机访问控制 712
22.8.5 Bro:可编程的网络入侵检测系统 713
22.8.6 Snort:流行的网络入侵检测系统 713
22.8.7 OSSEC:基于主机的入侵检测 714
22.9 强制访问控制(MAC) 716
22.9.1 SELinux 717
22.10 加密的安全工具 718
22.10.1 Kerberos:用于网络安全的统一方法 718
22.10.2 PGP:很好的私密性 719
22.10.3 SSH:安全的shell 719
22.10.4 Stunnel 722
22.11 防火墙 723
22.11.1 包过滤防火墙 724
22.11.2 如何过滤服务 724
22.11.3 状态检查防火墙 725
22.11.4 防火墙保险吗 725
22.12 Linux的防火墙功能 725
22.12.1 规则、链和表 726
22.12.2 规则目标 726
22.12.3 设置iptables防火墙 726
22.12.4 一个完整的例子 727
22.13 UNIX系统的IPFilter 729
22.14 VPN 731
22.14.1 IPSec隧道 731
22.14.2 VPN就够了吗 732
22.15 认证和标准 732
22.15.1 认证 733
22.15.2 安全标准 733
22.16 安全信息的来源 735
22.16.1 CERT:卡耐基梅隆大学的注册服务商标 735
22.16.2 SecurityFocus.com网站和BugTraq邮递列表 735
22.16.3 施耐德的安全博客 735
22.16.4 SANS:系统管理、网络和安全协会 736
22.16.5 厂商特有的安全资源 736
22.16.6 其他邮递列表和网站 737
22.17 如何对付站点攻击 737
22.18 推荐读物 738
22.19 习题 739第23章 Web主机托管 741
23.1 Web主机托管的基本知识 741
23.1.1 Web上资源的位置 742
23.1.2 统一资源定位符 742
23.1.3 HTTP工作原理 743
23.1.4 即时生成内容 743
23.1.5 应用服务器 744
23.1.6 负载均衡 745
23.2 HTTP服务程序的安装 746
23.2.1 选择服务器软件 746
23.2.2 安装Apache 747
23.2.3 配置Apache 748
23.2.4 运行Apache 749
23.2.5 分析日志文件 749
23.2.6 高性能主机托管的静态内容优化 749
23.3 虚拟接口 750
23.3.1 使用基于名字的虚拟主机 750
23.3.2 配置虚拟接口 750
23.3.3 告诉Apache有关虚拟接口的信息 753
23.4 SSL 753
23.4.1 产生签发证书的请求 754
23.4.2 配置Apache使用SSL 755
23.5 缓存和代理服务程序 755
23.5.1 Squid缓存和代理服务器 756
23.5.2 设置Squid 756
23.5.3 Apache的反向代理 757
23.6 超越上限 758
23.6.1 云计算 758
23.6.2 主机代管 758
23.6.3 内容分发网络 759
23.7 习题 759第三部分 其他管理技术 761第24章 虚拟化技术 762
24.1 虚拟技术的种类 763
24.1.1 全虚拟化 763
24.1.2 半虚拟化 764
24.1.3 操作系统级虚拟化 764
24.1.4 原生虚拟化 765
24.1.5 云计算 765
24.1.6 动态迁移 766
24.1.7 虚拟化技术比较 766
24.2 虚拟化技术的好处 766
24.3 实施方案 767
24.4 Linux虚拟化 768
24.4.1 Xen简介 768
24.4.2 Xen基础知识 768
24.4.3 用virt-install安装Xen的guest系统 769
24.4.4 Xen动态迁移 770
24.4.5 KVM 771
24.4.6 KVM的安装和使用 772
24.5 Solaris的zone和container 773
24.6 AIX的WPAR 776
24.7 HP-UX的IVM 777
24.7.1 创建和安装虚拟机 777
24.8 VMWARE 778
24.9 亚马逊的AWS 779
24.10 推荐读物 782
24.11 习题 782第25章 X窗口系统 784
25.1 X显示管理器 786
25.2 运行一个X应用程序 787
25.2.1 环境变量DISPLAY 787
25.2.2 客户机身份验证 788
25.2.3 用SSH转发X连接 789
25.3 配置X服务器 790
25.3.1 Device段 791
25.3.2 Monitor段 792
25.3.3 Screen段 792
25.3.4 InputDevice段 793
25.3.5 ServerLayout段 794
25.3.6 xrandr:X服务器的配置工具 794
25.3.7 内核模式设定 795
25.4 故障排查和调试 795
25.4.1 X的特殊键盘组合 795
25.4.2 X服务器出问题 796
25.5 桌面环境简述 797
25.5.1 KDE 798
25.5.2 GNOME 798
25.5.3 KDE和GNOME谁更好 799
25.6 推荐读物 799
25.7 习题 799第26章 打印 800
26.1 打印系统的体系结构 801
26.1.1 主要的打印系统 801
26.1.2 打印 801
26.2 CUPS的打印 802
26.2.1 打印系统的界面 802
26.2.2 打印队列 803
26.2.3 多台打印机和打印队列 803
26.2.4 打印机实例 803
26.2.5 网络打印 804
26.2.6 过滤器 804
26.2.7 CUPS服务器的管理 805
26.2.8 设置网络打印服务器 806
26.2.9 自动配置打印机 806
26.2.10 配置网络打印机 807
26.2.11 打印机的配置举例 807
26.2.12 设置打印机的类 807
26.2.13 关闭服务 808
26.2.14 其他配置工作 808
26.3 桌面打印环境 809
26.3.1 kprinter:打印文档 810
26.3.2 Konqueror和打印 810
26.4 SystemⅤ的打印 811
26.4.1 概述 811
26.4.2 打印目的地及打印类 812
26.4.3 lp简述 812
26.4.4 lpsched与lpshut:启动和停止打印 812
26.4.5 lpadmin:配置打印环境 813
26.4.6 lpadmin举例 815
26.4.7 lpstat:获取状态信息 815
26.4.8 cancel:删除打印作业 816
26.4.9 accept和reject:控制假脱机处理 816
26.4.10 enable和disable:控制打印 816
26.4.11 lpmove:转移作业 817
26.4.12 接口程序 817
26.4.13 lp系统混乱状况的处理方法 818
26.5 BSD和AIX的打印 818
26.5.1 BSD打印系统的体系结构概述 818
26.5.2 控制打印环境 819
26.5.3 lpd:假脱机打印程序 820
26.5.4 lpr:提交打印作业 820
26.5.5 lpq:查看打印队列 820
26.5.6 lprm:删除打印作业 820
26.5.7 lpc:管理性修改 821
26.5.8 /etc/printcap文件 823
26.5.9 printcap变量 823
26.6 漫长和奇特的历程 826
26.6.1 打印的历史和打印系统的出现 826
26.6.2 打印机的多样性 827
26.7 常用的打印软件 828
26.8 打印机的语言 829
26.8.1 PostScript 829
26.8.2 PCL 829
26.8.3 PDF 830
26.8.4 XPS 830
26.8.5 PJL 830
26.8.6 打印机驱动程序及其对PDL的处理 831
26.9 PPD文件 832
26.10 纸型 833
26.11 实际使用打印机的问题 834
26.11.1 打印机的选择 834
26.11.2 GDI打印机 834
26.11.3 双面打印 835
26.11.4 其他打印机配件 835
26.11.5 串口和并口打印机 835
26.11.6 网络打印机 836
26.11.7 给打印机的其他建议 836
26.12 故障排查的技巧 838
26.12.1 重启打印守护进程 838
26.12.2 日志 839
26.12.3 直接打印的问题 839
26.12.4 网络打印的问题 839
26.12.5 发行版本特有的问题 840
26.13 推荐读物 840
26.14 习题 841第27章 数据中心基础 842
27.1 数据中心的可靠性级别 843
27.2 冷却 844
27.2.1 电子设备 844
27.2.2 照明设备 845
27.2.3 操作人员 845
27.2.4 总的热负荷 845
27.2.5 冷热通道 845
27.2.6 湿度 846
27.2.7 环境监视 847
27.3 供电 847
27.3.1 机架的供电要求 847
27.3.2 kVA和kW 848
27.3.3 远程控制 849
27.4 机架 849
27.5 工具 849
27.6 推荐读物 850
27.7 习题 850第28章 绿色IT 852
28.1 绿色IT的兴起 853
28.2 绿色IT的生态金字塔 854
28.3 绿色IT策略:数据中心 854
28.3.1 应用合并 855
28.3.2 服务器合并 856
28.3.3 SAN存储 856
28.3.4 服务器虚拟化 856
28.3.5 随用随开的服务器 857
28.3.6 细粒度使用和容量规划 857
28.3.7 优化能源的服务器配置 857
28.3.8 云计算 858
28.3.9 免费冷却 859
28.3.10 数据中心的高效冷却 859
28.3.11 停运时的降级模式 859
28.3.12 延长设备寿命 859
28.3.13 数据中心的较高温度 860
28.3.14 低功率设备 860
28.4 绿色IT策略:用户空间 860
28.5 绿色IT的朋友 862
28.6 习题 862第29章 性能分析 863
29.1 做什么可以提高性能 864
29.2 影响性能的因素 865
29.3 如何分析性能问题 866
29.4 系统性能检查 867
29.4.1 盘点硬件 867
29.4.2 收集性能数据 869
29.4.3 CPU使用情况分析 870
29.4.4 系统如何管理内存 871
29.4.5 内存使用情况分析 873
29.4.6 磁盘I/O分析 874
29.4.7 xdd:分析磁盘子系统的性能 876
29.4.8 sar:连续采集和报告统计信息 876
29.4.9 nmon和nmon_analyser:AIX上的监视工具 876
29.4.10 选择Linux的I/O调度器 877
29.4.11 oprofile:详细剖析Linux系统 877
29.5 求助!系统为何越来越慢 877
29.6 推荐读物 879
29.7 习题 879第30章 同Windows协作 881
30.1 从Windows登录到UNIX系统 881
30.2 远程桌面访问 882
30.2.1 在Windows计算机上运行X服务器 882
30.2.2 VNC:虚拟网络计算 883
30.2.3 Windows RDP:远程桌面协议 883
30.3 运行Windows和类似Windows的应用 884
30.3.1 双重引导,为何不该用 884
30.3.2 微软Office的替代软件 885
30.4 在Windows上使用命令行工具 885
30.5 Windows遵守电子邮件和Web标准 885
30.6 通过Samba和CIFS共享文件 886
30.6.1 Samba:UNIX的CIFS服务器 886
30.6.2 Samba的安装 887
30.6.3 文件名编码 888
30.6.4 用户身份验证 888
30.6.5 基本的文件共享 889
30.6.6 用户组共享 889
30.6.7 用微软的DFS做透明重定向 890
30.6.8 smbclient:简单的CIFS客户端 891
30.6.9 Linux的客户端对CIFS的支持 891
30.7 用Samba共享打印机 892
30.7.1 从Windows安装打印机驱动程序 893
30.7.2 从命令行安装打印机驱动程序 894
30.8 调试Samba 894
30.9 Active Directory身份验证 896
30.9.1 准备好集成AD 896
30.9.2 配置Kerberos 897
30.9.3 Samba作为Active Directory的域成员 898
30.9.4 配置PAM 899
30.9.5 winbind的备选方案 900
30.10 推荐读物 900
30.11 习题 901第31章 串行设备和串行终端 902
31.1 RS-232C标准 903
31.2 备选连接器 905
31.2.1 DB-9连接器 905
31.2.2 RJ-45连接器 905
31.3 硬载波和软载波 906
31.4 硬流控 906
31.5 串行设备文件 907
31.6 setserial:把串口参数通知给驱动程序 908
31.7 伪终端 909
31.8 硬件终端的配置 909
31.8.1 登录过程 909
31.8.2 /etc/ttytype文件 910
31.8.3 /etc/gettytab文件 911
31.8.4 /etc/gettydefs文件 911
31.8.5 /etc/inittab文件 911
31.8.6 Linux上的getty配置 913
31.8.7 Ubuntu的Upstart 913
31.8.8 Solaris和sacadm 914
31.9 特殊字符和终端驱动程序 914
31.10 stty:设置终端的选项 915
31.11 tset:自动设置选项 916
31.12 僵住的终端 916
31.13 调试串行线 917
31.14 连接到串行设备的控制台 917
31.15 习题 918第32章 管理、政策与政治 919
32.1 IT的目标 919
32.1.1 预算和支出 920
32.1.2 IT政策 920
32.1.3 SLA 921
32.2 IT职能机构的组成 924
32.2.1 基础:工单和任务管理系统 924
32.2.2 工单系统的常见功能 925
32.2.3 工单的所有权 925
32.2.4 用户对工单系统的接受程度 926
32.2.5 工单系统举例 926
32.2.6 工单分派 927
32.2.7 IT内部的技能培养 927
32.2.8 时间管理 928
32.3 咨询组 928
32.3.1 服务范围 928
32.3.2 咨询可用性 929
32.3.3 咨询上瘾 929
32.4 企业构架师 929
32.4.1 过程可再现 929
32.4.2 留下记录 930
32.4.3 认可文档的重要性 930
32.4.4 定制和编程 930
32.4.5 保持系统干净整洁 930
32.5 运行组 930
32.5.1 瞄准最短停机时间 931
32.5.2 依靠文档 931
32.5.3 重用或淘汰老硬件 931
32.5.4 维护本地文档 932
32.5.5 保持环境独立 934
32.5.6 自动化 934
32.6 管理的职能 935
32.6.1 领导 935
32.6.2 人事管理 936
32.6.3 聘用 936
32.6.4 解聘 937
32.6.5 人事管理的机制 937
32.6.6 质量控制 937
32.6.7 管理但别管闲事 938
32.6.8 社区关系 938
32.6.9 管理上级 939
32.6.10 采购 939
32.6.11 化解矛盾 940
32.7 政策和规程 941
32.7.1 政策和规程之间的区别 941
32.7.2 政策的最佳实践 942
32.7.3 规程 942
32.8 灾难恢复 943
32.8.1 风险评估 943
32.8.2 灾难管理 944
32.8.3 处理灾难的人员准备 945
32.8.4 电源和HVAC 945
32.8.5 互联网连接的冗余性 946
32.8.6 安全事件 946
32.9 合规:规章与标准 947
32.9.1 ITIL:信息技术基础设施库 949
32.9.2 NIST:国家标准和技术研究所 949
32.10 法律问题(美国) 949
32.10.1 隐私 950
32.10.2 落实政策 950
32.10.3 控制=义务 951
32.10.4 软件许可证 951
32.11 组织、会议及其他资源 952
32.12 推荐读物 953
32.13 习题 953附录A 系统管理简史 955
附录B 为AIX辩护 962跋 965
1.1 系统管理员的基本任务 3
1.1.1 账号管理 3
1.1.2 增删硬件 3
1.1.3 执行备份 3
1.1.4 安装和更新软件 3
1.1.5 监视系统 4
1.1.6 故障诊断 4
1.1.7 维护本地文档 4
1.1.8 时刻警惕系统安全 4
1.1.9 救火 4
1.2 读者的知识背景 4
1.3 UNIX和Linux之间的摩擦 5
1.4 Linux的发行版本 7
1.5 本书使用的示例系统 8
1.5.1 用作示例的Linux发行版本 8
1.5.2 用作示例的UNIX发行版本 9
1.6 特定于系统的管理工具 10
1.7 表示法和印刷约定 10
1.8 单位 11
1.9 手册页和其他联机文档 12
1.9.1 手册页的组织 12
1.9.2 man:读取手册页 13
1.9.3 手册页的保存 14
1.9.4 GNUTexinfo 14
1.10 其他的权威文档 14
1.10.1 针对系统的专门指南 14
1.10.2 针对软件包的专门文档 15
1.10.3 书籍 15
1.10.4 RFC和其他Internet文档 16
1.10.5 LDP 16
1.11 其他的信息资源 16
1.12 查找和安装软件的途径 17
1.12.1 判断软件是否已经安装 18
1.12.2 增加新软件 18
1.12.3 从源代码编译软件 20
1.13 重压下的系统管理员 21
1.14 推荐读物 21
1.15 习题 23第2章 脚本和shell 24
2.1 shell的基础知识 25
2.1.1 编辑命令 25
2.1.2 管道和重定向 25
2.1.3 变量和引用 27
2.1.4 常见的过滤命令 27
2.2 bash脚本编程 30
2.2.1 从命令到脚本 31
2.2.2 输入和输出 32
2.2.3 命令行参数和函数 33
2.2.4 变量的作用域 34
2.2.5 控制流程 35
2.2.6 循环 36
2.2.7 数组和算术运算 38
2.3 正则表达式 39
2.3.1 匹配过程 40
2.3.2 普通字符 40
2.3.3 特殊字符 40
2.3.4 正则表达式的例子 41
2.3.5 捕获 42
2.3.6 贪心、懒惰和灾难性的回溯 43
2.4 Perl编程 44
2.4.1 变量和数组 45
2.4.2 数组和字符串文字 45
2.4.3 函数调用 46
2.4.4 表达式里的类型转换 46
2.4.5 字符串表达式和变量 46
2.4.6 哈希 46
2.4.7 引用和自动生成 48
2.4.8 Perl语言里的正则表达式 48
2.4.9 输入和输出 49
2.4.10 控制流程 50
2.4.11 接受和确认输入 51
2.4.12 Perl用作过滤器 52
2.4.13 Perl的附加模块 53
2.5 Python脚本编程 54
2.5.1 Python快速入门 54
2.5.2 对象、字符串、数、列表、字典、元组和文件 56
2.5.3 确认输入的例子 57
2.5.4 循环 58
2.6 脚本编程的最佳实践 59
2.7 推荐读物 60
Shell基础知识和bash脚本编程 60
正则表达式 60
Perl脚本编程 60
Python脚本编程 61
2.8 习题 61第3章 引导和关机 62
3.1 引导 62
3.1.1 恢复模式下引导进入shell 63
3.1.2 引导过程的步骤 63
3.1.3 初始化内核 63
3.1.4 配置硬件 64
3.1.5 创建内核进程 64
3.1.6 操作员干预(仅限恢复模式) 64
3.1.7 执行启动脚本 65
3.1.8 引导进程完成 65
3.2 引导PC 65
3.3 GRUB:全面统一的引导加载程序 66
3.3.1 内核选项 67
3.3.2 多重引导 68
3.4 引导进入单用户模式 68
3.4.1 用GRUB引导单用户模式 68
3.4.2 SPARC上的单用户模式 69
3.4.3 HP-UX的单用户模式 69
3.4.4 AIX的单用户模式 70
3.5 启动脚本 70
3.5.1 init及其运行级 70
3.5.2 启动脚本概述 71
3.5.3 Red Hat启动脚本 73
3.5.4 SUSE的启动脚本 74
3.5.5 Ubuntu的启动脚本和Upstart守护进程 75
3.5.6 HP-UX的启动脚本 75
3.5.7 AIX的启动 76
3.6 引导Solaris 77
3.6.1 Solaris的SMF 77
3.6.2 崭新的世界:用SMF引导系统 79
3.7 重新引导和关机 79
3.7.1 shutdown:停止系统的妥善方式 79
3.7.2 halt和reboot:关闭系统的更简单方式 80
3.8 习题 80第4章 访问控制和超级权限 82
4.1 传统的UNIX访问控制 82
4.1.1 文件系统的访问控制 83
4.1.2 进程的所有权 83
4.1.3 root账号 84
4.1.4 setuid和setgid执行方式 84
4.2 现代的访问控制 85
4.2.1 基于角色的访问控制 85
4.2.2 SELinux:增强安全性的Linux 86
4.2.3 POSIX能力(Linux) 86
4.2.4 PAM:可插入式身份验证模块 87
4.2.5 Kerberos:第三方的加密验证 87
4.2.6 访问控制列表 87
4.3 实际中的访问控制 87
4.3.1 选择root的口令 88
4.3.2 登录进入root账号 89
4.3.3 su:替换用户身份 89
4.3.4 sudo:受限的su 89
4.3.5 口令保险柜和口令代管 92
4.4 root之外的其他伪用户 92
4.5 习题 93第5章 进程控制 94
5.1 进程的组成部分 94
5.1.1 PID:进程的ID号 95
5.1.2 PPID:父PID 95
5.1.3 UID和EUID:真实的和有效的用户ID 95
5.1.4 GID和EGID:真实的和有效的组ID 96
5.1.5 谦让度 96
5.1.6 控制终端 96
5.2 进程的生命周期 96
5.3 信号 97
5.4 kill: 发送信号 99
5.5 进程的状态 100
5.6 nice和renice:影响调度优先级 101
5.7 ps:监视进程 102
5.8 用top、prstat和topas动态监视进程 105
5.9 /proc文件系统 105
5.10 strace、truss和tusc:追踪信号和系统调用 107
5.11 失控进程 108
5.12 推荐读物 108
5.13 习题 109第6章 文件系统 110
6.1 路径名称 111
6.1.1 绝对路径和相对路径 111
6.1.2 文件名中的空白 112
6.2 挂载和卸载文件系统 112
6.3 文件树的组织 114
6.4 文件类型 116
6.4.1 普通文件 117
6.4.2 目录 117
6.4.3 字符设备文件和块设备文件 118
6.4.4 本地域套接口 118
6.4.5 有名管道 119
6.4.6 符号链接 119
6.5 文件属性 119
6.5.1 权限位 120
6.5.2 setuid和setgid位 120
6.5.3 粘附位 121
6.5.4 ls:列出和查看文件 121
6.5.5 chmod:改变权限 122
6.5.6 chown和chgrp:改变归属关系和组 123
6.5.7 umask:分配默认的权限 124
6.5.8 Linux上的额外标志 124
6.6 访问控制列表 125
6.6.1 UNIX ACL简史 126
6.6.2 ACL的实现 126
6.6.3 系统支持的ACL 127
6.6.4 POSIX的ACL 127
6.6.5 NFSv4的ACL 130
6.7 习题 134第7章 添加新用户 136
7.1 /etc/passwd文件 137
7.1.1 登录名 138
7.1.2 加密的口令 139
7.1.3 UID号 140
7.1.4 默认的GID号 141
7.1.5 GECOS字段 141
7.1.6 主目录 142
7.1.7 登录shell 142
7.2 /etc/shadow和/etc/security/passwd文件 142
7.3 /etc/group文件 145
7.4 添加用户:基本步骤 146
7.4.1 编辑passwd和group文件 146
7.4.2 设置口令 147
7.4.3 创建主目录并安装启动文件 147
7.4.4 设置权限和所属关系 148
7.4.5 设置邮件主目录 148
7.4.6 配置角色和管理特权 148
7.4.7 收尾步骤 148
7.5 用useradd添加用户 149
7.5.1 Ubuntu上的useradd 150
7.5.2 SUSE上的useradd 150
7.5.3 Red Hat上的useradd 151
7.5.4 Solaris上的useradd 151
7.5.5 HP-UX上的useradd 152
7.5.6 AIX的useradd 152
7.5.7 useradd举例 154
7.6 用newusers成批添加用户(Linux) 154
7.7 删除用户 155
7.8 禁止登录 156
7.9 用系统的专门工具管理用户 157
7.10 用PAM降低风险 157
7.11 集中管理账号 157
7.11.1 LDAP和Active Directory 158
7.11.2 单一登录系统 158
7.11.3 身份管理系统 158
7.12 推荐读物 159
7.13 习题 159第8章 存储 161
8.1 只想加一块硬盘! 161
8.1.1 Linux的做法 162
8.1.2 Solaris的做法 162
8.1.3 HP-UX的做法 163
8.1.4 AIX的做法 163
8.2 存储硬件 164
8.2.1 硬盘 164
8.2.2 固态盘 165
8.3 存储硬件接口 166
8.3.1 PATA接口 167
8.3.2 SATA接口 168
8.3.3 并行SCSI 168
8.3.4 串行SCSI 170
8.3.5 SCSI和SATA的比较 170
8.4 层层剖析:存储上的软件 171
8.5 硬盘的安装和底层管理 173
8.5.1 在硬件层面上的安装核实 173
8.5.2 磁盘设备文件 173
8.5.3 格式化和坏块管理 176
8.5.4 ATA安全擦除 176
8.5.5 hdparm:设置磁盘和接口参数(Linux) 177
8.5.6 使用SMART监视磁盘 179
8.6 磁盘分区 179
8.6.1 传统的分区方式 180
8.6.2 Windows的分区 181
8.6.3 GPT:GUID分区表 182
8.6.4 Linux的分区 183
8.6.5 Solaris的分区 183
8.6.6 HP-UX的分区 183
8.7 RAID:廉价磁盘冗余阵列 183
8.7.1 软硬RAID对比 184
8.7.2 RAID的级别 184
8.7.3 硬盘故障恢复 186
8.7.4 RAID 5的缺点 186
8.7.5 mdadm:Linux上的软RAID 187
8.8 逻辑卷管理 189
8.8.1 LVM的实现 190
8.8.2 Linux的逻辑卷管理 191
8.8.3 HP-UX的逻辑卷管理 194
8.8.4 AIX的逻辑卷管理 196
8.10 文件系统 197
8.9.1 Linux文件系统:ext家族的文件系统 197
8.9.2 HP-UX文件系统 198
8.9.3 AIX的JFS2文件系统 198
8.9.4 文件系统的术语 199
8.9.5 文件系统的多态性 199
8.9.6 mkfs:格式化文件系统 200
8.9.7 fsck:检查和修复文件系统 200
8.9.8 挂载文件系统 201
8.9.9 设置自动挂载 201
8.9.10 挂载USB设备 203
8.9.11 启用交换分区 204
8.10 ZFS:解决所有存储问题 204
8.10.1 ZFS体系结构 205
8.10.2 举例:Solaris磁盘分区 205
8.10.3 文件系统和属性 206
8.10.4 属性继承 207
8.10.5 每个用户一个文件系统 208
8.10.6 快照和克隆 208
8.10.7 原始卷 209
8.10.8 通过NFS、CIFS和iSCSI共享文件系统 209
8.10.9 存储池管理 210
8.11 存储区域网络 211
8.11.1 SAN网络 212
8.11.2 iSCSI:SCSI over IP 213
8.11.3 从iSCSI卷引导 214
8.11.4 iSCSI的厂商特性 214
8.12 习题 216第9章 周期性进程 218
9.1 cron:按时间表执行命令 218
9.2 crontab文件的格式 219
9.3 crontab管理 220
9.4 Linux及其Vixie-CRON的扩展 221
9.5 cron的常见用途 222
9.5.1 简单的提醒功能 222
9.5.2 清理文件系统 223
9.5.3 配置文件的网络分布 224
9.5.4 循环日志文件 224
9.6 习题 224第10章 备份 225
10.1 备份基本原理 226
10.1.1 从中心位置执行所有的备份 226
10.1.2 给备份介质加卷标 226
10.1.3 选择合理的备份间隔 226
10.1.4 仔细选择文件系统 227
10.1.5 在单一介质上做日常转储 227
10.1.6 异地保存介质 227
10.1.7 保护备份 228
10.1.8 备份期间限制活动 228
10.1.9 查验介质 228
10.1.10 发掘介质的寿命 229
10.1.11 为备份而设计数据 229
10.1.12 做最坏的准备 230
10.2 备份设备和介质 230
10.2.1 光盘:CD-R/RW、DVD±R/RW、DVD-RAM和蓝光 231
10.2.2 便携和移动硬盘 231
10.2.3 磁带概述 231
10.2.4 小型磁带机:8mm磁带和DDS/DAT 232
10.2.5 DLT和S-DLT 232
10.2.6 AIT和SAIT 232
10.2.7 VXA和VXA-X 233
10.2.8 LTO 233
10.2.9 自动选带机、自动换带机以及磁带库 233
10.2.10 硬盘 233
10.2.11 因特网和云备份服务 234
10.2.12 介质类型小结 234
10.2.13 设备选型 235
10.3 节省空间和时间与增量备份 235
10.3.1 简单的计划 236
10.3.2 适中的计划 236
10.4 用dump建立备份机制 236
10.4.1 转储文件系统 237
10.4.2 用restore从转储中恢复 239
10.4.3 恢复整个文件系统 241
10.4.4 恢复到新硬盘上 242
10.5 为系统升级而执行转储和恢复 242
10.6 使用其他存档程序 242
10.6.1 tar: 给文件打包 242
10.6.2 dd:处理位流 243
10.6.3 ZFS的备份 244
10.7 使用同一卷磁带上的多个文件 244
10.8 Bacula 245
10.8.1 Bacula的模型 246
10.8.2 设置Bacula 246
10.8.3 安装数据库和Bacula的守护进程 247
10.8.4 配置Bacula的守护进程 247
10.8.5 公共的配置段 248
10.8.6 bacular-dir.conf:配置控制文件 249
10.8.7 bacula-sd.conf:配置存储守护进程 252
10.8.8 bconsole.conf:配置控制台 253
10.8.9 安装和配置客户端的文件守护进程 253
10.8.10 启动Bacula的守护进程 253
10.8.11 向存储池添加介质 254
10.8.12 执行一次手工备份 254
10.8.13 执行一次恢复工作 254
10.8.14 给Windows客户机做备份 257
10.8.15 监视和调试Bacula的配置 257
10.8.16 Bacula的技巧和窍门 258
10.8.17Bacula的替代工具 258
10.9 商用备份产品 259
10.9.1 ADSM/TSM 259
10.9.2 VeritasNetBackup 259
10.9.3 EMCNetWorker 260
10.9.4 其他选择 260
10.10 推荐读物 260
10.11 习题 260第11章 系统日志与日志文件 262
11.1 日志文件的位置 263
11.1.1 不用管理的文件 264
11.1.2 厂商特有的文件 265
11.2 syslog:系统事件的日志程序 266
11.2.1 syslog的体系结构 266
11.2.2 配置syslogd 267
11.2.3 配置文件举例 269
11.2.4 调试syslog 271
11.2.5 syslog的其他替代方案 271
11.2.6 Linux内核和引导时刻日志 272
11.3 AIX:日志记录和出错处理 273
11.3.1 AIX的syslog配置 274
11.4 logrotate: 管理日志文件 275
11.5 分析日志文件 276
11.6 日志记录的策略 277
11.7 习题 278第12章 软件安装和管理 280
12.1 安装Linux和OpenSolaris 280
12.1.1 从网络引导PC 281
12.1.2 为Linux设置PXE 281
12.1.3 非PC的网络引导 282
12.1.4 Kickstart:RHEL的自动安装程序 282
12.1.5 AutoYaST:SUSE的自动安装工具 284
12.1.6 用Ubuntu的安装程序自动安装 285
12.2 安装Solaris 286
12.2.1 使用JumpStart网络安装 287
12.2.2 使用自动安装程序进行网络安装 290
12.3 安装HP-UX 291
12.3.1 用Ignite-UX自动安装 293
12.4 使用NIM安装AIX 293
12.5 软件包管理 294
12.6 Linux的高级软件包管理系统 295
12.6.1 rpm:管理RPM软件包 295
12.6.2 dpkg:管理Debian的软件包 296
12.7 Linux的高级软件包管理系统 297
12.7.1 软件包的库 298
12.7.2 RHN:Red Hat网络 299
12.7.3 APT:高级软件包工具 299
12.7.4 配置apt-get 300
12.7.5 /etc/apt/sources.list文件的例子 301
12.7.6 创建本地的库镜像 301
12.7.7 自动执行apt-get 302
12.7.8 yum:管理RPM的发布 302
12.7.9 Zypper:SUSE的软件包管理 303
12.8 UNIX的软件包管理 304
12.8.1 Solaris软件包 304
12.8.2 HP-UX软件包 305
12.8.3 AIX的软件管理 307
12.9 版本控制 307
12.9.1创建备份文件 307
12.9.2 正规的版本控制系统 308
12.9.3 Subversion 309
12.9.4 Git 310
12.10 软件的本地化和配置 313
12.10.1 本地化的组织 313
12.10.2 测试 314
12.10.3 本地编译软件 314
12.10.4 发布本地软件 315
12.11 配置管理工具 315
12.11.1 cfengine:计算机免疫系统 316
12.11.2 LCFG:大规模配置系统 316
12.11.3 Template Tree 2:cfengine的帮手 316
12.11.4 DMTF/CIM:公共信息模型 317
12.12 通过NFS共享软件 317
12.12.1 软件包的名字空间 318
12.12.2 依赖关系的管理 318
12.12.3 封装脚本 319
12.13 推荐读物 319
12.14 习题 320第13章 驱动程序和内核 321
13.1 内核的适应性 322
13.2 驱动程序和设备文件 322
13.2.1 设备文件和设备号 323
13.2.2 创建设备文件 324
13.2.3 设备的命名约定 324
13.2.4 自定义内核和可加载模块 325
13.3 配置Linux内核 325
13.3.1 调整Linux内核参数 325
13.3.2 构造Linux内核 327
13.3.3 内核没问题就不要改它 327
13.3.4 配置内核选项 327
13.3.5 构建Linux内核的二进制文件 328
13.3.6 添加Linux设备驱动程序 329
13.4 配置Solaris内核 330
13.4.1 Solaris内核区 330
13.4.2 用/etc/system配置内核 331
13.4.3 添加一个Solaris设备驱动程序 332
13.4.4 调试Solaris的配置 332
13.5 配置HP-UX内核 333
13.6 管理AIX内核 334
13.6.1 ODM 334
13.6.2 内核调配 335
13.7 可加载内核模块 336
13.7.1 Linux的可加载内核模块 336
13.7.2 Solaris的可加载内核模块 337
13.8 Linux udev的意义和作用 338
13.8.1 Linux sysfs:设备对外的窗口 339
13.8.2 用udevadm浏览设备 339
13.8.3 构造规则和固定不变的名字 340
13.9 推荐读物 343
13.10 习题 343第二部分 网络管理技术 345第14章 TCP/IP网络 346
14.1 TCP/IP和Internet 346
14.1.1 Internet的运行管理 347
14.1.2 网络的标准和文献 347
14.2 连网技术概述 348
14.2.1 IPv4和IPv6 349
14.2.2 分组和封装 349
14.2.3 以太网组帧 350
14.2.4 最大传输单位(MTU) 350
14.3 分组地址 351
14.3.1 硬件(MAC)地址 351
14.3.2 IP地址 352
14.3.3 主机名“地址” 352
14.3.4 端口 352
14.3.5 地址类型 353
14.4 IP地址详解 353
14.4.1 IPv4地址分类 353
14.4.2 子网 354
14.4.3 计算子网的技巧和工具 355
14.4.4 CIDR:无类域间路由 356
14.4.5 地址分配 356
14.4.6 私用地址和NAT 357
14.4.7 IPv6地址 358
14.5 路由选择 359
14.5.1 路由表 360
14.5.2 ICMP重定向 361
14.6 ARP:地址解析协议 361
14.7 DHCP:动态主机配置协议 362
14.7.1 DHCP软件 363
14.7.2 DHCP的工作方式 363
14.7.3 ISC的DHCP服务器 363
14.8 安全问题 365
14.8.1 IP转发 365
14.8.2 ICMP重定向 365
14.8.3 源路由 365
14.8.4 广播ping和其他形式的定向广播 365
14.8.5 IP欺骗 366
14.8.6 基于主机的防火墙 366
14.8.7 虚拟私用网络 367
14.9 PPP:点对点协议 367
14.10 基本的网络配置 368
14.10.1 分配主机名和IP地址 368
14.10.2 ifconfig:配置网络接口 369
14.10.3 网络硬件参数 371
14.10.4 route:配置静态路由 371
14.10.5 配置DNS 373
14.11 特定于系统的网络配置 373
14.12 Linux连网 374
14.12.1 NetworkManager 374
14.12.2 Debian和Ubuntu的网络配置 375
14.12.3 SUSE的网络配置 375
14.12.4 Red Hat的网络配置 376
14.12.5 Linux的网络硬件配置选项 377
14.12.6 Linux的TCP/IP配置选项 378
14.12.7 有关安全的内核变量 380
14.12.8 Linux的NAT和包过滤 381
14.13 Solaris连网 381
14.13.1 基本网络配置 381
14.13.2 网络配置举例 383
14.13.3 DHCP的配置 384
14.13.4 ndd:调整TCP/IP和接口 384
14.13.5 安全 385
14.13.6 防火墙和过滤机制 386
14.13.7 NAT 386
14.13.8 Solaris连网的特别之处 387
14.14 HP-UX连网 387
14.14.1 基本网络配置 387
14.14.2 网络配置举例 388
14.14.3 DHCP的配置 389
14.14.4 动态的重新配置和调整 390
14.14.5 安全、防火墙、过滤和NAT 390
14.15 AIX连网 391
14.15.1 no:管理AIX的网络可配参数 392
14.16 推荐读物 393
14.17 习题 394第15章 路由选择 395
15.1 近观包转发 396
15.2 路由守护进程和路由协议 398
15.2.1 距离向量协议 398
15.2.2 链路状态协议 399
15.2.3 代价度量 399
15.2.4 内部协议和外部协议 400
15.3 路由协议巡礼 400
15.3.1 RIP和RIPng:路由信息协议 400
15.3.2 OSPF:开放最短路径优先 401
15.3.4 EIGRP:增强内部网关路由协议 401
15.3.5 IS-IS:ISO的“标准” 402
15.3.6 RDP和NDP 402
15.3.7 BGP:边界网关协议 402
15.4 路由策略的选择标准 402
15.5 路由守护进程 403
15.5.1 routed:过时的RIP实现 404
15.5.2 gated:第一代的多协议路由守护进程 404
15.5.3 Quagga:主流的路由守护进程 404
15.5.4 ramd:HP-UX的多协议路由系统 405
15.5.5 XORP:计算机里的路由器 405
15.5.6 各操作系统的特性 405
15.6 思科路由器 406
15.7 推荐读物 408
15.8 习题 409第16章 网络硬件 410
16.1 以太网:连网技术中的瑞士军刀 411
16.1.1 以太网的工作方式 412
16.1.2 以太网拓扑结构 412
16.1.3 无屏蔽双绞线 412
16.1.4 光纤 414
16.1.5 连接和扩展以太网 415
16.1.6 自动协商 416
16.1.7 以太网供电 416
16.1.8 巨大帧 417
16.2 无线:流动人士的LAN 417
16.2.1 无线网络的安全 418
16.2.2 无线交换机和轻量级AP 419
16.3 DSL和CM:最后一英里 419
16.4 网络测试和调试 420
16.5 建筑物布线 420
16.5.1 UTP电缆的选择 420
16.5.2 到办公室的连接 421
16.5.3 布线标准 421
16.6 网络设计问题 422
16.6.1 网络结构与建筑物结构 422
16.6.2 扩展 422
16.6.3 拥塞 423
16.6.4 维护和建档 423
16.7 管理问题 423
16.8 推荐的厂商 424
16.8.1 电缆和连接器 424
16.8.2 测试仪器 424
16.8.3 路由器/交换机 424
16.9 推荐读物 424
16.10 习题 425第17章 DNS:域名系统 426
17.1 谁需要DNS 427
17.1.1 管理DNS 427
17.2 DNS的工作原理 428
17.2.1 资源记录 428
17.2.2 授权 429
17.2.3 缓存和效率 430
17.2.4 多重响应 430
17.3 DNS速成 430
17.3.1 向DNS添加新机器 431
17.3.2 配置DNS客户机 433
17.4 域名服务器 435
17.4.1 权威与仅缓存服务器 435
17.4.2 递归和非递归服务器 436
17.5 DNS名字空间 437
17.5.1 注册二级域名 438
17.5.2 创建子域 438
17.6 设计DNS环境 438
17.6.1 名字空间管理 439
17.6.2 权威服务器 439
17.6.3 缓存服务器 440
17.6.4 硬件要求 440
17.6.5 安全 441
17.6.6 总结 441
17.7 DNS的新特性 442
17.8 DNS数据库 443
17.8.1 区文件中的命令 444
17.8.2 资源记录 444
17.8.3 SOA记录 447
17.8.4 NS记录 448
17.8.5 A记录 449
17.8.6 PTR记录 449
17.8.7 MX记录 450
17.8.8 CNAME记录 451
17.8.9 巧用CNAME 452
17.8.10 SRV记录 453
17.8.11 TXT记录 454
17.8.12 IPv6资源记录 454
17.8.13 SPF记录 455
17.8.14 DKIM和ADSP记录 457
17.8.15 SSHFP资源记录 459
17.8.16 粘合记录:区之间的链接 460
17.9 BIND软件 461
17.9.1 判定版本 461
17.9.2 BIND的组成 463
17.9.3 配置文件 463
17.9.4 include语句 465
17.9.5 options语句 465
17.9.6 acl语句 470
17.9.7 (TSIG)key语句 471
17.9.8 trusted-keys语句 471
17.9.9 server语句 471
17.9.10 masters语句 472
17.9.11 logging语句 472
17.9.12 statistics-channels语句 473
17.9.13 zone语句 473
17.9.14 rndc的controls语句 475
17.9.15 分离式DNS和view语句 476
17.10 BIND配置举例 478
17.10.1 localhost区 478
17.10.2 一家小型的安全公司 479
17.10.3 ISC 481
17.11 NSD/Unbound软件 482
17.11.1 安装和配置NSD 483
17.11.2 运行nsd 488
17.11.3 安装和配置Unbound 488
17.12 更新区文件 494
17.12.1 区传送 494
17.12.2 BIND的动态更新 495
17.13 安全问题 497
17.13.1 再谈BIND访问控制列表 498
17.13.2 开放的解析器 499
17.13.3 在监管环境下运行 499
17.13.4 使用TSIG和TKEY保障服务器与服务器之间通信的安全 500
17.13.5 为BIND设置TSIG 500
17.13.6 NSD里的TSIG 502
17.13.7 DNSSEC 502
17.13.8 DNSSEC策略 505
17.13.9 DNSSEC资源记录 505
17.13.10 启用DNSSEC 506
17.13.11 生成密钥对 507
17.13.12 区签名 509
17.13.13 DNSSEC信任链 510
17.13.14 DLV:域旁路认证 511
17.13.15 DNSSEC密钥延期 512
17.13.16 DNSSEC工具 513
17.13.17 调试DNSSEC 515
17.14 微软和DNS 516
17.15 测试和调试 516
17.15.1 BIND的日志功能 516
17.15.2 NSD/Unbound的日志功能 521
17.15.3 域名服务器的控制程序 521
17.15.4 域名服务器统计 523
17.15.5 用dig进行调试 524
17.15.6 残缺授权 525
17.15.7 其他DNS检查工具 526
17.15.8 性能问题 527
17.16 各操作系统的特定信息 527
17.16.1 Linux 528
17.16.2 Solaris 530
17.16.3 HP-UX 530
17.16.4 AIX 531
17.17 推荐读物 532
17.17.1 邮递列表和新闻组 532
17.17.2 书籍和其他文档 532
17.17.3 网上资源 533
17.17.4 RFC 533
17.18 习题 534第18章 网络文件系统 535
18.1 NFS概述 535
18.1.1 状态问题 535
18.1.2 性能问题 536
18.1.3 安全 536
18.2 NFS的方法 536
18.2.1 NFS协议的版本和历史 537
18.2.2 传输协议 537
18.2.3 状态 537
18.2.4 文件系统导出 538
18.2.5 文件上锁机制 538
18.2.6 安全问题 539
18.2.7 NFSv4的标识映射 540
18.2.8 root访问与nobody账号 541
18.2.9 NFSv4的性能考虑 541
18.2.10 磁盘配额 541
18.3 服务器端NFS 542
18.3.1 share命令和dfstab文件(Solaris/HP-UX) 543
18.3.2 exportfs命令和exports文件(Linux/AIX) 544
18.3.3 在AIX上导出文件系统 544
18.3.4 在Linux上导出文件系统 545
18.3.5 nfsd:提供文件服务 547
18.4 客户端NFS 548
18.4.1 在启动时挂载远程文件系统 550
18.4.2 端口安全限制 550
18.5 NFSv4的标识映射 551
18.6 nfsstat:转储NFS统计信息 551
18.7 专用NFS文件服务器 552
18.8 自动挂载 552
18.8.1 间接映射文件 553
18.8.2 直接映射文件 554
18.8.3 主控映射文件 554
18.8.4 可执行的映射文件 554
18.8.5 自动挂载的可见性 555
18.8.6 重复的文件系统和自动挂载 555
18.8.7 自动的automount(除Linux之外其他系统上的NFSv3) 556
18.8.8 Linux的特定信息 556
18.9 推荐读物 557
18.10 习题 557第19章 共享系统文件 558
19.1 共享什么 559
19.2 把文件复制到各处 559
19.2.1 NFS的选项 559
19.2.2 “推”系统和“拉”系统 560
19.2.3 rdist:推文件 560
19.2.4 rsync:更安全地传输文件 562
19.2.5 拉文件 564
19.3 LDAP:轻量级目录访问协议 564
19.3.1 LDAP数据的结构 565
19.3.2 LDAP的特点 566
19.3.3 LDAP的文档和规范 567
19.3.4 OpenLDAP:传统的开源LDAP 567
19.3.5 389 Directory Server:另一种开源LDAP服务器 568
19.3.6 用LDAP代替/etc/passwd和/etc/group 568
19.3.7 LDAP查询 569
19.3.8 LDAP和安全 570
19.4 NIS:网络信息服务 570
19.4.1 NIS模型 571
19.4.2 理解NIS的工作方式 571
19.4.3 NIS的安全 572
19.5 确定管理信息源的优先级 573
19.5.1 nscd:缓存查找的结果 574
19.6 推荐读物 574
19.7 习题 574第20章 电子邮件 576
20.1 邮件系统 577
20.1.1 用户代理 577
20.1.2 提交代理 578
20.1.3 传输代理 579
20.1.4 本地投递代理 579
20.1.5 消息库 579
20.1.6 访问代理 580
20.1.7 内容太多,时间太少 580
20.2 剖析邮件消息 580
20.2.1 阅读邮件信头 581
20.3 SMTP协议 582
20.3.1 EHLO 583
20.3.2 SMTP出错代码 583
20.3.3 SMTP身份验证 584
20.4 邮件系统的设计 585
20.4.1 使用邮件服务器 585
20.5 邮件别名 587
20.5.1 从文件中获取别名 589
20.5.2 发邮件给文件 589
20.5.3 发邮件给程序 590
20.5.4 别名举例 590
20.5.5 散列的别名数据库 590
20.5.6 邮递列表和实现清单的软件 590
20.5.7 维护邮递列表的软件包 591
20.6 内容扫描:垃圾邮件和恶意软件 591
20.6.1 垃圾邮件 592
20.6.2 伪造邮件 592
20.6.3 消息隐私 593
20.6.4 垃圾邮件过滤 593
20.6.5 何时过滤 593
20.6.6 灰名单技术/DCC 594
20.6.7 SpamAssassin 594
20.6.8 黑名单 595
20.6.9 白名单 595
20.6.10 邮件过滤库 596
20.6.11 SPF和Sender ID 596
20.6.12 DomainKeys、DKIM和ADSP 596
20.6.13 MTA特有的反垃圾邮件功能 597
20.6.14 MailScanner 597
20.6.15 amavisd-new 597
20.6.16 测试MTA的扫描效力 600
20.7 电子邮件配置 600
20.8 sendmail 601
20.8.1 开关文件 602
20.8.2 运行模式 603
20.8.3 邮件队列 604
20.9 配置sendmail 604
20.9.1 m4预处理器 605
20.9.2 sendmail的配置 605
20.9.3 从.mc样板文件构建配置文件 606
20.10 sendmail基本配置原语 607
20.10.1 表和数据库 607
20.10.2 通用宏和功能 608
20.10.3 客户端选项 612
20.10.4 配置选项 612
20.10.5 sendmail中处理垃圾邮件的功能 614
20.10.6 sendmail中的milter配置 616
20.10.7 amavisd和sendmail的连接 617
20.11 安全与sendmail 618
20.11.1 所有权 618
20.11.2 权限 619
20.11.3 向文件和程序更安全地发邮件 620
20.11.4 隐私选项 620
20.11.5 运行一个chroot过的sendmail(真正严格的要求) 621
20.11.6 拒绝服务攻击 622
20.11.7 SASL:简单的身份验证和安全层 622
20.11.8 TLS:传输层安全 622
20.12 sendmail的性能 623
20.12.1 投递方式 623
20.12.2 队列分组和信封分割 623
20.12.3 队列运行器 623
20.12.4 控制平均负载 624
20.12.5 队列中无法投递的消息 624
20.12.6 内核调优 625
20.13 sendmail测试和调试 626
20.13.1 队列监视 626
20.13.2 日志机制 627
20.14 Exim 627
20.14.1 安装Exim 628
20.14.2 Exim的启动脚本 629
20.14.3 Exim的工具 630
20.14.4 Exim的配置语言 631
20.14.5 Exim的配置文件 631
20.14.6 全局的配置选项 632
20.14.7 ACL 633
20.14.8 ACL内容扫描 636
20.14.9 身份验证器 637
20.14.10 路由 638
20.14.11 传输 640
20.14.12 重试配置 641
20.14.13 重写配置 641
20.14.14 本地扫描功能 642
20.14.15 amavisd和Exim的连接 642
20.14.16 日志机制 642
20.14.17 调试机制 643
20.15 Postfix邮件系统 644
20.15.1 Postfix的体系结构 644
20.15.2 安全 645
20.15.3 Postfix命令和文档 645
20.15.4 配置Postfix 646
20.15.5 虚拟域 649
20.15.6 访问控制 651
20.15.7 反垃圾邮件和病毒 653
20.15.8 用amavisd做内容过滤 654
20.15.9 调试 656
20.16 DKIM配置 657
20.16.1 DKIM:域密钥身份识别邮件 657
20.16.2 DKIM邮件过滤 658
20.16.3 在amavisd-new中配置DKIM 660
20.16.4 sendmail中的DKIM 660
20.16.5 Exim中的DKIM 661
20.16.6 Postfix中的DKIM 663
20.17 综合的电子邮件解决方案 663
20.18 推荐读物 664
20.19 习题 665第21章 网络管理和调试 668
21.1 网络故障的检测 669
21.2 ping:检查主机是否正常 670
21.3 SmokePing:ping的累计统计 671
21.4 traceroute:跟踪IP包 672
21.5 netstat:获得网络统计信息 674
21.5.1 检查接口的配置信息 674
21.5.2 监视网络连接的状态 676
21.5.3 标识正在监听的网络服务 677
21.5.4 检查路由表 677
21.5.5 查看各种网络协议运行的统计信息 678
21.6 检查工作接口的活动 679
21.7 包嗅探器 680
21.7.1 tcpdump:业界标准的包嗅探器 680
21.7.2 Wireshark和TShark:增强型的tcpdump 681
21.8 ICSI Netslyzr 682
21.9 网络管理协议 683
21.10 SNMP:简单网络管理协议 684
21.10.1 SNMP的组织结构 684
21.10.2 SNMP协议的操作 685
21.10.3 RMON:远程监视MIB 686
21.11 NET-SNMP代理程序 686
21.12 网络管理应用程序 687
21.12.1 NET-SNMP工具 687
21.12.2 SNMP数据的采集和绘图 688
21.12.3 Nagios:基于事件的SNMP和服务监视工具 689
21.12.4 终极网络监测软件包:仍在寻觅 690
21.12.5 商业管理平台 690
21.13 NetFlow:面向连接的监视 691
21.13.1 用nfdump和Nfsen监测NetFlow数据 691
21.13.2 在思科路由器上配置NetFlow 693
21.14 推荐读物 693
21.15 习题 694第22章 安全 696
22.1 UNIX安全吗? 697
22.2 安全性是如何受损害的 698
22.2.1 社交工程 698
22.2.2 软件漏洞 698
22.2.3 配置错误 699
22.3 安全的技巧和思想 699
22.3.1 补丁 700
22.3.2 不必要的服务 700
22.3.3 远程的事件日志 701
22.3.4 备份 701
22.3.5 病毒和蠕虫 701
22.3.6 特洛伊木马 702
22.3.7 隐匿木马 702
22.3.8 包过滤 702
22.3.9 口令 702
22.3.10 警惕性 703
22.3.11 普遍原则 703
22.4 口令和用户账号 703
22.4.1 口令时限 704
22.4.2 组登录名和共享登录名 704
22.4.3 用户的shell 704
22.4.4 获得root权限的办法 704
22.5 PAM:验证奇才 705
22.5.1 系统对PAM的支持 705
22.5.2 配置PAM 706
22.5.3 Linux上详细配置举例 708
22.6 setuid程序 709
22.7 有效使用chroot 709
22.8 加强安全的工具 710
22.8.1 nmap:网络端口扫描程序 710
22.8.2 Nessus:下一代的网络扫描程序 711
22.8.3 John the Ripper:找出不安全的口令 712
22.8.4 hosts_acces:主机访问控制 712
22.8.5 Bro:可编程的网络入侵检测系统 713
22.8.6 Snort:流行的网络入侵检测系统 713
22.8.7 OSSEC:基于主机的入侵检测 714
22.9 强制访问控制(MAC) 716
22.9.1 SELinux 717
22.10 加密的安全工具 718
22.10.1 Kerberos:用于网络安全的统一方法 718
22.10.2 PGP:很好的私密性 719
22.10.3 SSH:安全的shell 719
22.10.4 Stunnel 722
22.11 防火墙 723
22.11.1 包过滤防火墙 724
22.11.2 如何过滤服务 724
22.11.3 状态检查防火墙 725
22.11.4 防火墙保险吗 725
22.12 Linux的防火墙功能 725
22.12.1 规则、链和表 726
22.12.2 规则目标 726
22.12.3 设置iptables防火墙 726
22.12.4 一个完整的例子 727
22.13 UNIX系统的IPFilter 729
22.14 VPN 731
22.14.1 IPSec隧道 731
22.14.2 VPN就够了吗 732
22.15 认证和标准 732
22.15.1 认证 733
22.15.2 安全标准 733
22.16 安全信息的来源 735
22.16.1 CERT:卡耐基梅隆大学的注册服务商标 735
22.16.2 SecurityFocus.com网站和BugTraq邮递列表 735
22.16.3 施耐德的安全博客 735
22.16.4 SANS:系统管理、网络和安全协会 736
22.16.5 厂商特有的安全资源 736
22.16.6 其他邮递列表和网站 737
22.17 如何对付站点攻击 737
22.18 推荐读物 738
22.19 习题 739第23章 Web主机托管 741
23.1 Web主机托管的基本知识 741
23.1.1 Web上资源的位置 742
23.1.2 统一资源定位符 742
23.1.3 HTTP工作原理 743
23.1.4 即时生成内容 743
23.1.5 应用服务器 744
23.1.6 负载均衡 745
23.2 HTTP服务程序的安装 746
23.2.1 选择服务器软件 746
23.2.2 安装Apache 747
23.2.3 配置Apache 748
23.2.4 运行Apache 749
23.2.5 分析日志文件 749
23.2.6 高性能主机托管的静态内容优化 749
23.3 虚拟接口 750
23.3.1 使用基于名字的虚拟主机 750
23.3.2 配置虚拟接口 750
23.3.3 告诉Apache有关虚拟接口的信息 753
23.4 SSL 753
23.4.1 产生签发证书的请求 754
23.4.2 配置Apache使用SSL 755
23.5 缓存和代理服务程序 755
23.5.1 Squid缓存和代理服务器 756
23.5.2 设置Squid 756
23.5.3 Apache的反向代理 757
23.6 超越上限 758
23.6.1 云计算 758
23.6.2 主机代管 758
23.6.3 内容分发网络 759
23.7 习题 759第三部分 其他管理技术 761第24章 虚拟化技术 762
24.1 虚拟技术的种类 763
24.1.1 全虚拟化 763
24.1.2 半虚拟化 764
24.1.3 操作系统级虚拟化 764
24.1.4 原生虚拟化 765
24.1.5 云计算 765
24.1.6 动态迁移 766
24.1.7 虚拟化技术比较 766
24.2 虚拟化技术的好处 766
24.3 实施方案 767
24.4 Linux虚拟化 768
24.4.1 Xen简介 768
24.4.2 Xen基础知识 768
24.4.3 用virt-install安装Xen的guest系统 769
24.4.4 Xen动态迁移 770
24.4.5 KVM 771
24.4.6 KVM的安装和使用 772
24.5 Solaris的zone和container 773
24.6 AIX的WPAR 776
24.7 HP-UX的IVM 777
24.7.1 创建和安装虚拟机 777
24.8 VMWARE 778
24.9 亚马逊的AWS 779
24.10 推荐读物 782
24.11 习题 782第25章 X窗口系统 784
25.1 X显示管理器 786
25.2 运行一个X应用程序 787
25.2.1 环境变量DISPLAY 787
25.2.2 客户机身份验证 788
25.2.3 用SSH转发X连接 789
25.3 配置X服务器 790
25.3.1 Device段 791
25.3.2 Monitor段 792
25.3.3 Screen段 792
25.3.4 InputDevice段 793
25.3.5 ServerLayout段 794
25.3.6 xrandr:X服务器的配置工具 794
25.3.7 内核模式设定 795
25.4 故障排查和调试 795
25.4.1 X的特殊键盘组合 795
25.4.2 X服务器出问题 796
25.5 桌面环境简述 797
25.5.1 KDE 798
25.5.2 GNOME 798
25.5.3 KDE和GNOME谁更好 799
25.6 推荐读物 799
25.7 习题 799第26章 打印 800
26.1 打印系统的体系结构 801
26.1.1 主要的打印系统 801
26.1.2 打印 801
26.2 CUPS的打印 802
26.2.1 打印系统的界面 802
26.2.2 打印队列 803
26.2.3 多台打印机和打印队列 803
26.2.4 打印机实例 803
26.2.5 网络打印 804
26.2.6 过滤器 804
26.2.7 CUPS服务器的管理 805
26.2.8 设置网络打印服务器 806
26.2.9 自动配置打印机 806
26.2.10 配置网络打印机 807
26.2.11 打印机的配置举例 807
26.2.12 设置打印机的类 807
26.2.13 关闭服务 808
26.2.14 其他配置工作 808
26.3 桌面打印环境 809
26.3.1 kprinter:打印文档 810
26.3.2 Konqueror和打印 810
26.4 SystemⅤ的打印 811
26.4.1 概述 811
26.4.2 打印目的地及打印类 812
26.4.3 lp简述 812
26.4.4 lpsched与lpshut:启动和停止打印 812
26.4.5 lpadmin:配置打印环境 813
26.4.6 lpadmin举例 815
26.4.7 lpstat:获取状态信息 815
26.4.8 cancel:删除打印作业 816
26.4.9 accept和reject:控制假脱机处理 816
26.4.10 enable和disable:控制打印 816
26.4.11 lpmove:转移作业 817
26.4.12 接口程序 817
26.4.13 lp系统混乱状况的处理方法 818
26.5 BSD和AIX的打印 818
26.5.1 BSD打印系统的体系结构概述 818
26.5.2 控制打印环境 819
26.5.3 lpd:假脱机打印程序 820
26.5.4 lpr:提交打印作业 820
26.5.5 lpq:查看打印队列 820
26.5.6 lprm:删除打印作业 820
26.5.7 lpc:管理性修改 821
26.5.8 /etc/printcap文件 823
26.5.9 printcap变量 823
26.6 漫长和奇特的历程 826
26.6.1 打印的历史和打印系统的出现 826
26.6.2 打印机的多样性 827
26.7 常用的打印软件 828
26.8 打印机的语言 829
26.8.1 PostScript 829
26.8.2 PCL 829
26.8.3 PDF 830
26.8.4 XPS 830
26.8.5 PJL 830
26.8.6 打印机驱动程序及其对PDL的处理 831
26.9 PPD文件 832
26.10 纸型 833
26.11 实际使用打印机的问题 834
26.11.1 打印机的选择 834
26.11.2 GDI打印机 834
26.11.3 双面打印 835
26.11.4 其他打印机配件 835
26.11.5 串口和并口打印机 835
26.11.6 网络打印机 836
26.11.7 给打印机的其他建议 836
26.12 故障排查的技巧 838
26.12.1 重启打印守护进程 838
26.12.2 日志 839
26.12.3 直接打印的问题 839
26.12.4 网络打印的问题 839
26.12.5 发行版本特有的问题 840
26.13 推荐读物 840
26.14 习题 841第27章 数据中心基础 842
27.1 数据中心的可靠性级别 843
27.2 冷却 844
27.2.1 电子设备 844
27.2.2 照明设备 845
27.2.3 操作人员 845
27.2.4 总的热负荷 845
27.2.5 冷热通道 845
27.2.6 湿度 846
27.2.7 环境监视 847
27.3 供电 847
27.3.1 机架的供电要求 847
27.3.2 kVA和kW 848
27.3.3 远程控制 849
27.4 机架 849
27.5 工具 849
27.6 推荐读物 850
27.7 习题 850第28章 绿色IT 852
28.1 绿色IT的兴起 853
28.2 绿色IT的生态金字塔 854
28.3 绿色IT策略:数据中心 854
28.3.1 应用合并 855
28.3.2 服务器合并 856
28.3.3 SAN存储 856
28.3.4 服务器虚拟化 856
28.3.5 随用随开的服务器 857
28.3.6 细粒度使用和容量规划 857
28.3.7 优化能源的服务器配置 857
28.3.8 云计算 858
28.3.9 免费冷却 859
28.3.10 数据中心的高效冷却 859
28.3.11 停运时的降级模式 859
28.3.12 延长设备寿命 859
28.3.13 数据中心的较高温度 860
28.3.14 低功率设备 860
28.4 绿色IT策略:用户空间 860
28.5 绿色IT的朋友 862
28.6 习题 862第29章 性能分析 863
29.1 做什么可以提高性能 864
29.2 影响性能的因素 865
29.3 如何分析性能问题 866
29.4 系统性能检查 867
29.4.1 盘点硬件 867
29.4.2 收集性能数据 869
29.4.3 CPU使用情况分析 870
29.4.4 系统如何管理内存 871
29.4.5 内存使用情况分析 873
29.4.6 磁盘I/O分析 874
29.4.7 xdd:分析磁盘子系统的性能 876
29.4.8 sar:连续采集和报告统计信息 876
29.4.9 nmon和nmon_analyser:AIX上的监视工具 876
29.4.10 选择Linux的I/O调度器 877
29.4.11 oprofile:详细剖析Linux系统 877
29.5 求助!系统为何越来越慢 877
29.6 推荐读物 879
29.7 习题 879第30章 同Windows协作 881
30.1 从Windows登录到UNIX系统 881
30.2 远程桌面访问 882
30.2.1 在Windows计算机上运行X服务器 882
30.2.2 VNC:虚拟网络计算 883
30.2.3 Windows RDP:远程桌面协议 883
30.3 运行Windows和类似Windows的应用 884
30.3.1 双重引导,为何不该用 884
30.3.2 微软Office的替代软件 885
30.4 在Windows上使用命令行工具 885
30.5 Windows遵守电子邮件和Web标准 885
30.6 通过Samba和CIFS共享文件 886
30.6.1 Samba:UNIX的CIFS服务器 886
30.6.2 Samba的安装 887
30.6.3 文件名编码 888
30.6.4 用户身份验证 888
30.6.5 基本的文件共享 889
30.6.6 用户组共享 889
30.6.7 用微软的DFS做透明重定向 890
30.6.8 smbclient:简单的CIFS客户端 891
30.6.9 Linux的客户端对CIFS的支持 891
30.7 用Samba共享打印机 892
30.7.1 从Windows安装打印机驱动程序 893
30.7.2 从命令行安装打印机驱动程序 894
30.8 调试Samba 894
30.9 Active Directory身份验证 896
30.9.1 准备好集成AD 896
30.9.2 配置Kerberos 897
30.9.3 Samba作为Active Directory的域成员 898
30.9.4 配置PAM 899
30.9.5 winbind的备选方案 900
30.10 推荐读物 900
30.11 习题 901第31章 串行设备和串行终端 902
31.1 RS-232C标准 903
31.2 备选连接器 905
31.2.1 DB-9连接器 905
31.2.2 RJ-45连接器 905
31.3 硬载波和软载波 906
31.4 硬流控 906
31.5 串行设备文件 907
31.6 setserial:把串口参数通知给驱动程序 908
31.7 伪终端 909
31.8 硬件终端的配置 909
31.8.1 登录过程 909
31.8.2 /etc/ttytype文件 910
31.8.3 /etc/gettytab文件 911
31.8.4 /etc/gettydefs文件 911
31.8.5 /etc/inittab文件 911
31.8.6 Linux上的getty配置 913
31.8.7 Ubuntu的Upstart 913
31.8.8 Solaris和sacadm 914
31.9 特殊字符和终端驱动程序 914
31.10 stty:设置终端的选项 915
31.11 tset:自动设置选项 916
31.12 僵住的终端 916
31.13 调试串行线 917
31.14 连接到串行设备的控制台 917
31.15 习题 918第32章 管理、政策与政治 919
32.1 IT的目标 919
32.1.1 预算和支出 920
32.1.2 IT政策 920
32.1.3 SLA 921
32.2 IT职能机构的组成 924
32.2.1 基础:工单和任务管理系统 924
32.2.2 工单系统的常见功能 925
32.2.3 工单的所有权 925
32.2.4 用户对工单系统的接受程度 926
32.2.5 工单系统举例 926
32.2.6 工单分派 927
32.2.7 IT内部的技能培养 927
32.2.8 时间管理 928
32.3 咨询组 928
32.3.1 服务范围 928
32.3.2 咨询可用性 929
32.3.3 咨询上瘾 929
32.4 企业构架师 929
32.4.1 过程可再现 929
32.4.2 留下记录 930
32.4.3 认可文档的重要性 930
32.4.4 定制和编程 930
32.4.5 保持系统干净整洁 930
32.5 运行组 930
32.5.1 瞄准最短停机时间 931
32.5.2 依靠文档 931
32.5.3 重用或淘汰老硬件 931
32.5.4 维护本地文档 932
32.5.5 保持环境独立 934
32.5.6 自动化 934
32.6 管理的职能 935
32.6.1 领导 935
32.6.2 人事管理 936
32.6.3 聘用 936
32.6.4 解聘 937
32.6.5 人事管理的机制 937
32.6.6 质量控制 937
32.6.7 管理但别管闲事 938
32.6.8 社区关系 938
32.6.9 管理上级 939
32.6.10 采购 939
32.6.11 化解矛盾 940
32.7 政策和规程 941
32.7.1 政策和规程之间的区别 941
32.7.2 政策的最佳实践 942
32.7.3 规程 942
32.8 灾难恢复 943
32.8.1 风险评估 943
32.8.2 灾难管理 944
32.8.3 处理灾难的人员准备 945
32.8.4 电源和HVAC 945
32.8.5 互联网连接的冗余性 946
32.8.6 安全事件 946
32.9 合规:规章与标准 947
32.9.1 ITIL:信息技术基础设施库 949
32.9.2 NIST:国家标准和技术研究所 949
32.10 法律问题(美国) 949
32.10.1 隐私 950
32.10.2 落实政策 950
32.10.3 控制=义务 951
32.10.4 软件许可证 951
32.11 组织、会议及其他资源 952
32.12 推荐读物 953
32.13 习题 953附录A 系统管理简史 955
附录B 为AIX辩护 962跋 965
猜您喜欢