一、目录介绍
第一部分 基本管理技术
第1章 从何处入手
1.1 系统管理员的基本任务
1.1.1 账号管理
1.1.2 增删硬件
1.1.3 执行备份
1.1.4 安装和更新软件
1.1.5 监视系统
1.1.6 故障诊断
1.1.7 维护本地文档
1.1.8 时刻警惕系统安全
1.1.9 救火
1.2 读者的知识背景
1.3 UNIX和Linux之间的摩擦
1.4 Linux的发行版本
1.5 本书使用的示例系统
1.5.1 用作示例的Linux发行版本
1.5.2 用作示例的UNIX发行版本
1.6 特定于系统的管理工具
1.7 表示法和印刷约定
1.8 单位
1.9 手册页和其他联机文档
1.9.1 手册页的组织
1.9.2 man:读取手册页
1.9.3 手册页的保存
1.9.4 GNUTexinfo
1.10 其他的权威文档
1.10.1 针对系统的专门指南
1.10.2 针对软件包的专门文档
1.10.3 书籍
1.10.4 RFC和其他Internet文档
1.10.5 LDP
1.11 其他的信息资源
1.12 查找和安装软件的途径
1.12.1 判断软件是否已经安装
1.12.2 增加新软件
1.12.3 从源代码编译软件
1.13 重压下的系统管理员
1.14 推荐读物
1.15 习题
第2章 脚本和shell
2.1 shell的基础知识
2.1.1 编辑命令
2.1.2 管道和重定向
2.1.3 变量和引用
2.1.4 常见的过滤命令
2.2 bash脚本编程
2.2.1 从命令到脚本
2.2.2 输入和输出
2.2.3 命令行参数和函数
2.2.4 变量的作用域
2.2.5 控制流程
2.2.6 循环
2.2.7 数组和算术运算
2.3 正则表达式
2.3.1 匹配过程
2.3.2 普通字符
2.3.3 特殊字符
2.3.4 正则表达式的例子
2.3.5 捕获
2.3.6 贪心、懒惰和灾难性的回溯
2.4 Perl编程
2.4.1 变量和数组
2.4.2 数组和字符串文字
2.4.3 函数调用
2.4.4 表达式里的类型转换
2.4.5 字符串表达式和变量
2.4.6 哈希
2.4.7 引用和自动生成
2.4.8 Perl语言里的正则表达式
2.4.9 输入和输出
2.4.10 控制流程
2.4.11 接受和确认输入
2.4.12 Perl用作过滤器
2.4.13 Perl的附加模块
2.5 Python脚本编程
2.5.1 Python快速入门
2.5.2 对象、字符串、数、列表、字典、元组和文件
2.5.3 确认输入的例子
2.5.4 循环
2.6 脚本编程的最佳实践
2.7 推荐读物
Shell基础知识和bash脚本编程
正则表达式
Perl脚本编程
Python脚本编程
2.8 习题
第3章 引导和关机
3.1 引导
3.1.1 恢复模式下引导进入shell
3.1.2 引导过程的步骤
3.1.3 初始化内核
3.1.4 配置硬件
3.1.5 创建内核进程
3.1.6 操作员干预(仅限恢复模式)
3.1.7 执行启动脚本
3.1.8 引导进程完成
3.2 引导PC
3.3 GRUB:全面统一的引导加载程序
3.3.1 内核选项
3.3.2 多重引导
3.4 引导进入单用户模式
3.4.1 用GRUB引导单用户模式
3.4.2 SPARC上的单用户模式
3.4.3 HP-UX的单用户模式
3.4.4 AIX的单用户模式
3.5 启动脚本
3.5.1 init及其运行级
3.5.2 启动脚本概述
3.5.3 Red Hat启动脚本
3.5.4 SUSE的启动脚本
3.5.5 Ubuntu的启动脚本和Upstart守护进程
3.5.6 HP-UX的启动脚本
3.5.7 AIX的启动
3.6 引导Solaris
3.6.1 Solaris的SMF
3.6.2 崭新的世界:用SMF引导系统
3.7 重新引导和关机
3.7.1 shutdown:停止系统的妥善方式
3.7.2 halt和reboot:关闭系统的更简单方式
3.8 习题
第4章 访问控制和超级权限
4.1 传统的UNIX访问控制
4.1.1 文件系统的访问控制
4.1.2 进程的所有权
4.1.3 root账号
4.1.4 setuid和setgid执行方式
4.2 现代的访问控制
4.2.1 基于角色的访问控制
4.2.2 SELinux:增强安全性的Linux
4.2.3 POSIX能力(Linux)
4.2.4 PAM:可插入式身份验证模块
4.2.5 Kerberos:第三方的加密验证
4.2.6 访问控制列表
4.3 实际中的访问控制
4.3.1 选择root的口令
4.3.2 登录进入root账号
4.3.3 su:替换用户身份
4.3.4 sudo:受限的su
4.3.5 口令保险柜和口令代管
4.4 root之外的其他伪用户
4.5 习题
第5章 进程控制
5.1 进程的组成部分
5.1.1 PID:进程的ID号
5.1.2 PPID:父PID
5.1.3 UID和EUID:真实的和有效的用户ID
5.1.4 GID和EGID:真实的和有效的组ID
5.1.5 谦让度
5.1.6 控制终端
5.2 进程的生命周期
5.3 信号
5.4 kill: 发送信号
5.5 进程的状态
5.6 nice和renice:影响调度优先级
5.7 ps:监视进程
5.8 用top、prstat和topas动态监视进程
5.9 /proc文件系统
5.10 strace、truss和tusc:追踪信号和系统调用
5.11 失控进程
5.12 推荐读物
5.13 习题
第6章 文件系统
6.1 路径名称
6.1.1 绝对路径和相对路径
6.1.2 文件名中的空白
6.2 挂载和卸载文件系统
6.3 文件树的组织
6.4 文件类型
6.4.1 普通文件
6.4.2 目录
6.4.3 字符设备文件和块设备文件
6.4.4 本地域套接口
6.4.5 有名管道
6.4.6 符号链接
6.5 文件属性
6.5.1 权限位
6.5.2 setuid和setgid位
6.5.3 粘附位
6.5.4 ls:列出和查看文件
6.5.5 chmod:改变权限
6.5.6 chown和chgrp:改变归属关系和组
6.5.7 umask:分配默认的权限
6.5.8 Linux上的额外标志
6.6 访问控制列表
6.6.1 UNIX ACL简史
6.6.2 ACL的实现
6.6.3 系统支持的ACL
6.6.4 POSIX的ACL
6.6.5 NFSv4的ACL
6.7 习题
第7章 添加新用户
7.1 /etc/passwd文件
7.1.1 登录名
7.1.2 加密的口令
7.1.3 UID号
7.1.4 默认的GID号
7.1.5 GECOS字段
7.1.6 主目录
7.1.7 登录shell
7.2 /etc/shadow和/etc/security/passwd文件
7.3 /etc/group文件
7.4 添加用户:基本步骤
7.4.1 编辑passwd和group文件
7.4.2 设置口令
7.4.3 创建主目录并安装启动文件
7.4.4 设置权限和所属关系
7.4.5 设置邮件主目录
7.4.6 配置角色和管理特权
7.4.7 收尾步骤
7.5 用useradd添加用户
7.5.1 Ubuntu上的useradd
7.5.2 SUSE上的useradd
7.5.3 Red Hat上的useradd
7.5.4 Solaris上的useradd
7.5.5 HP-UX上的useradd
7.5.6 AIX的useradd
7.5.7 useradd举例
7.6 用newusers成批添加用户(Linux)
7.7 删除用户
7.8 禁止登录
7.9 用系统的专门工具管理用户
7.10 用PAM降低风险
7.11 集中管理账号
7.11.1 LDAP和Active Directory
7.11.2 单一登录系统
7.11.3 身份管理系统
7.12 推荐读物
7.13 习题
第8章 存储
8.1 只想加一块硬盘!
8.1.1 Linux的做法
8.1.2 Solaris的做法
8.1.3 HP-UX的做法
8.1.4 AIX的做法
8.2 存储硬件
8.2.1 硬盘
8.2.2 固态盘
8.3 存储硬件接口
8.3.1 PATA接口
8.3.2 SATA接口
8.3.3 并行SCSI
8.3.4 串行SCSI
8.3.5 SCSI和SATA的比较
8.4 层层剖析:存储上的软件
8.5 硬盘的安装和底层管理
8.5.1 在硬件层面上的安装核实
8.5.2 磁盘设备文件
8.5.3 格式化和坏块管理
8.5.4 ATA安全擦除
8.5.5 hdparm:设置磁盘和接口参数(Linux)
8.5.6 使用SMART监视磁盘
8.6 磁盘分区
8.6.1 传统的分区方式
8.6.2 Windows的分区
8.6.3 GPT:GUID分区表
8.6.4 Linux的分区
8.6.5 Solaris的分区
8.6.6 HP-UX的分区
8.7 RAID:廉价磁盘冗余阵列
8.7.1 软硬RAID对比
8.7.2 RAID的级别
8.7.3 硬盘故障恢复
8.7.4 RAID 5的缺点
8.7.5 mdadm:Linux上的软RAID
8.8 逻辑卷管理
8.8.1 LVM的实现
8.8.2 Linux的逻辑卷管理
8.8.3 HP-UX的逻辑卷管理
8.8.4 AIX的逻辑卷管理
8.10 文件系统
8.9.1 Linux文件系统:ext家族的文件系统
8.9.2 HP-UX文件系统
8.9.3 AIX的JFS2文件系统
8.9.4 文件系统的术语
8.9.5 文件系统的多态性
8.9.6 mkfs:格式化文件系统
8.9.7 fsck:检查和修复文件系统
8.9.8 挂载文件系统
8.9.9 设置自动挂载
8.9.10 挂载USB设备
8.9.11 启用交换分区
8.10 ZFS:解决所有存储问题
8.10.1 ZFS体系结构
8.10.2 举例:Solaris磁盘分区
8.10.3 文件系统和属性
8.10.4 属性继承
8.10.5 每个用户一个文件系统
8.10.6 快照和克隆
8.10.7 原始卷
8.10.8 通过NFS、CIFS和iSCSI共享文件系统
8.10.9 存储池管理
8.11 存储区域网络
8.11.1 SAN网络
8.11.2 iSCSI:SCSI over IP
8.11.3 从iSCSI卷引导
8.11.4 iSCSI的厂商特性
8.12 习题
第9章 周期性进程
9.1 cron:按时间表执行命令
9.2 crontab文件的格式
9.3 crontab管理
9.4 Linux及其Vixie-CRON的扩展
9.5 cron的常见用途
9.5.1 简单的提醒功能
9.5.2 清理文件系统
9.5.3 配置文件的网络分布
9.5.4 循环日志文件
9.6 习题
第10章 备份
10.1 备份基本原理
10.1.1 从中心位置执行所有的备份
10.1.2 给备份介质加卷标
10.1.3 选择合理的备份间隔
10.1.4 仔细选择文件系统
10.1.5 在单一介质上做日常转储
10.1.6 异地保存介质
10.1.7 保护备份
10.1.8 备份期间限制活动
10.1.9 查验介质
10.1.10 发掘介质的寿命
10.1.11 为备份而设计数据
10.1.12 做最坏的准备
10.2 备份设备和介质
10.2.1 光盘:CD-R/RW、DVD±R/RW、DVD-RAM和蓝光
10.2.2 便携和移动硬盘
10.2.3 磁带概述
10.2.4 小型磁带机:8mm磁带和DDS/DAT
10.2.5 DLT和S-DLT
10.2.6 AIT和SAIT
10.2.7 VXA和VXA-X
10.2.8 LTO
10.2.9 自动选带机、自动换带机以及磁带库
10.2.10 硬盘
10.2.11 因特网和云备份服务
10.2.12 介质类型小结
10.2.13 设备选型
10.3 节省空间和时间与增量备份
10.3.1 简单的计划
10.3.2 适中的计划
10.4 用dump建立备份机制
10.4.1 转储文件系统
10.4.2 用restore从转储中恢复
10.4.3 恢复整个文件系统
10.4.4 恢复到新硬盘上
10.5 为系统升级而执行转储和恢复
10.6 使用其他存档程序
10.6.1 tar: 给文件打包
10.6.2 dd:处理位流
10.6.3 ZFS的备份
10.7 使用同一卷磁带上的多个文件
10.8 Bacula
10.8.1 Bacula的模型
10.8.2 设置Bacula
10.8.3 安装数据库和Bacula的守护进程
10.8.4 配置Bacula的守护进程
10.8.5 公共的配置段
10.8.6 bacular-dir.conf:配置控制文件
10.8.7 bacula-sd.conf:配置存储守护进程
10.8.8 bconsole.conf:配置控制台
10.8.9 安装和配置客户端的文件守护进程
10.8.10 启动Bacula的守护进程
10.8.11 向存储池添加介质
10.8.12 执行一次手工备份
10.8.13 执行一次恢复工作
10.8.14 给Windows客户机做备份
10.8.15 监视和调试Bacula的配置
10.8.16 Bacula的技巧和窍门
10.8.17 Bacula的替代工具
10.9 商用备份产品
10.9.1 ADSM/TSM
10.9.2 VeritasNetBackup
10.9.3 EMCNetWorker
10.9.4 其他选择
10.10 推荐读物
10.11 习题
第11章 系统日志与日志文件
11.1 日志文件的位置
11.1.1 不用管理的文件
11.1.2 厂商特有的文件
11.2 syslog:系统事件的日志程序
11.2.1 syslog的体系结构
11.2.2 配置syslogd
11.2.3 配置文件举例
11.2.4 调试syslog
11.2.5 syslog的其他替代方案
11.2.6 Linux内核和引导时刻日志
11.3 AIX:日志记录和出错处理
11.3.1 AIX的syslog配置
11.4 logrotate: 管理日志文件
11.5 分析日志文件
11.6 日志记录的策略
11.7 习题
第12章 软件安装和管理
12.1 安装Linux和OpenSolaris
12.1.1 从网络引导PC
12.1.2 为Linux设置PXE
12.1.3 非PC的网络引导
12.1.4 Kickstart:RHEL的自动安装程序
12.1.5 AutoYaST:SUSE的自动安装工具
12.1.6 用Ubuntu的安装程序自动安装
12.2 安装Solaris
12.2.1 使用JumpStart网络安装
12.2.2 使用自动安装程序进行网络安装
12.3 安装HP-UX
12.3.1 用Ignite-UX自动安装
12.4 使用NIM安装AIX
12.5 软件包管理
12.6 Linux的高级软件包管理系统
12.6.1 rpm:管理RPM软件包
12.6.2 dpkg:管理Debian的软件包
12.7 Linux的高级软件包管理系统
12.7.1 软件包的库
12.7.2 RHN:Red Hat网络
12.7.3 APT:高级软件包工具
12.7.4 配置apt-get
12.7.5 /etc/apt/sources.list文件的例子
12.7.6 创建本地的库镜像
12.7.7 自动执行apt-get
12.7.8 yum:管理RPM的发布
12.7.9 Zypper:SUSE的软件包管理
12.8 UNIX的软件包管理
12.8.1 Solaris软件包
12.8.2 HP-UX软件包
12.8.3 AIX的软件管理
12.9 版本控制
12.9.1 创建备份文件
12.9.2 正规的版本控制系统
12.9.3 Subversion
12.9.4 Git
12.10 软件的本地化和配置
12.10.1 本地化的组织
12.10.2 测试
12.10.3 本地编译软件
12.10.4 发布本地软件
12.11 配置管理工具
12.11.1 cfengine:计算机免疫系统
12.11.2 LCFG:大规模配置系统
12.11.3 Template Tree 2:cfengine的帮手
12.11.4 DMTF/CIM:公共信息模型
12.12 通过NFS共享软件
12.12.1 软件包的名字空间
12.12.2 依赖关系的管理
12.12.3 封装脚本
12.13 推荐读物
12.14 习题
第13章 驱动程序和内核
13.1 内核的适应性
13.2 驱动程序和设备文件
13.2.1 设备文件和设备号
13.2.2 创建设备文件
13.2.3 设备的命名约定
13.2.4 自定义内核和可加载模块
13.3 配置Linux内核
13.3.1 调整Linux内核参数
13.3.2 构造Linux内核
13.3.3 内核没问题就不要改它
13.3.4 配置内核选项
13.3.5 构建Linux内核的二进制文件
13.3.6 添加Linux设备驱动程序
13.4 配置Solaris内核
13.4.1 Solaris内核区
13.4.2 用/etc/system配置内核
13.4.3 添加一个Solaris设备驱动程序
13.4.4 调试Solaris的配置
13.5 配置HP-UX内核
13.6 管理AIX内核
13.6.1 ODM
13.6.2 内核调配
13.7 可加载内核模块
13.7.1 Linux的可加载内核模块
13.7.2 Solaris的可加载内核模块
13.8 Linux udev的意义和作用
13.8.1 Linux sysfs:设备对外的窗口
13.8.2 用udevadm浏览设备
13.8.3 构造规则和固定不变的名字
13.9 推荐读物
13.10 习题
第二部分 网络管理技术
第14章 TCP/IP网络
14.1 TCP/IP和Internet
14.1.1 Internet的运行管理
14.1.2 网络的标准和文献
14.2 连网技术概述
14.2.1 IPv4和IPv6
14.2.2 分组和封装
14.2.3 以太网组帧
14.2.4 最大传输单位(MTU)
14.3 分组地址
14.3.1 硬件(MAC)地址
14.3.2 IP地址
14.3.3 主机名"地址"
14.3.4 端口
14.3.5 地址类型
14.4 IP地址详解
14.4.1 IPv4地址分类
14.4.2 子网
14.4.3 计算子网的技巧和工具
14.4.4 CIDR:无类域间路由
14.4.5 地址分配
14.4.6 私用地址和NAT
14.4.7 IPv6地址
14.5 路由选择
14.5.1 路由表
14.5.2 ICMP重定向
14.6 ARP:地址解析协议
14.7 DHCP:动态主机配置协议
14.7.1 DHCP软件
14.7.2 DHCP的工作方式
14.7.3 ISC的DHCP服务器
14.8 安全问题
14.8.1 IP转发
14.8.2 ICMP重定向
14.8.3 源路由
14.8.4 广播ping和其他形式的定向广播
14.8.5 IP欺骗
14.8.6 基于主机的防火墙
14.8.7 虚拟私用网络
14.9 PPP:点对点协议
14.10 基本的网络配置
14.10.1 分配主机名和IP地址
14.10.2 ifconfig:配置网络接口
14.10.3 网络硬件参数
14.10.4 route:配置静态路由
14.10.5 配置DNS
14.11 特定于系统的网络配置
14.12 Linux连网
14.12.1 NetworkManager
14.12.2 Debian和Ubuntu的网络配置
14.12.3 SUSE的网络配置
14.12.4 Red Hat的网络配置
14.12.5 Linux的网络硬件配置选项
14.12.6 Linux的TCP/IP配置选项
14.12.7 有关安全的内核变量
14.12.8 Linux的NAT和包过滤
14.13 Solaris连网
14.13.1 基本网络配置
14.13.2 网络配置举例
14.13.3 DHCP的配置
14.13.4 ndd:调整TCP/IP和接口
14.13.5 安全
14.13.6 防火墙和过滤机制
14.13.7 NAT
14.13.8 Solaris连网的特别之处
14.14 HP-UX连网
14.14.1 基本网络配置
14.14.2 网络配置举例
14.14.3 DHCP的配置
14.14.4 动态的重新配置和调整
14.14.5 安全、防火墙、过滤和NAT
14.15 AIX连网
14.15.1 no:管理AIX的网络可配参数
14.16 推荐读物
14.17 习题
第15章 路由选择
15.1 近观包转发
15.2 路由守护进程和路由协议
15.2.1 距离向量协议
15.2.2 链路状态协议
15.2.3 代价度量
15.2.4 内部协议和外部协议
15.3 路由协议巡礼
15.3.1 RIP和RIPng:路由信息协议
15.3.2 OSPF:开放最短路径优先
15.3.4 EIGRP:增强内部网关路由协议
15.3.5 IS-IS:ISO的"标准"
15.3.6 RDP和NDP
15.3.7 BGP:边界网关协议
15.4 路由策略的选择标准
15.5 路由守护进程
15.5.1 routed:过时的RIP实现
15.5.2 gated:第一代的多协议路由守护进程
15.5.3 Quagga:主流的路由守护进程
15.5.4 ramd:HP-UX的多协议路由系统
15.5.5 XORP:计算机里的路由器
15.5.6 各操作系统的特性
15.6 思科路由器
15.7 推荐读物
15.8 习题
第16章 网络硬件
16.1 以太网:连网技术中的瑞士军刀
16.1.1 以太网的工作方式
16.1.2 以太网拓扑结构
16.1.3 无屏蔽双绞线
16.1.4 光纤
16.1.5 连接和扩展以太网
16.1.6 自动协商
16.1.7 以太网供电
16.1.8 巨大帧
16.2 无线:流动人士的LAN
16.2.1 无线网络的安全
16.2.2 无线交换机和轻量级AP
16.3 DSL和CM:最后一英里
16.4 网络测试和调试
16.5 建筑物布线
16.5.1 UTP电缆的选择
16.5.2 到办公室的连接
16.5.3 布线标准
16.6 网络设计问题
16.6.1 网络结构与建筑物结构
16.6.2 扩展
16.6.3 拥塞
16.6.4 维护和建档
16.7 管理问题
16.8 推荐的厂商
16.8.1 电缆和连接器
16.8.2 测试仪器
16.8.3 路由器/交换机
16.9 推荐读物
16.10 习题
第17章 DNS:域名系统
17.1 谁需要DNS
17.1.1 管理DNS
17.2 DNS的工作原理
17.2.1 资源记录
17.2.2 授权
17.2.3 缓存和效率
17.2.4 多重响应
17.3 DNS速成
17.3.1 向DNS添加新机器
17.3.2 配置DNS客户机
17.4 域名服务器
17.4.1 权威与仅缓存服务器
17.4.2 递归和非递归服务器
17.5 DNS名字空间
17.5.1 注册二级域名
17.5.2 创建子域
17.6 设计DNS环境
17.6.1 名字空间管理
17.6.2 权威服务器
17.6.3 缓存服务器
17.6.4 硬件要求
17.6.5 安全
17.6.6 总结
17.7 DNS的新特性
17.8 DNS数据库
17.8.1 区文件中的命令
17.8.2 资源记录
17.8.3 SOA记录
17.8.4 NS记录
17.8.5 A记录
17.8.6 PTR记录
17.8.7 MX记录
17.8.8 CNAME记录
17.8.9 巧用CNAME
17.8.10 SRV记录
17.8.11 TXT记录
17.8.12 IPv6资源记录
17.8.13 SPF记录
17.8.14 DKIM和ADSP记录
17.8.15 SSHFP资源记录
17.8.16 粘合记录:区之间的链接
17.9 BIND软件
17.9.1 判定版本
17.9.2 BIND的组成
17.9.3 配置文件
17.9.4 include语句
17.9.5 options语句
17.9.6 acl语句
17.9.7 (TSIG)key语句
17.9.8 trusted-keys语句
17.9.9 server语句
17.9.10 masters语句
17.9.11 logging语句
17.9.12 statistics-channels语句
17.9.13 zone语句
17.9.14 rndc的controls语句
17.9.15 分离式DNS和view语句
17.10 BIND配置举例
17.10.1 localhost区
17.10.2 一家小型的安全公司
17.10.3 ISC
17.11 NSD/Unbound软件
17.11.1 安装和配置NSD
17.11.2 运行nsd
17.11.3 安装和配置Unbound
17.12 更新区文件
17.12.1 区传送
17.12.2 BIND的动态更新
17.13 安全问题
17.13.1 再谈BIND访问控制列表
17.13.2 开放的解析器
17.13.3 在监管环境下运行
17.13.4 使用TSIG和TKEY保障服务器与服务器之间通信的安全
17.13.5 为BIND设置TSIG
17.13.6 NSD里的TSIG
17.13.7 DNSSEC
17.13.8 DNSSEC策略
17.13.9 DNSSEC资源记录
17.13.10 启用DNSSEC
17.13.11 生成密钥对
17.13.12 区签名
17.13.13 DNSSEC信任链
17.13.14 DLV:域旁路认证
17.13.15 DNSSEC密钥延期
17.13.16 DNSSEC工具
17.13.17 调试DNSSEC
17.14 微软和DNS
17.15 测试和调试
17.15.1 BIND的日志功能
17.15.2 NSD/Unbound的日志功能
17.15.3 域名服务器的控制程序
17.15.4 域名服务器统计
17.15.5 用dig进行调试
17.15.6 残缺授权
17.15.7 其他DNS检查工具
17.15.8 性能问题
17.16 各操作系统的特定信息
17.16.1 Linux
17.16.2 Solaris
17.16.3 HP-UX
17.16.4 AIX
17.17 推荐读物
17.17.1 邮递列表和新闻组
17.17.2 书籍和其他文档
17.17.3 网上资源
17.17.4 RFC
17.18 习题
第18章 网络文件系统
18.1 NFS概述
18.1.1 状态问题
18.1.2 性能问题
18.1.3 安全
18.2 NFS的方法
18.2.1 NFS协议的版本和历史
18.2.2 传输协议
18.2.3 状态
18.2.4 文件系统导出
18.2.5 文件上锁机制
18.2.6 安全问题
18.2.7 NFSv4的标识映射
18.2.8 root访问与nobody账号
18.2.9 NFSv4的性能考虑
18.2.10 磁盘配额
18.3 服务器端NFS
18.3.1 share命令和dfstab文件(Solaris/HP-UX)
18.3.2 exportfs命令和exports文件(Linux/AIX)
18.3.3 在AIX上导出文件系统
18.3.4 在Linux上导出文件系统
18.3.5 nfsd:提供文件服务
18.4 客户端NFS
18.4.1 在启动时挂载远程文件系统
18.4.2 端口安全限制
18.5 NFSv4的标识映射
18.6 nfsstat:转储NFS统计信息
18.7 专用NFS文件服务器
18.8 自动挂载
18.8.1 间接映射文件
18.8.2 直接映射文件
18.8.3 主控映射文件
18.8.4 可执行的映射文件
18.8.5 自动挂载的可见性
18.8.6 重复的文件系统和自动挂载
18.8.7 自动的automount(除Linux之外其他系统上的NFSv3)
18.8.8 Linux的特定信息
18.9 推荐读物
18.10 习题
第19章 共享系统文件
19.1 共享什么
19.2 把文件复制到各处
19.2.1 NFS的选项
19.2.2 "推"系统和"拉"系统
19.2.3 rdist:推文件
19.2.4 rsync:更安全地传输文件
19.2.5 拉文件
19.3 LDAP:轻量级目录访问协议
19.3.1 LDAP数据的结构
19.3.2 LDAP的特点
19.3.3 LDAP的文档和规范
19.3.4 OpenLDAP:传统的开源LDAP
19.3.5 389 Directory Server:另一种开源LDAP服务器
19.3.6 用LDAP代替/etc/passwd和/etc/group
19.3.7 LDAP查询
19.3.8 LDAP和安全
19.4 NIS:网络信息服务
19.4.1 NIS模型
19.4.2 理解NIS的工作方式
19.4.3 NIS的安全
19.5 确定管理信息源的优先级
19.5.1 nscd:缓存查找的结果
19.6 推荐读物
19.7 习题
第20章 电子邮件
20.1 邮件系统
20.1.1 用户代理
20.1.2 提交代理
20.1.3 传输代理
20.1.4 本地投递代理
20.1.5 消息库
20.1.6 访问代理
20.1.7 内容太多,时间太少
20.2 剖析邮件消息
20.2.1 阅读邮件信头
20.3 SMTP协议
20.3.1 EHLO
20.3.2 SMTP出错代码
20.3.3 SMTP身份验证
20.4 邮件系统的设计
20.4.1 使用邮件服务器
20.5 邮件别名
20.5.1 从文件中获取别名
20.5.2 发邮件给文件
20.5.3 发邮件给程序
20.5.4 别名举例
20.5.5 散列的别名数据库
20.5.6 邮递列表和实现清单的软件
20.5.7 维护邮递列表的软件包
20.6 内容扫描:垃圾邮件和恶意软件
20.6.1 垃圾邮件
20.6.2 伪造邮件
20.6.3 消息隐私
20.6.4 垃圾邮件过滤
20.6.5 何时过滤
20.6.6 灰名单技术/DCC
20.6.7 SpamAssassin
20.6.8 黑名单
20.6.9 白名单
20.6.10 邮件过滤库
20.6.11 SPF和Sender ID
20.6.12 DomainKeys、DKIM和ADSP
20.6.13 MTA特有的反垃圾邮件功能
20.6.14 MailScanner
20.6.15 amavisd-new
20.6.16 测试MTA的扫描效力
20.7 电子邮件配置
20.8 sendmail
20.8.1 开关文件
20.8.2 运行模式
20.8.3 邮件队列
20.9 配置sendmail
20.9.1 m4预处理器
20.9.2 sendmail的配置
20.9.3 从.mc样板文件构建配置文件
20.10 sendmail基本配置原语
20.10.1 表和数据库
20.10.2 通用宏和功能
20.10.3 客户端选项
20.10.4 配置选项
20.10.5 sendmail中处理垃圾邮件的功能
20.10.6 sendmail中的milter配置
20.10.7 amavisd和sendmail的连接
20.11 安全与sendmail
20.11.1 所有权
20.11.2 权限
20.11.3 向文件和程序更安全地发邮件
20.11.4 隐私选项
20.11.5 运行一个chroot过的sendmail(真正严格的要求)
20.11.6 拒绝服务攻击
20.11.7 SASL:简单的身份验证和安全层
20.11.8 TLS:传输层安全
20.12 sendmail的性能
20.12.1 投递方式
20.12.2 队列分组和信封分割
20.12.3 队列运行器
20.12.4 控制平均负载
20.12.5 队列中无法投递的消息
20.12.6 内核调优
20.13 sendmail测试和调试
20.13.1 队列监视
20.13.2 日志机制
20.14 Exim
20.14.1 安装Exim
20.14.2 Exim的启动脚本
20.14.3 Exim的工具
20.14.4 Exim的配置语言
20.14.5 Exim的配置文件
20.14.6 全局的配置选项
20.14.7 ACL
20.14.8 ACL内容扫描
20.14.9 身份验证器
20.14.10 路由
20.14.11 传输
20.14.12 重试配置
20.14.13 重写配置
20.14.14 本地扫描功能
20.14.15 amavisd和Exim的连接
20.14.16 日志机制
20.14.17 调试机制
20.15 Postfix邮件系统
20.15.1 Postfix的体系结构
20.15.2 安全
20.15.3 Postfix命令和文档
20.15.4 配置Postfix
20.15.5 虚拟域
20.15.6 访问控制
20.15.7 反垃圾邮件和病毒
20.15.8 用amavisd做内容过滤
20.15.9 调试
20.16 DKIM配置
20.16.1 DKIM:域密钥身份识别邮件
20.16.2 DKIM邮件过滤
20.16.3 在amavisd-new中配置DKIM
20.16.4 sendmail中的DKIM
20.16.5 Exim中的DKIM
20.16.6 Postfix中的DKIM
20.17 综合的电子邮件解决方案
20.18 推荐读物
20.19 习题
第21章 网络管理和调试
21.1 网络故障的检测
21.2 ping:检查主机是否正常
21.3 SmokePing:ping的累计统计
21.4 traceroute:跟踪IP包
21.5 netstat:获得网络统计信息
21.5.1 检查接口的配置信息
21.5.2 监视网络连接的状态
21.5.3 标识正在监听的网络服务
21.5.4 检查路由表
21.5.5 查看各种网络协议运行的统计信息
21.6 检查工作接口的活动
21.7 包嗅探器
21.7.1 tcpdump:业界标准的包嗅探器
21.7.2 Wireshark和TShark:增强型的tcpdump
21.8 ICSI Netslyzr
21.9 网络管理协议
21.10 SNMP:简单网络管理协议
21.10.1 SNMP的组织结构
21.10.2 SNMP协议的操作
21.10.3 RMON:远程监视MIB
21.11 NET-SNMP代理程序
21.12 网络管理应用程序
21.12.1 NET-SNMP工具
21.12.2 SNMP数据的采集和绘图
21.12.3 Nagios:基于事件的SNMP和服务监视工具
21.12.4 终极网络监测软件包:仍在寻觅
21.12.5 商业管理平台
21.13 NetFlow:面向连接的监视
21.13.1 用nfdump和Nfsen监测NetFlow数据
21.13.2 在思科路由器上配置NetFlow
21.14 推荐读物
21.15 习题
第22章 安全
22.1 UNIX安全吗?
22.2 安全性是如何受损害的
22.2.1 社交工程
22.2.2 软件漏洞
22.2.3 配置错误
22.3 安全的技巧和思想
22.3.1 补丁
22.3.2 不必要的服务
22.3.3 远程的事件日志
22.3.4 备份
22.3.5 病毒和蠕虫
22.3.6 特洛伊木马
22.3.7 隐匿木马
22.3.8 包过滤
22.3.9 口令
22.3.10 警惕性
22.3.11 普遍原则
22.4 口令和用户账号
22.4.1 口令时限
22.4.2 组登录名和共享登录名
22.4.3 用户的shell
22.4.4 获得root权限的办法
22.5 PAM:验证奇才
22.5.1 系统对PAM的支持
22.5.2 配置PAM
22.5.3 Linux上详细配置举例
22.6 setuid程序
22.7 有效使用chroot
22.8 加强安全的工具
22.8.1 nmap:网络端口扫描程序
22.8.2 Nessus:下一代的网络扫描程序
22.8.3 John the Ripper:找出不安全的口令
22.8.4 hosts_acces:主机访问控制
22.8.5 Bro:可编程的网络入侵检测系统
22.8.6 Snort:流行的网络入侵检测系统
22.8.7 OSSEC:基于主机的入侵检测
22.9 强制访问控制(MAC)
22.9.1 SELinux
22.10 加密的安全工具
22.10.1 Kerberos:用于网络安全的统一方法
22.10.2 PGP:很好的私密性
22.10.3 SSH:安全的shell
22.10.4 Stunnel
22.11 防火墙
22.11.1 包过滤防火墙
22.11.2 如何过滤服务
22.11.3 状态检查防火墙
22.11.4 防火墙保险吗
22.12 Linux的防火墙功能
22.12.1 规则、链和表
22.12.2 规则目标
22.12.3 设置iptables防火墙
22.12.4 一个完整的例子
22.13 UNIX系统的IPFilter
22.14 VPN
22.14.1 IPSec隧道
22.14.2 VPN就够了吗
22.15 认证和标准
22.15.1 认证
22.15.2 安全标准
22.16 安全信息的来源
22.16.1 CERT:卡耐基梅隆大学的注册服务商标
22.16.2 SecurityFocus.com网站和BugTraq邮递列表
22.16.3 施耐德的安全博客
22.16.4 SANS:系统管理、网络和安全协会
22.16.5 厂商特有的安全资源
22.16.6 其他邮递列表和网站
22.17 如何对付站点攻击
22.18 推荐读物
22.19 习题
第23章 Web主机托管
23.1 Web主机托管的基本知识
23.1.1 Web上资源的位置
23.1.2 统一资源定位符
23.1.3 HTTP工作原理
23.1.4 即时生成内容
23.1.5 应用服务器
23.1.6 负载均衡
23.2 HTTP服务程序的安装
23.2.1 选择服务器软件
23.2.2 安装Apache
23.2.3 配置Apache
23.2.4 运行Apache
23.2.5 分析日志文件
23.2.6 高性能主机托管的静态内容优化
23.3 虚拟接口
23.3.1 使用基于名字的虚拟主机
23.3.2 配置虚拟接口
23.3.3 告诉Apache有关虚拟接口的信息
23.4 SSL
23.4.1 产生签发证书的请求
23.4.2 配置Apache使用SSL
23.5 缓存和代理服务程序
23.5.1 Squid缓存和代理服务器
23.5.2 设置Squid
23.5.3 Apache的反向代理
23.6 超越上限
23.6.1 云计算
23.6.2 主机代管
23.6.3 内容分发网络
23.7 习题
第三部分 其他管理技术
第24章 虚拟化技术
24.1 虚拟技术的种类
24.1.1 全虚拟化
24.1.2 半虚拟化
24.1.3 操作系统级虚拟化
24.1.4 原生虚拟化
24.1.5 云计算
24.1.6 动态迁移
24.1.7 虚拟化技术比较
24.2 虚拟化技术的好处
24.3 实施方案
24.4 Linux虚拟化
24.4.1 Xen简介
24.4.2 Xen基础知识
24.4.3 用virt-install安装Xen的guest系统
24.4.4 Xen动态迁移
24.4.5 KVM
24.4.6 KVM的安装和使用
24.5 Solaris的zone和container
24.6 AIX的WPAR
24.7 HP-UX的IVM
24.7.1 创建和安装虚拟机
24.8 VMWARE
24.9 亚马逊的AWS
24.10 推荐读物
24.11 习题
第25章 X窗口系统
25.1 X显示管理器
25.2 运行一个X应用程序
25.2.1 环境变量DISPLAY
25.2.2 客户机身份验证
25.2.3 用SSH转发X连接
25.3 配置X服务器
25.3.1 Device段
25.3.2 Monitor段
25.3.3 Screen段
25.3.4 InputDevice段
25.3.5 ServerLayout段
25.3.6 xrandr:X服务器的配置工具
25.3.7 内核模式设定
25.4 故障排查和调试
25.4.1 X的特殊键盘组合
25.4.2 X服务器出问题
25.5 桌面环境简述
25.5.1 KDE
25.5.2 GNOME
25.5.3 KDE和GNOME谁更好
25.6 推荐读物
25.7 习题
第26章 打印
26.1 打印系统的体系结构
26.1.1 主要的打印系统
26.1.2 打印
26.2 CUPS的打印
26.2.1 打印系统的界面
26.2.2 打印队列
26.2.3 多台打印机和打印队列
26.2.4 打印机实例
26.2.5 网络打印
26.2.6 过滤器
26.2.7 CUPS服务器的管理
26.2.8 设置网络打印服务器
26.2.9 自动配置打印机
26.2.10 配置网络打印机
26.2.11 打印机的配置举例
26.2.12 设置打印机的类
26.2.13 关闭服务
26.2.14 其他配置工作
26.3 桌面打印环境
26.3.1 kprinter:打印文档
26.3.2 Konqueror和打印
26.4 SystemⅤ的打印
26.4.1 概述
26.4.2 打印目的地及打印类
26.4.3 lp简述
26.4.4 lpsched与lpshut:启动和停止打印
26.4.5 lpadmin:配置打印环境
26.4.6 lpadmin举例
26.4.7 lpstat:获取状态信息
26.4.8 cancel:删除打印作业
26.4.9 accept和reject:控制假脱机处理
26.4.10 enable和disable:控制打印
26.4.11 lpmove:转移作业
26.4.12 接口程序
26.4.13 lp系统混乱状况的处理方法
26.5 BSD和AIX的打印
26.5.1 BSD打印系统的体系结构概述
26.5.2 控制打印环境
26.5.3 lpd:假脱机打印程序
26.5.4 lpr:提交打印作业
26.5.5 lpq:查看打印队列
26.5.6 lprm:删除打印作业
26.5.7 lpc:管理性修改
26.5.8 /etc/printcap文件
26.5.9 printcap变量
26.6 漫长和奇特的历程
26.6.1 打印的历史和打印系统的出现
26.6.2 打印机的多样性
26.7 常用的打印软件
26.8 打印机的语言
26.8.1 PostScript
26.8.2 PCL
26.8.3 PDF
26.8.4 XPS
26.8.5 PJL
26.8.6 打印机驱动程序及其对PDL的处理
26.9 PPD文件
26.10 纸型
26.11 实际使用打印机的问题
26.11.1 打印机的选择
26.11.2 GDI打印机
26.11.3 双面打印
26.11.4 其他打印机配件
26.11.5 串口和并口打印机
26.11.6 网络打印机
26.11.7 给打印机的其他建议
26.12 故障排查的技巧
26.12.1 重启打印守护进程
26.12.2 日志
26.12.3 直接打印的问题
26.12.4 网络打印的问题
26.12.5 发行版本特有的问题
26.13 推荐读物
26.14 习题
第27章 数据中心基础
27.1 数据中心的可靠性级别
27.2 冷却
27.2.1 电子设备
27.2.2 照明设备
27.2.3 操作人员
27.2.4 总的热负荷
27.2.5 冷热通道
27.2.6 湿度
27.2.7 环境监视
27.3 供电
27.3.1 机架的供电要求
27.3.2 kVA和kW
27.3.3 远程控制
27.4 机架
27.5 工具
27.6 推荐读物
27.7 习题
第28章 绿色IT
28.1 绿色IT的兴起
28.2 绿色IT的生态金字塔
28.3 绿色IT策略:数据中心
28.3.1 应用合并
28.3.2 服务器合并
28.3.3 SAN存储
28.3.4 服务器虚拟化
28.3.5 随用随开的服务器
28.3.6 细粒度使用和容量规划
28.3.7 优化能源的服务器配置
28.3.8 云计算
28.3.9 免费冷却
28.3.10 数据中心的高效冷却
28.3.11 停运时的降级模式
28.3.12 延长设备寿命
28.3.13 数据中心的较高温度
28.3.14 低功率设备
28.4 绿色IT策略:用户空间
28.5 绿色IT的朋友
28.6 习题
第29章 性能分析
29.1 做什么可以提高性能
29.2 影响性能的因素
29.3 如何分析性能问题
29.4 系统性能检查
29.4.1 盘点硬件
29.4.2 收集性能数据
29.4.3 CPU使用情况分析
29.4.4 系统如何管理内存
29.4.5 内存使用情况分析
29.4.6 磁盘I/O分析
29.4.7 xdd:分析磁盘子系统的性能
29.4.8 sar:连续采集和报告统计信息
29.4.9 nmon和nmon_analyser:AIX上的监视工具
29.4.10 选择Linux的I/O调度器
29.4.11 oprofile:详细剖析Linux系统
29.5 求助!系统为何越来越慢
29.6 推荐读物
29.7 习题
第30章 同Windows协作
30.1 从Windows登录到UNIX系统
30.2 远程桌面访问
30.2.1 在Windows计算机上运行X服务器
30.2.2 VNC:虚拟网络计算
30.2.3 Windows RDP:远程桌面协议
30.3 运行Windows和类似Windows的应用
30.3.1 双重引导,为何不该用
30.3.2 微软Office的替代软件
30.4 在Windows上使用命令行工具
30.5 Windows遵守电子邮件和Web标准
30.6 通过Samba和CIFS共享文件
30.6.1 Samba:UNIX的CIFS服务器
30.6.2 Samba的安装
30.6.3 文件名编码
30.6.4 用户身份验证
30.6.5 基本的文件共享
30.6.6 用户组共享
30.6.7 用微软的DFS做透明重定向
30.6.8 smbclient:简单的CIFS客户端
30.6.9 Linux的客户端对CIFS的支持
30.7 用Samba共享打印机
30.7.1 从Windows安装打印机驱动程序
30.7.2 从命令行安装打印机驱动程序
30.8 调试Samba
30.9 Active Directory身份验证
30.9.1 准备好集成AD
30.9.2 配置Kerberos
30.9.3 Samba作为Active Directory的域成员
30.9.4 配置PAM
30.9.5 winbind的备选方案
30.10 推荐读物
30.11 习题
第31章 串行设备和串行终端
31.1 RS-232C标准
31.2 备选连接器
31.2.1 DB-9连接器
31.2.2 RJ-45连接器
31.3 硬载波和软载波
31.4 硬流控
31.5 串行设备文件
31.6 setserial:把串口参数通知给驱动程序
31.7 伪终端
31.8 硬件终端的配置
31.8.1 登录过程
31.8.2 /etc/ttytype文件
31.8.3 /etc/gettytab文件
31.8.4 /etc/gettydefs文件
31.8.5 /etc/inittab文件
31.8.6 Linux上的getty配置
31.8.7 Ubuntu的Upstart
31.8.8 Solaris和sacadm
31.9 特殊字符和终端驱动程序
31.10 stty:设置终端的选项
31.11 tset:自动设置选项
31.12 僵住的终端
31.13 调试串行线
31.14 连接到串行设备的控制台
31.15 习题
第32章 管理、政策与政治
32.1 IT的目标
32.1.1 预算和支出
32.1.2 IT政策
32.1.3 SLA
32.2 IT职能机构的组成
32.2.1 基础:工单和任务管理系统
32.2.2 工单系统的常见功能
32.2.3 工单的所有权
32.2.4 用户对工单系统的接受程度
32.2.5 工单系统举例
32.2.6 工单分派
32.2.7 IT内部的技能培养
32.2.8 时间管理
32.3 咨询组
32.3.1 服务范围
32.3.2 咨询可用性
32.3.3 咨询上瘾
32.4 企业构架师
32.4.1 过程可再现
32.4.2 留下记录
32.4.3 认可文档的重要性
32.4.4 定制和编程
32.4.5 保持系统干净整洁
32.5 运行组
32.5.1 瞄准最短停机时间
32.5.2 依靠文档
32.5.3 重用或淘汰老硬件
32.5.4 维护本地文档
32.5.5 保持环境独立
32.5.6 自动化
32.6 管理的职能
32.6.1 领导
32.6.2 人事管理
32.6.3 聘用
32.6.4 解聘
32.6.5 人事管理的机制
32.6.6 质量控制
32.6.7 管理但别管闲事
32.6.8 社区关系
32.6.9 管理上级
32.6.10 采购
32.6.11 化解矛盾
32.7 政策和规程
32.7.1 政策和规程之间的区别
32.7.2 政策的最佳实践
32.7.3 规程
32.8 灾难恢复
32.8.1 风险评估
32.8.2 灾难管理
32.8.3 处理灾难的人员准备
32.8.4 电源和HVAC
32.8.5 互联网连接的冗余性
32.8.6 安全事件
32.9 合规:规章与标准
32.9.1 ITIL:信息技术基础设施库
32.9.2 NIST:国家标准和技术研究所
32.10 法律问题(美国)
32.10.1 隐私
32.10.2 落实政策
32.10.3 控制=义务
32.10.4 软件许可证
32.11 组织、会议及其他资源
32.12 推荐读物
32.13 习题
附录A 系统管理简史
附录B 为AIX辩护
跋