Linux系统管理技术手册(第二版).pdf
第一部分 基本管理技术 第1章 从何处入手 1.1 读者的知识背景 1.2 linux同unix的关系 1.3 历史上的linux 1.4 linux的发行版本 1.4.1 最好的发行版本是什么 1.4.2 特定于发行版本的系统管理工具 1.5 表示法和印刷约定 1.6 从哪里获得信息 1.6.1 手册页的组织 1.6.2 man:读取手册页 1.6.3 其他的linux信息资源 1.7 如何找到和安装软件 1.8 系统管理员的基本任务 1.8.1 增加、删除以及管理用户账号 1.8.2 增删硬件 1.8.3 执行备份 1.8.4 安装和更新软件 1.8.5 监视系统 . 1.8.6 故障诊断 1.8.7 维护本地文档 1.8.8 时刻警惕系统安全 1.8.9 帮助用户 1.9 重压下的系统管理员 1.10 推荐读物 1.11 习题 第2章 引导和关机 2.1 引导 2.1.1 自动引导和手工引导 2.1.2 引导过程的步骤 2.1.3 初始 化内核 2.1.4 配置硬件 2.1.5 内核线程 2.1.6 操作员干预(仅限手工引导) 2.1.7 执行启动脚本 2.1.8 多用户运行 2.2 引导pc 2.3 引导加载程序:lilo和grub 2.3.1 grub:全面统一的引导加载程序 2.3.2 lilo:传统的linux引导加载程序 2.3.3 内核选项 2.3.4 pc上的多重引导 2.3.5 grub的多重引导配置 2.3.6 lilo的多重引导配置 2.4 引导单用户模式 2.4.1 用grub引导单用户模式 2.4.2 用lilo引导单用户模式 2.5 启动脚本 2.5.1 init和运行级 2.5.2 red hat和fedora的启动脚本 2.5.3 suse的启动脚本 2.5.4 debian和ubuntu的启动脚本 2.6 重新引导和关机 2.6.1 关闭电源 2.6.2 shutdown:停止系统的妥善方式 2.6.3 halt:关闭系统的更简单方式 2.6.4 reboot:快速的重新启动 2.6.5 telinit:改变init的运行级 2.6.6 poweroff:请linux关闭电源 2.7 习题 第3章 超级用户的权力 3.1 文件和进程的归属关系 3.2 超级用户 3.3 选择root的口令 3.4 成为root用户 3.4.1 su:替换用户身份 3.4.2 sudo:受限的su 3.5 其他的伪用户 3.5.1 bin:系统命令的老属主 3.5.2 daemon:无特权系统软件的属主 3.5.3 nobody:普通nfs用户 3.6 习题 第4章 进程控制 4.1 进程的组成部分 4.1.1 pid:进程的id号 4.1.2 ppid:父pid 4.1.3 uid和euid: 真实的和有效的用户id 4.1.4 gid和egid:真实的和有效的组id 4.1.5 谦让度 4.1.6 控制终端 4.2 进程的生命周期 4.3 信号 4.4 kill和killall: 发送信号 4.5 进程的状态 4.6 nice和renice: 影响调度优先级 4.7 ps:监视进程 4.8 top:更好地监视进程 4.9 /proc文件系统 4.10 strace:追踪信号和系统调用 4.11 失控进程 4.12 推荐读物 4.13 习题 第5章 文件系统 5.1 路径名称 5.2 安装和卸载文件系统 5.3 文件树的组织 5.4 文件类型 5.4.1 普通文件 5.4.2 目录 5.4.3 字符设备文件和块设备文件 5.4.4 本地域套接口 5.4.5 有名管道 5.4.6 符号链接 5.5 文件属性 5.5.1 权限位 5.5.2 setuid和setgid位 5.5.3 粘附位 5.5.4 查看文件属性 5.5.5 chmod:改变权限 5.5.6 chown:改变归属关系和组 5.5.7 umask:分配默认的权限 5.5.8 额外的标志 5.6 访问控制列表 5.6.1 acl概述 5.6.2 默认项 5.7 习题 第6章 添加新用户 6.1 /etc/passwd文件 6.1.1 登录名 6.1.2 加密的口令 6.1.3 uid号 6.1.4 默认的gid号 6.1.5 gecos字段 6.1.6 主目录 6.1.7 登录shell 6.2 /etc/shadow文件 6.3 /etc/group文件 6.4 添加用户 6.4.1 编辑passwd和shadow文件 6.4.2 编辑/etc/group文件 6.4.3 设置初始口令 6.4.4 创建用户的主目录 6.4.5 复制默认启动文件 6.4.6 设置用户的邮件主目录 6.4.7 验证新的登录 6.4.8 记录用户的状态和联系信息 6.5 删除用户 6.6 禁止登录 6.7 账号管理工具 6.8 习题 第7章 增加硬盘 7.1 硬盘接口 7.1.1 pata接口 7.1.2 sata接口 7.1.3 scsi接口 7.1.4 scsi和ide的比较 7.2 硬盘的几何结构 7.3 linux文件系统 7.3.1 ext2fs和ext3fs 7.3.2 reiserfs 7.3.3 xfs和jfs 7.4 硬盘安装过程概述 7.4.1 连接硬盘 7.4.2 格式化硬盘 7.4.3 标记硬盘和硬盘分区 7.4.4 在硬盘分区内创建文件系统 7.4.5 安装文件系统 7.4.6 设置自动安装 7.4.7 启用交换分区 7.5 hdparm:设置ide接口参数 7.6 fsck: 检查和修复文件系统 7.7 向linux增加硬盘:一步步的指导 7.8 高级硬盘管理:raid和lvm 7.8.1 linux的软raid 7.8.2 管理逻辑卷 7.8.3 配置lvm和raid的例子 7.8.4 处理故障硬盘 7.8.5 重新分配存储空间 7.9 安装usb设备 7.10 习题 第8章 周期性进程 8.1 cron:按时间表执行命令 8.2 crontab文件的格式 8.3 crontab管理 8.4 cron的常见用途 8.4.1 清理文件系统 8.4.2 配置文件的网络分布 8.4.3 循环日志文件 8.5 其他的日程安排程序:anacron和fcron 8.6 习题 第9章 备份 9.1 备份基本原理 9.1.1 从一台机器执行所有的转储 9.1.2 给备份介质加卷标 9.1.3 选择合理的备份间隔 9.1.4 仔细选择文件系统 9.1.5 在一卷磁带上做日常转储 9.1.6 使文件系统小于转储设备 9.1.7 异地保存磁带 9.1.8 保护备份 9.1.9 执行转储期间限制活动 9.1.10 检查磁带 9.1.11 发掘磁带的寿命 9.1.12 为备份而设计数据 9.1.13 作最坏的准备 9.2 备份设备和介质 9.2.1 光盘:cd-r/rw、dvd±r/rw和dvd-ram 9.2.2 可移动硬盘(usb和火线) 9.2.3 小型磁带机:8毫米磁带和dds/dat 9.2.4 dlt和s-dlt 9.2.5 ait和sait 9.2.6 vxa和vxa-x 9.2.7 lto 9.2.8 自动选带机、自动换带机以及磁带库 9.2.9 硬盘 9.2.10 介质类型小结 9.2.11 设备选型 9.3 用dump建立增量备份机制 9.3.1 转储文件系统 9.3.2 转储顺序 9.4 用restore从转储中恢复 9.4.1 恢复单个文件 9.4.2 恢复整个文件系统 9.5 为系统升级而执行转储和恢复 9.6 使用其他存档程序 9.6.1 tar: 给文件打包 9.6.2 cpio:古老的存档工具 9.6.3 dd:处理位流 9.7 在一卷磁带上使用多个文件 9.8 bacula 9.8.1 bacula的模型 9.8.2 设置bacula 9.8.3 安装数据库和bacula的守护进程 9.8.4 配置bacula的守护进程 9.8.5 bacular-dir.conf:配置控制文件 9.8.6 bacula-sd.conf:配置存储守护进程 9.8.7 bconsole.conf:配置控制台 9.8.8 安装和配置客户端的文件守护进程 9.8.9 启动bacula的守护进程 9.8.10 向存储池添加介质 9.8.11 执行一次手工备份 9.8.12 执行一次恢复工作 9.8.13 监视和调试bacula的配置 9.8.14 bacula的替换工具 9.9 商用备份产品 9.9.1 adsm/tsm 9.9.2 veritas 9.9.3 其他选择 9.10 推荐读物 9.11 习题 第10章 系统日志与日志文件 10.1 日志记录的策略 10.1.1 扔掉日志文件 10.1.2 轮换日志文件 10.1.3 存档日志文件 10.2 linux的日志文件 10.2.1 特殊的日志文件 10.2.2 内核和启动日志 10.3 logrotate: 管理日志文件 10.4 syslog:系统事件的日志程序 10.4.1 syslog的其他替代方案 10.4.2 syslog的体系结构 10.4.3 配置syslogd 10.4.4 设计站点日志方案 10.4.5 配置文件举例 10.4.6 syslog输出的样本 10.4.7 使用syslog的软件 10.4.8 调试syslog 10.4.9 在程序中使用syslog 10.5 分析日志文件 10.6 习题 第11章 软件和配置管理 11.1 linux基本安装 11.1.1 从网络引导pc 11.1.2 为linux设置pxe 11.1.3 非pc的网络引导 11.1.4 kickstart:rhel和fedora的自动安装程序 11.1.5 autoyast:suse的自动安装工具 11.1.6 debian和ubuntu的安装程序 11.1.7 从主控系统安装 11.2 无盘客户机 11.3 软件包管理 11.3.1 软件包管理系统 11.3.2 rpm:管理rpm软件包 11.3.3 dpkg:管理debian的软件包 11.4 高级软件包管理系统 11.4.1 软件包的库 11.4.2 rhn:red hat网络 11.4.3 apt:高级软件包工具 11.4.4 配置apt-get 11.4.5 /etc/apt/sources.list文件的例子 11.4.6 使用代理扩展apt-get 11.4.7 设置内部apt服务器 11.4.8 自动执行apt-get 11.4.9 yum:管理rpm的发布 11.5 版本控制 11.5.1 创建备份文件 11.5.2 正式的版本控制系统 11.5.3 rcs:版本控制系统 11.5.4 cvs:并发版本系统 11.5.5 subversion:做得好的cvs 11.6 本地化和配置 11.6.1 本地化的组织 11.6.2 测试 11.6.3 本地编译软件 11.6.4 发布本地软件 11.6.5 解决时间安排上的问题 11.7 配置管理工具 11.7.1 cfengine:计算机免疫系统 11.7.2 lcfg:大规模配置系统 11.7.3 arusha项目(ark) 11.7.4 template tree :cfengine的帮手 11.7.5 dmtf/cim:公共信息模型 11.8 通过nfs共享软件 11.8.1 软件包的名字空间 11.8.2 依赖关系的管理 11.8.3 封装脚本 11.8.4 实现工具 11.9 推荐软件 11.10 推荐读物 11.11 习题 第二部分 网络管理技术 第12章 tcp/ip网络 12.1 tcp/ip和internet 12.1.1 简要的历史回顾 12.1.2 当今internet的管理方法 12.1.3 网络标准和文献 12.2 连网技术概述 12.3 分组和封装 12.3.1 链路层 12.3.2 包的寻址方式 12.3.3 端口 12.3.4 地址类型 12.4 ip地址详解 12.4.1 ip地址分类 12.4.2 子网和网络掩码 12.4.3 ip地址危机 12.4.4 cidr:无类域间路由 12.4.5 地址分配 12.4.6 私用地址和nat 12.4.7 ipv6寻址方式 12.5 路由选择 12.5.1 路由表 12.5.2 icmp重定向 12.6 arp:地址解析协议 12.7 将一台主机加入网络 12.7.1 分配主机名和ip地址 12.7.2 ifconfig:配置网络接口 12.7.3 mii-tool: 配置自动协商和其他介质特有的选项 12.7.4 route:配置静态路由 12.7.5 默认路由 12.7.6 配置dns 12.7.7 linux连网协议栈 12.8 特定于发行版本的网络配置 12.8.1 red hat和fedora的网络配置 12.8.2 suse的网络配置 12.8.3 debian和ubuntu的网络配置 12.9 dhcp:动态主机配置协议 12.9.1 dhcp软件 12.9.2 dhcp的工作方式 12.9.3 isc的dhcp服务器 12.10 linux的动态重新配置和调整 12.11 安全问题 12.11.1 ip转发 12.11.2 icmp重定向 12.11.3 源路由 12.11.4 广播ping和其他形式的定向广播 12.11.5 ip欺骗 12.11.6 基于主机的防火墙 12.11.7 虚拟私用网络 12.11.8 与安全有关的内核变量 12.12 linux的nat 12.13 ppp:点对点协议 12.13.1 解决ppp的性能问题 12.13.2 用ppp连网 12.13.3 让主机使用ppp 12.13.4 控制ppp链路 12.13.5 分配地址 12.13.6 路由选择 12.13.7 确保安全性 12.13.8 使用对话脚本 12.13.9 linux上的ppp配置 12.14 linux连网配置的特殊之处 12.15 推荐读物 12.16 习题 第13章 路由选择 13.1 近观包转发 13.2 路由守护进程和路由协议 13.2.1 距离向量协议 13.2.2 链路状态协议 13.2.3 代价度量 13.2.4 内部和外部协议 13.3 内部路由协议巡礼 13.3.1 rip:路由信息协议 13.3.2 rip-2:路由选择信息协议第2版 13.3.3 ospf:开放最短路径优先 13.3.4 igrp和eigrp:内部网关路由协议 13.3.5 is-is:iso的“标准” 13.3.6 mospf、dvmrp和pim:多播路由协议 13.3.7 路由器发现协议 13.4 routed:使用rip的路由守护进程 13.5 gated:更好的路由守护进程 13.6 路由策略的选择标准 13.7 cisco路由器 13.8 推荐读物 13.9 习题 第14章 网络硬件 14.1 选择lan、wan、还是man 14.2 以太网:常见的局域网 14.2.1 以太网的工作方式 14.2.2 以太网拓扑结构 14.2.3 无屏蔽双绞线 14.2.4 连接和扩展以太网 14.3 无线:流动人士的lan 14.3.1 无线网络的安全 14.3.2 无线交换机 14.4 fddi:令人失望且昂贵的局域网 14.5 atm:有前途的(但被痛苦地击败的)lan 14.6 帧中继:被牺牲掉的wan 14.7 isdn:本土上的wan 14.8 dsl和cm:大众的wan 14.9 网络的前景 14.10 网络测试和调试 14.11 建筑物布线 14.11.1 utp电缆的选择 14.11.2 到办公室的连接 14.11.3 布线标准 14.12 网络设计问题 14.12.1 网络结构与建筑物结构 14.12.2 现成的网络 14.12.3 扩展 14.12.4 拥塞 14.12.5 维护和建档 14.13 管理问题 14.14 推荐的厂商 14.14.1 电缆和连接器 14.14.2 测试仪器 14.14.3 路由器/交换机 14.15 推荐读物 14.16 习题 第15章 域名系统 15.1 dns速成:添加新机器 15.2 dns的历史 15.3 谁需要dns 15.4 dns名字空间 15.5 dns的工作原理 15.6 dns的新特性 15.7 dns数据库 15.8 bind软件 15.9 设计dns环境 15.10 bind客户机问题 15.11 配置bind服务器 15.12 bind配置举例 15.13 启动named 15.14 更新区文件 15.15 安全问题 15.16 测试和调试 15.17 发行版本的特定信息 15.18 推荐读物 15.19 习题 第16章 网络文件系统 16.1 nfs概述 16.2 服务器端nfs 16.3 客户端nfs 16.4 nfsstat:转储nfs统计信息 16.5 专用nfs文件服务器 16.6 自动安装 16.7 推荐读物 16.8 习题 第17章 共享系统文件 17.1 共享什么 17.2 nscd:缓存查找的结果 17.3 把文件复制到各处 17.4 nis:网络信息服务 17.5 ldap:轻量级目录访问协议 17.6 推荐读物 17.7 习题 第18章 电子邮件 18.1 邮件系统 18.2 剖析邮件消息 18.3 邮件基本原理 18.4 邮件别名 18.5 邮递列表和实现清单的软件 18.6 sendmail:电子邮件的指挥 18.7 sendmail的配置 18.8 sendmail基本配置原语 18.9 sendmail高级配置原语 18.10 sendmail中与垃圾邮件相关的功能 18.11 配置文件举例 18.12 安全与sendmail 18.13 sendmail的性能 18.14 sendmail的统计信息、测试和调试 18.15 exim邮件系统 18.16 postfix邮件系统 18.17 推荐读物 18.18 习题 第19章 网络管理和调试 19.1 网络故障的检测 19.2 ping:检查主机是否正常 19.3 traceroute:跟踪ip包 19.4 netstat:获得网络统计信息 19.5 sar:检查工作接口的活动 19.6 包探测器 19.7 网络管理协议 19.8 snmp:简单网络管理协议 19.9 net-snmp代理程序 19.10 网络管理应用程序 19.11 推荐读物 19.12 习题 第20章 安全 20.1 linux安全吗 20.2 安全性是如何受损害的 20.3 认证和标准 20.4 安全的技巧和思想 20.5 /etc/passwd和/etc/shadow文件里的安全问题 20.6 posix能力 20.7 setuid程序 20.8 重要文件的权限 20.9 形形色色的安全事务 20.10 加强安全的工具 20.11 加密的安全工具 20.12 防火墙 20.13 linux的防火墙功能: ip tables 20.14 vpn 20.15 强化安全的linux发行版本 20.16 如何对付站点攻击 20.17 安全信息的来源 20.18 推荐读物 20.19 习题 第21章 web主机托管和internet服务器 21.1 web主机托管的基本知识 21.2 http服务程序的安装 21.3 虚拟接口 21.4 ssl 21.5 缓存和代理服务程序 21.6 匿名ftp服务程序的设置 21.7 习题 第三部分 其他管理技术 第22章 x窗口系统 22.1 x显示管理器 22.2 运行一个x应用程序 22.3 配置x服务器 22.4 故障排查和调试 22.5 桌面环境简述 22.6 推荐读物 22.7 习题 第23章 打印 23.1 复杂的打印机 23.2 打印机的语言 23.3 cups的体系结构 23.4 cups服务器的管理 23.5 故障排查的技巧 23.6 实际使用打印机的问题 23.7 给打印机的其他建议 23.8 kde的打印功能 23.9 推荐读物 23.10 习题 第24章 维护与环境 24.1 维护基础 24.2 维护合同 24.3 处理电路板的知识 24.4 监视器 24.5 内存模块 24.6 预防性维护 24.7 环境 24.8 电源 24.9 机架 24.10 数据中心标准 24.11 工具 24.12 推荐读物 24.13 习题 第25章 性能分析 25.1 做什么可以提高性能 25.2 影响性能的因素 25.3 全面检查系统性能 25.4 求助!系统为何越来越慢 25.5 推荐读物 25.6 习题 第26章 同windows协作 26.1 从windows登录到linux系统 26.2 远程桌面访问 26.3 运行windows和类似windows的应用 26.4 在windows上用命令行工具 26.5 windows遵守电子邮件和web标准 26.6 通过samba和cifs共享文件 26.7 用samba共享打印机 26.8 samba的调试 26.9 推荐读物 26.10 习题 第27章 串行设备 27.1 串行标准 27.2 替代连接器 27.3 硬载波和软载波 27.4 硬件流控 27.5 电缆长度 27.6 串行设备文件 27.7 setserial:把串口参数通知给驱动程序 27.8 串行设备的软件配置 27.9 硬件终端的配置 27.10 特殊字符和终端驱动程序 27.11 stty:设置终端的选项 27.12 tset:自动设置选项 27.13 怎样解开僵住的终端 27.14 调制解调器 27.15 调试串行线 27.16 其他常用的i/o端口 27.17 习题 第28章 驱动程序和内核 28.1 内核的适应性 28.2 添加设备驱动程序 28.3 配置内核的原因和方法 28.4 调整linux内核参数 28.5 构造linux内核 28.6 添加linux设备驱动程序 28.7 可加载内核模块 28.8 热插拔 28.9 设置内核引导参数 28.10 推荐读物 28.11 习题 第29章 守护进程 29.1 init:基本守护进程 29.2 cron和atd:调度命令 29.3 inetd和xinetd:管理守护进程 29.4 内核的守护进程 29.5 打印守护进程 29.6 文件服务守护进程 29.7 管理数据库守护进程 29.8 电子邮件守护进程 29.9 远程登录和命令执行守护进程 29.10 引导和配置守护进程 29.11 其他网络守护进程 29.12 ntpd:时间同步守护进程 29.13 习题 第30章 管理政策与策略 30.1 皆大欢喜 30.2 it职能机构的组成 30.3 管理的职能 30.4 行政的职能 30.5 开发的职能 30.6 运行的职能 30.7 支持工作 30.8 建立文档 30.9 需求跟踪和故障工单系统 30.10 灾难恢复 30.11 书面政策 30.12 法律问题(美国) 30.13 软件专利 30.14 标准 30.15 linux文化 30.16 主流的linux 30.17 组织、会议及其他资源 30.18 推荐读物 30.19 习题