目 录
译者序
前言
第一部分 邮件服务
第1章 了解邮件服务 1
1.1 邮件服务术语 1
1.1.1 在邮件配置中的系统 1
1.1.2 用户代理 4
1.1.3 邮件传输代理 4
1.1.4 邮件处理程序 4
1.1.5 域 5
1.1.6 邮件地址 7
1.1.7 信箱 7
1.1.8 别名 8
1.2 邮件服务器组件 10
1.3 邮件服务综述 14
1.3.1 邮件服务剖析 14
1.3.2 邮件服务如何工作 15
1.3.3 sendmail 如何工作 16
1.3.4 邮件寻址如何工作 17
第2章 规划邮件服务 19
2.1 只有本地邮件 19
2.2 本地邮件和一个uucp连接 19
2.3 一个域. 两个网络和一个路由器 20
2.4 两个域和一个网关 21
第3章 设置和管理邮件服务 22
3.1 设置邮件服务准备 22
3.2 设置邮件服务 22
3.2.1 设置邮件服务器 23
3.2.2 设置邮件客户 23
3.2.3 设置邮件主机 24
3.2.4 设置中继主机 24
3.2.5 设置网关 25
3.2.6 创建邮件别名 25
3.2.7 设置NIS别名文件 25
3.2.8 设置本地邮件别名文件 26
3.2.9 设置DNS别名文件 27
3.2.10 设置邮局管理员别名 27
3.3 测试邮件配置 28
3.4 管理邮件配置 28
3.4.1 邮局管理员职责 28
3.4.2 邮件队列 29
3.4.3 系统日志 30
3.5 邮件配置问题解答 32
3.5.1 检查别名 32
3.5.2 测试sendmail 33
3.5.3 验证到其他系统的连接 33
3.5.4 其他诊断信息 33
第4章 自定义sendmail配置文件 34
4.1 sendmail功能概述 34
4.1.1 与外部世界的接口 34
4.1.2 sendmail 程序工作 35
4.1.3 消息标题编辑 36
4.1.4 配置文件 36
4.2 sendmail实现 36
4.2.1 向文件和程序发送邮件 36
4.2.2 消息调度 36
4.2.3 消息发送 37
4.2.4 消息排队 37
4.2.5 配置概述 37
4.3 sendmail参数介绍 38
4.3.1 队列间隔 38
4.3.2 后台模式 38
4.3.3 可选的配置文件 38
4.4 调整配置参数 38
4.4.1 时间值 38
4.4.2 发送模式 39
4.4.3 负载限制 39
4.4.4 日志级别 40
4.4.5 文件模式 40
4.5 配置文件 41
4.5.1 sendmail配置文件部分 41
4.5.2 sendmail配置文件例子 42
4.5.3 配置文件文法 49
4.5.4 特别的标题行 51
4.5.5 地址重写规则 52
4.5.6 构造新的配置文件 58
4.6 命令行参数 59
4.7 配置选项 60
4.8 邮件处理程序标志 61
第二部分 NIS+
第5章 NIS+环境介绍 63
5.1 NIS和NIS+比较 63
5.2 NIS+名字空间 64
5.3 NIS+安全 69
5.3.1 NIS+身份验证 69
5.3.2 访问权限 71
5.4 NIS+更新模块 72
5.5 NIS和NIS+兼容性 72
5.6 有名服务开关 73
5.7 NIS+管理 74
5.7.1 AdminSuite 74
5.7.2 NIS+命令 75
第6章 设置NIS+客户 79
6.1 安全考虑 79
6.2 预请求 80
6.3 NIS+客户凭证设置步骤 80
6.4 NIS+客户设置步骤 80
6.5 设置验证 82
6.5.1 验证Cache管理器在运行 83
6.5.2 检查/var/nis目录内容 83
6.5.3 验证NIS+命令成功 83
第三部分 自动加载程序服务
第7章 了解自动加载程序 85
7.1 NFS术语 85
7.1.1 服务器和客户系统 85
7.1.2 加载点 86
7.1.3 虚拟文件系统表 86
7.1.4 加载和卸载 86
7.1.5 加载表(/etc/mnttab) 86
7.2 NIS+术语 86
7.3 自动加载术语 87
7.3.1 自动加载程序 87
7.3.2 自动加载映射 87
7.4 自动加载映射和加载点 87
7.4.1 默认的自动加载映射 87
7.4.2 间接映射 90
7.4.3 直接映射 90
7.4.4 映射项目文法及快捷方式 91
7.5 自动加载程序如何工作 93
7.6 如何规划自动加载 95
7.6.1 推荐的自动加载策略 95
7.6.2 使用自动加载程序的预请求 96
第8章 设置自动加载程序 97
8.1 设置自动加载服务器系统 97
8.2 设置自动加载客户系统 97
8.3 显示有关NIS+自动加载映射信息 97
8.3.1 显示NIS+自动加载映射的格式 97
8.3.2 显示NIS+自动加载映射的内容 98
8.4 设置NIS+自动加载映射 98
8.4.1 设置auto_home映射 99
8.4.2 设置间接映射 99
8.4.3 设置直接映射 101
8.4.4 设置主映射 101
8.4.5 NIS+自动加载映射管理 102
第四部分 服务访问工具
第9章 了解服务访问工具 103
9.1 SAF优点 103
9.2 SAF精灵进程 104
9.3 SAF命令 104
9.4 SAF结构 105
9.4.1 init进程 105
9.4.2 服务访问控制器 105
9.4.3 端口监控程序 105
9.4.4 服务调用 107
9.4.5 端口监控程序状态 107
9.4.6 线路控制模型 108
9.4.7 uucp文件 112
9.4.8 SAF日志文件 113
9.5 SAF命令. 任务和选项参考 114
9.5.1 SAF变量快速参考 114
9.5.2 服务访问控制(sacadm)快速参考 115
9.5.3 端口监控程序管理(pmadm)快速
参考 115
9.6 Admintool: Serial Ports和SAF 117
9.7 模板 117
9.8 启动Admintool: Serial Ports 117
第10章 设置调制解调器和字符终端 119
10.1 设置调制解调器和字符终端的工具 119
10.2 在SAF中使用变量 119
10.2.1 端口监控程序标签 120
10.2.2 服务标签 120
10.2.3 设备路径 120
10.2.4 波特率和线路规范 121
10.2.5 调制解调器类型 121
10.2.6 注释 121
10.3 设置调制解调器 121
10.3.1 硬件载波检测设置 121
10.3.2 调制解调器连接和开关设置 122
10.3.3 用于设置调制解调器的变量 123
10.3.4 调制解调器的 SAF 配置 123
10.3.5 调制解调器拨出服务配置 124
10.3.6 调制解调器连接疑难解答 124
10.3.7 使用Admintool: Serial Ports配置
调制解调器 125
10.4 设置字符终端的SAF 128
10.4.1 终端连接 128
10.4.2 字符终端的SAF配置 128
10.4.3 终端连接疑难解答 129
10.4.4 使用Admintool:Serial Ports添加
字符终端 130
10.4.5 初始化不配置端口 130
10.4.6 删除端口服务 131
第11章 设置打印服务 132
11.1 打印的新特性 132
11.1.1 打印包重新设计 132
11.1.2 打印协议适配器 133
11.1.3 SunSoft打印客户 133
11.1.4 增强的网络打印机支持 134
11.2 Solaris 2.6环境中的打印管理工具 134
11.3 打印服务器系统需求 135
11.4 打印机配置信息 135
11.4.1 打印机设备名 136
11.4.2 打印机名称 136
11.4.3 打印机端口 136
11.4.4 打印机类型 137
11.4.5 文件内容类型 137
11.4.6 打印过滤器 139
11.4.7 打印服务器统一地址 140
11.4.8 打印机描述(可选) 140
11.4.9 默认打印机(可选) 141
11.5 本地PostScript打印机设置 141
11.6 打印服务器设置 143
11.6.1 添加listen服务 143
11.6.2 创建listen服务 143
11.6.3 指定打印客户系统 144
11.7 打印客户设置 145
11.8 使用SunSoft打印客户 148
11.8.1 打印机配置资源 149
11.8.2 提交打印请求 149
11.8.3 SunSoft打印客户程序概述 149
11.8.4 使用Admintool设置打印客户 149
11.8.5 使用Admintool设置本地打印机 150
11.9 打印的问题 151
11.9.1 无输出(不进行打印) 152
11.9.2 不正确的输出 160
11.9.3 挂起LP打印服务命令 162
11.9.4 空闲(挂起)打印机 163
11.9.5 冲突状态消息 164
第五部分 应用软件
第12章 应用软件的安装和管理 167
12.1 应用软件的安装和管理概述 167
12.1.1 使用软件包命令 168
12.1.2 使用Admintool 168
12.1.3 使用安装脚本 169
12.2 用户对应用程序的访问 169
12.2.1 自动生成应用程序的环境 169
12.2.2 使用封装程序技术 171
12.2.3 设计一个应用程序服务器 173
12.2.4 安装并配置软件包 176
12.2.5 编写封装程序 177
12.2.6 使用公共命令目录 179
12.2.7 用户配置设置 180
12.2.8 了解发布的概念 181
12.3 CD-ROM的加载 182
12.3.1 使用一个本地CD-ROM(Solaris2.2
或之后的系统软件) 182
12.3.2 使用一个本地CD-ROM(Solaris2.2
或2.1系统软件) 182
12.3.3 访问一个远程CD-ROM中的
文件 183
第13章 程序包命令 185
13.1 命令行中的程序包命令 185
13.2 设置程序包的配置文件 185
13.2.1 设置安装基本目录(base
directory) 187
13.2.2 安装程序包可使用不同的安装管理
文件 187
13.3 添加程序包 187
13.4 检查程序包的安装 191
13.5 列出程序包 192
13.6 删除程序包 192
13.7 程序包系统日志文件 194
第14章 Admintool:软件管理器 195
14.1 启动Admintool 195
14.2 安装软件 196
14.2.1 访问本地光盘中的文件 196
14.2.2 定制安装 197
14.2.3 开始安装 198
14.3 删除软件 199
第15章 安装和管理系统软件补丁程序 200
15.1 补丁程序的发布 200
15.1.1 如何得到Sun的补丁程序 201
15.1.2 在Web页中得到补丁程序 201
15.1.3 使用ftp来得到补丁程序 202
15.2 补丁程序的编号 202
15.3 安装一个补丁程序 202
15.4 删除补丁程序 203
第六部分 shell编程介绍
第16章 编写shell脚本 205
16.1 基本概念 205
16.1.1 介绍Bourne. Korn和C shell 205
16.1.2 了解shell如何执行命令 206
16.1.3 命名shell脚本 207
16.1.4 标识shell 207
16.1.5 使脚本可执行 207
16.1.6 存储shell脚本 208
16.1.7 编写shell脚本程序 208
16.2 变量 208
16.2.1 shell变量 208
16.2.2 内置shell变量 211
16.2.3 环境变量 214
16.3 输入和输出 214
16.3.1 标准输入. 标准输出和标准
错误 215
16.3.2 命令行输入 216
16.3.3 交互输入 218
16.3.4 here文档 219
16.3.5 生成输出 219
16.3.6 命令替换 220
16.4 条件判断 221
16.4.1 if-then-else-elif 221
16.4.2 if-else-else if-endif 222
16.4.3 嵌套的if结构 223
16.4.4 多重分支 223
16.5 流程控制 225
16.5.1 使用for/foreach循环 225
16.5.2 使用while循环 226
16.5.3 使用until循环 228
16.5.4 跳出循环 228
16.6 退出状态 228
16.7 数学运算 229
16.8 用户自定义函数 230
16.9 调试shell脚本 231
16.9.1 使用调试标志 231
16.9.2 了解shell文法解析顺序 233
第17章 参照表和例子脚本 235
17.1 参照表 235
17.1.1 环境文件 235
17.1.2 脚本的首行 235
17.1.3 Korn shell的目录运算符 235
17.1.4 C shell中的变量修改符 235
17.1.5 由shell初始化的变量 235
17.1.6 shell的内置命令 236
17.1.7 Brurne和Korn shell中的重定向 237
17.1.8 C shell中的重定向 237
17.1.9 C shell中的$argv的表示法 237
17.1.10 引用 238
17.1.11 无字符的语法 238
17.1.12 关于变量的shell语法 238
17.1.13 I/O重定向和管道功能 238
17.1.14 将输出显示到屏幕中 239
17.1.15 从键盘得到输入 239
17.1.16 数字和计算 239
17.1.17 命令替换 239
17.1.18 代字号(~)的展开 239
17.1.19 关于别名的语法 239
17.1.20 有关历史记录的语法 239
17.1.21 函数语法 240
17.1.22 编程中控制语句的语法 240
17.1.23 判断和C shell中的内置判断
命令 240
17.1.24 Bourne shell的数学运算符 241
17.1.25 C shell的数学运算符 241
17.2 例子脚本 241
17.2.1 匿名ftp的脚本 241
17.2.2 arch.sh.fctn函数 247
17.2.3 array.sh.fctn函数 248
17.2.4 hostname.sh.fctn函数 256
17.2.5 osr.sh.fctn函数 256
17.2.6 whoami.sh.fctn函数 257
第七部分 系统安全
第18章 理解系统安全 259
18.1 Solaris 2.6中新的安全特征 259
18.1.1 验证服务模块插件 259
18.1.2 可执行的堆栈和安全性 259
18.2 系统安全概述 260
18.2.1 维护系统的物理安全 261
18.2.2 维护登录和访问控制 261
18.2.3 限制对文件中数据的访问 261
18.2.4 维护网络控制 261
18.2.5 监视系统的使用 261
18.2.6 设置正确的路径变量 261
18.2.7 监视setuid程序 262
18.2.8 安装防火墙 262
18.2.9 报告安全问题 262
18.3 文件安全 262
18.3.1 用户类 263
18.3.2 文件许可权 263
18.3.3 目录许可权 263
18.3.4 表示许可权的八进制数 263
18.3.5 默认掩码 264
18.3.6 文件类型 264
18.3.7 文件管理命令 265
18.3.8 文件的特殊许可权 267
18.3.9 访问控制列表 271
18.4 网络安全 277
18.4.1 防火墙系统 278
18.4.2 身份验证和授权 278
18.4.3 共享文件 281
18.4.4 限制超级用户的访问权限 282
18.4.5 使用特权端口 283
18.4.6 自动安全增强工具 283
第19章 使用身份验证服务 284
19.1 DES加密 284
19.2 Diffie-Hellman身份验证 284
19.2.1 Diffie-Hellman身份验证是如何
工作的 285
19.2.2 管理Diffie-Hellman身份验证 286
19.3 Kerberos Version 4 290
19.3.1 Kerberos身份验证如何和NFS一起
工作 290
19.3.2 管理Kerberos 4的身份验证 291
19.4 身份验证服务模块插件 293
19.4.1 PAM模块的类型 293
19.4.2 堆积特性 293
19.4.3 密码对应特性 293
19.4.4 PAM是如何工作的 293
19.4.5 PAM的配置文件 294
19.4.6 有效的服务名称 295
19.4.7 控制标志 295
19.4.8 PAM的使用计划 298
19.4.9 配置PAM 298
第20章 使用自动安全增强工具 300
20.1 ASET的任务 300
20.2 ASET的控制文件 300
20.3 ASET的安全等级 301
20.4 ASET是如何工作的 301
20.4.1 系统文件访问权限的审核 302
20.4.2 系统文件检测 302
20.4.3 用户/组检验 302
20.4.4 配置文件的检验 303
20.4.5 环境的检查 303
20.4.6 eeprom检测 303
20.4.7 防火墙的设置 303
20.5 ASET的执行记录 304
20.6 ASET的结果报告 305
20.6.1 报告文件的格式 306
20.6.2 检测和对比报告文件 306
20.7 ASET的控制文件 306
20.7.1 tune文件 307
20.7.2 uid_aliases文件 310
20.7.3 检测列表文件 310
20.8 ASET的环境文件 310
20.8.1 ASET shell环境变量 313
20.8.2 PERIODIC_SCHEDULE变量 313
20.8.3 TASKS变量 314
20.8.4 UID_ALIASES变量 314
20.8.5 YPCHECK变量 314
20.8.6 CKLISTPATH_level变量 314
20.9 运行ASET 314
20.9.1 交互式地运行ASET 314
20.9.2 定期地运行ASET 317
20.9.3 终止定期地运行ASET 318
20.9.4 将报告集中到服务器 318
20.10 恢复被ASET更改的文件 319
20.11 ASET的错误信息 320
附录A 卷管理 322
附录B Solaris服务器企业内联网扩充
产品 334
术语表 365