秦岭文库(kunmingchi.com)你想要的内容这里独有!

银河麒麟系统管理员手册说明书

Painful love(痛爱)174 页 0 B
银河麒麟系统管理员手册说明书银河麒麟系统管理员手册说明书银河麒麟系统管理员手册说明书银河麒麟系统管理员手册说明书银河麒麟系统管理员手册说明书

银河麒麟系统管理员手册说明书

银河麒麟服务器操作系统管理员手册 目录 第1章 系统简介 ....................................................................................................................................... 1 第2章 启动和关闭系统 ........................................................................................................................... 2 2.1 GRUB ............................................................................................................................................ 2 2.1.1 GRUB的特点 ............................................................................................................................ 2 2.1.2 GRUB的术语 ............................................................................................................................ 3 2.1.3 设备名称............................................................................................................................... 4 2.1.3.1 2.1.4 文件名称 .......................................................................................................................................... 4 GRUB的接口 ............................................................................................................................ 5 2.1.4.1 2.1.4.2 2.1.4.3 2.1.4.4 菜单接口 .......................................................................................................................................... 5 菜单项目编辑器接口 ...................................................................................................................... 5 命令行接口 ...................................................................................................................................... 5 接口使用的顺序 .............................................................................................................................. 6 2.1.5 GRUB的命令 ............................................................................................................................ 6 GRUB的菜单配置文件 ................................................................................................................ 7 2.1.6........................................................................................................................................................ 7 2.2 启动脚本 ....................................................................................................................................... 8 2.3 登录系统 ....................................................................................................................................... 8 2.4 关闭系统 ....................................................................................................................................... 9 第3章 登录和注销 ..................................................................................................................................11 3.1 3.2 3.3 通过终端登录 ..............................................................................................................................11 TELNET 远程登录.........................................................................................................................11 注销系统 ......................................................................................................................................11 第4章 文件系统管理 ............................................................................................................................. 12 4.1 目录树概述 ................................................................................................................................. 12 4.1.1 根(root)文件系统........................................................................................................... 12 4.1.2 /etc 文件系统 ......................................................................................................................... 13 4.1.3 /dev 文件系统 ........................................................................................................................ 14 4.1.4 /usr 文件系统 ......................................................................................................................... 14 4.1.5 /var 文件系统 ......................................................................................................................... 15 4.1.6 /proc 文件系统 ....................................................................................................................... 15 4.2 文件系统类型 ............................................................................................................................. 16 4.3 创建、装入和卸载文件系统...................................................................................................... 17 4.3.1 创建文件系统 ..................................................................................................................... 17 4.3.2 装载文件系统 ..................................................................................................................... 17 4.3.3 卸载文件系统 ..................................................................................................................... 18 4.4 设置FSTAB 文件.......................................................................................................................... 18 4.5 检查文件系统 ............................................................................................................................. 18 4.6 监视文件系统 ............................................................................................................................. 19 4.6.1 df 命令.................................................................................................................................... 19 4.6.2 du 命令 ................................................................................................................................... 19 第5章 软件包管理 ................................................................................................................................. 21 5.1 使用 RPM 来管理软件包.......................................................................................................... 21 5.1.1 RPM 的设计目标................................................................................................................... 21 5.1.2 使用 RPM .......................................................................................................................... 22 i 银河麒麟服务器操作系统管理员手册 5.1.3 卸载..................................................................................................................................... 23 5.1.4 升级..................................................................................................................................... 23 5.1.5 刷新..................................................................................................................................... 24 5.1.6 查询..................................................................................................................................... 24 5.1.7 校验..................................................................................................................................... 25 5.2 安装TAR 格式的软件包.............................................................................................................. 26 第6章 网络配置 ..................................................................................................................................... 27 6.1 6.2 6.3 6.4 6.5 6.6 总览 ............................................................................................................................................. 28 建立以太网连接 ......................................................................................................................... 28 管理 DNS 设置 .......................................................................................................................... 30 管理主机 ..................................................................................................................................... 31 激活设备 ..................................................................................................................................... 32 保存和恢复网络配置 ................................................................................................................. 33 第7章 配置VSFTPD 服务器................................................................................................................ 34 7.1 7.2 7.3 7.4 7.5 7.6 7.7 7.8 VSFTPD简介 ................................................................................................................................. 34 VSFTPD的默认配置 ..................................................................................................................... 34 进一步配置VSFTPD ..................................................................................................................... 35 配置本地组访问的FTP服务器................................................................................................... 39 使用VSFTPD配置高安全级别的匿名服务器.............................................................................. 40 配置基于IP的虚拟FTP服务器 ................................................................................................... 42 配置独立运行的VSFTPD.............................................................................................................. 44 配置虚拟用户的FTP服务器....................................................................................................... 47 第8章 网络文件系统(NFS).............................................................................................................. 51 8.1 为什么使用 NFS? .................................................................................................................... 51 8.2 挂载 NFS 文件系统................................................................................................................... 51 8.2.1 使用 /etc/fstab 来挂载 NFS 文件系统 ........................................................................... 52 8.2.2 使用 autofs 来挂载 NFS 文件系统 .................................................错误!未定义书签。 8.2.3 使用 TCP............................................................................................................................ 52 8.3 命令行配置 ................................................................................................................................. 52 8.3.1 主机名格式 ......................................................................................................................... 53 8.3.2 启动和停止服务器 ............................................................................................................. 53 第9章 SAMBA................................................................................................................................... 55 9.1 为什么使用 SAMBA? ................................................................................................................ 55 9.2 配置 SAMBA 服务器................................................................................................................... 55 9.2.1 图形化配置 ......................................................................................................................... 55 9.2.1.1 9.2.1.2 9.2.1.3 配置服务器设置 ............................................................................................................................ 56 管理Samba 用户 ........................................................................................................................... 58 添加共享 ........................................................................................................................................ 59 9.2.2 命令行配置 ......................................................................................................................... 59 9.2.3 加密口令............................................................................................................................. 60 9.2.4 启动和停止服务器 ............................................................................................................. 61 9.3 连接 SAMBA 共享....................................................................................................................... 61 9.3.1 命令行................................................................................................................................. 61 9.3.2 挂载共享..............................................................................................错误!未定义书签。 第 10 章 动态主机配置协议(DHCP).............................................................................................. 63 ii 银河麒麟服务器操作系统管理员手册 10.1 为什么使用 DHCP ..................................................................................................................... 63 10.2 配置 DHCP 服务器.................................................................................................................... 63 10.2.1 配置文件............................................................................................................................. 63 10.2.2 租期数据库 ......................................................................................................................... 66 10.2.3 启动和停止服务器 ............................................................................................................. 66 10.2.4 DHCP 转发代理 ................................................................................................................ 67 10.3 配置 DHCP 客户........................................................................................................................ 67 第 11 章 APACHE HTTP 服务器 配置 ............................................................................................. 69 11.1 基本设置 ..................................................................................................................................... 69 11.2 默认设置 ..................................................................................................................................... 70 11.2.1 站点配置............................................................................................................................. 70 11.2.2 记录日志............................................................................................................................. 72 11.2.3 环境变量............................................................................................................................. 73 11.2.4 目录..................................................................................................................................... 74 11.3 虚拟主机设置 ............................................................................................................................. 76 11.3.1 添加和编辑虚拟主机 ......................................................................................................... 77 11.3.1.1 11.3.1.2 11.3.1.3 11.4 11.5 11.6 常规选项 ........................................................................................................................................ 77 SSL ................................................................................................................................................. 78 其它虚拟主机选项 ........................................................................................................................ 79 服务器设置 ................................................................................................................................. 79 调整性能 ..................................................................................................................................... 80 保存设置 ..................................................................................................................................... 81 第 12 章 APACHE HTTP 安全服务器配置 ....................................................................................... 82 12.1 12.2 12.3 12.4 12.5 12.6 12.7 12.8 12.9 12.10 介绍 ............................................................................................................................................. 82 与安全相关的软件包概述 ......................................................................................................... 82 证书和安全概述 ......................................................................................................................... 84 使用已存钥匙和证书 ................................................................................................................. 84 证书类型 ..................................................................................................................................... 85 生成钥匙 ..................................................................................................................................... 86 生成发送给 CA 的证书请求 ..................................................................................................... 87 创建自签的证书 ......................................................................................................................... 88 测试证书 ..................................................................................................................................... 89 访问服务器 ............................................................................................................................. 89 第 13 章 基本防火墙配置 ..................................................................................................................... 91 13.1 13.2 第 14 章 安全级别配置工具 ..................................................................................................................... 91 激活 IPTABLES 服务.....................................................................................错误!未定义书签。 控制对服务的访问 ................................................................................................................. 93 14.1 运行级别 ..................................................................................................................................... 93 14.2 TCP 会绕程序............................................................................................................................. 94 14.2.1 Xinetd .................................................................................................................................. 94 14.3 服务配置工具 ............................................................................................................................. 95 14.4 NTSYSV ......................................................................................................................................... 96 14.5 CHKCONFIG ................................................................................................................................... 97 第 15 章 15.1 15.2 OPENSSH .............................................................................................................................. 98 为什么使用 SSH? .................................................................................................................... 98 配置 OPENSSH 服务器 .............................................................................................................. 98 iii 银河麒麟服务器操作系统管理员手册 15.3 配置 OPENSSH 客户 .................................................................................................................. 99 15.3.1 使用 ssh 命令.................................................................................................................... 99 15.3.2 使用 scp 命令.................................................................................................................... 99 15.3.3 使用 sftp 命令 ................................................................................................................. 100 15.3.4 生成钥匙对 ....................................................................................................................... 100 第 16 章 16.1 16.2 16.3 第 17 章 验证配置 ............................................................................................................................... 104 用户信息 ................................................................................................................................... 104 验证 ........................................................................................................................................... 105 命令行版本 ..................................................................................................错误!未定义书签。 PAM ...................................................................................................................................... 107 17.1 PAM简介 ................................................................................................................................... 107 17.2 PAM配置文件 ........................................................................................................................... 108 17.2.1 基于目录的配置形式 ........................................................................................................110 17.2.2 通用参数............................................................................................................................110 17.2.3 配置文件入口示例 ............................................................................................................111 17.3 常见的PAM认证模块简介 ........................................................................................................112 17.3.1 pam_access认证模块 .........................................................................................................112 17.3.2 pam_chroot认证模块 .........................................................................................................113 17.3.3 pam_cracklib认证模块 ......................................................................................................113 17.3.4 pam_deny认证模块 ...........................................................................................................114 17.3.5 pam_env认证模块 .............................................................................................................115 17.3.6 pam_filter认证模块 ...........................................................................................................115 17.3.7 pam_ftp认证模块...............................................................................................................116 第 18 章 18.1 18.2 日期和时间配置 ....................................................................................................................117 时间和日期属性 ........................................................................................................................117 时区配置 ....................................................................................................................................118 第 19 章 键盘配置 ............................................................................................................................... 120 第 20 章 鼠标配置 ............................................................................................................................... 121 第 21 章 X 窗口系统配置 .................................................................................................................. 123 21.1 概述 ........................................................................................................................................... 123 21.2 理解 X....................................................................................................................................... 123 21.2.1 为什么要使用 X? ............................................................................................................ 123 21.2.2 X客户机/服务器模型 ....................................................................................................... 123 21.2.3 窗口管理器 ....................................................................................................................... 124 21.2.4 窗口部件........................................................................................................................... 125 21.3 XFREE86™ 的配置................................................................................................................... 125 21.3.1 开始之前........................................................................................................................... 125 21.3.2 配置 XFree86 4.X ............................................................................................................ 125 21.4 图形X 配置工具....................................................................................................................... 127 21.4.1 显示设置........................................................................................................................... 127 21.4.2 高级设置........................................................................................................................... 128 第 22 章 22.1 22.2 用户帐户管理 ....................................................................................................................... 130 概述 ........................................................................................................................................... 130 用户管理器 ............................................................................................................................... 131 iv 银河麒麟服务器操作系统管理员手册 22.2.1 添加新用户 ....................................................................................................................... 132 22.3 命令行下用户管理 ................................................................................................................... 134 22.4 命令行下用户组管理 ............................................................................................................... 135 22.5 对进程的解释 ..............................................................................................错误!未定义书签。 第 23 章 23.1 23.2 第 24 章 24.1 24.2 24.3 24.4 第 25 章 25.1 25.2 25.3 25.4 第 26 章 自动化的任务 ....................................................................................................................... 136 CRON .......................................................................................................................................... AT 和 BATCH .............................................................................................................................. 136 138 日志文件 ............................................................................................................................... 141 定位日志文件 ........................................................................................................................... 141 查看日志文件 ........................................................................................................................... 141 添加日志文件 ........................................................................................................................... 143 检查日志文件 ........................................................................................................................... 144 收集系统信息 ....................................................................................................................... 146 系统进程 ................................................................................................................................... 146 内存用量 ................................................................................................................................... 148 文件系统 ................................................................................................................................... 149 硬件 ........................................................................................................................................... 150 系统备份 ............................................................................................................................... 152 26.1 备份前的准备 ........................................................................................................................... 152 26.1.1 tar命令............................................................................................................................... 153 26.1.2 bzip2 和bunzip2 ................................................................................................................ 154 26.1.3 gzip和gunzip ..................................................................................................................... 154 26.1.4 zip和unzip ......................................................................................................................... 155 附 录.............................................................................................................................错误!未定义书签。 附录A:常见问题 ................................................................................................................................. 156 附录B:KYLIN和DOS常用命令对照表 ............................................................................................... 157 附录C:文件类型和文件名 ................................................................................................................. 159 附录D:术语表 ..................................................................................................................................... 161 v 银河麒麟服务器操作系统管理员手册 第1章 系统简介 银河麒麟操作系统 2.0 版(KYLIN2.0)是国防科大计算机学院推出的具有自主 知识产权的服务器操作系统。KYLIN2.0 操作系统在全面继承先前 KYLIN 2.0-alpha 版和 KYLIN2.0-Beta 版的整体特征的基础上,进一步优化和升级了操作系统核心, 并全面改进了 LSB 兼容性、安全性、网络性能、系统配置和用户使用环境等方面。 KYLIN2.0 将更适合于网络服务器系统、电子政务平台、安全信息服务器等用途。 1 银河麒麟服务器操作系统管理员手册 第2章 启动和关闭系统 2.1 GRUB 当使用安装程序完成了系统安装和基本配置任务之后,系统需要重新启动。在系统从硬盘 上重新启动之后,出现 grub 菜单。如下图: 图 1.1 grub 界面 grub 是一个多重启动管理器。grub 是 GRand Unified Bootloader 的缩写,它可以在多个操作 系统共存时选择引导哪个系统。它可以引导的操作系统包括 Linux,FreeBSD,Solaris, NetBSD,BeOSi,OS/2,Windows95/98,Windows NT,Windows2000,Kylin。它可以载入操作系统的 内核和初始化操作系统(如 Linux,Kylin),或者把引导权交给操作系统(如 Windows 98)来 完成引导。 2.1.1 GRUB的特点 grub,特别适用于 Kylin 与其它操作系统共存情况,它有以下特点: z 支持大硬盘 只要系统 BIOS 能支持 LBA 模式(大多数都支持),那么 LBA 就允许 GRUB 超越 1024 柱面的 限制,引导操作系统。 z 支持开机画面 grub 支持在引导开机的同时显示一个开机画面。 2 银河麒麟服务器操作系统管理员手册 z 两种执行模式 grub 不但可以通过配置文件进行例行的引导,还可以在选择引导前动态改变引导时的参数, 此外,还可以动态加载各种设备。Grub 的命令行有非常强大的功能,而且支持如 bash 或 doskey 一样的历史功能,您可以用上下键来寻找以前的命令。 z 分区位置改变后不必重新配置 grub 是通过文件系统直接把核心读取到内存,因此只要操作系统核心的路径没有改变,grub 就可以引导系统。 除此之外,Grub 还有许多非常强大的功能。例如支持多种外部设备,动态装载操作系统内 核,甚至可以通过网络装载操作系统核心。Grub 支持多种文件系统,支持多种可执行文件格式, 支持自动解压,可以引导不支持多重引导的操作系统等。 装载GRUB和操作系统的过程,包括以下几个操作步骤: 1. 加载基本的引导程序,这通常是第一步。基本引导程序必须是位于主引导扇区中一个非常 小的空间,少于 512 字节。因此,基本引导程序所做的唯一的事情就是装载第二引导程序。这 主要是因为主引导扇区中的空间太有限。 2. 装载第二引导程序,这通常称为第二步。此程序实际上是引出更高级的功能,以允许 用户装载入一个特定的操作系统。在GRUB中,这步是给用户显示一个菜单或是输入命令。 3. 加载在一个特定分区上的操作系统,如Kylin内核。一旦GRUB从它的命令行或是配置 文件中接到启动某操作系统的指令,它就寻找必要的引导文件,然后把机器的控制权移交给操 作系统。 这种引导方法被称为直接加载。因为这种方法使用的是直接加载操作系统的指令,没有用 到任何在引导程序和操作系统主文件(如内核)之间的中间代码。然而,不同操作系统所采用 的引导过程可能会与上面提到的有一些细微的不同。例如,微软的 DOS 和 Windows 操作系统在 安装时,倾趋于完全重写 MBR,而不是合并当前的 MBR 的配置。显然,这将破坏其他操作系统 保存在 MBR 中的所有信息,如 Kylin。微软操作系统,还有一些其他的专有操作系统,都是使 用一种称为链式加载的引导方法来启动。在这种方法中,MBR 仅仅是简单地指向操作系统所在 分区的第一个扇区。 GRUB 支持直接和链式加载的引导方法。GRUB 能用于几乎所有操作系统,绝大多数流行的文 件系统,以及几乎所有的系统 BIOS 所能识别的硬盘。 2.1.2 GRUB 的术语 在使用 GRUB 之前,首先要理解这个程序如何引用设备,如系统硬盘驱动器、分区等。对于 配置 GRUB 实现多操作系统的引导,这方面的信息是很重要的。 3 银河麒麟服务器操作系统管理员手册 2.1.3 设备名称 系统的第一个硬盘驱动器被 GRUB 称为(hd0)。在它上面的第一个分区被称为(hd0,0),第二 个硬盘驱动器上的第 5 个分区被称为(hd1,4)。通常使用 GRUB 时,文件系统习惯上采用下面的 方式命名: (,) 在设备命名中,圆括号和逗号是很重要的。指出是一个硬盘(hd)还是一个软盘(fd)被指定。 磁盘序号是依照系统 BIOS 而确定的设备号,从 0 开始。基本 IDE 硬盘被标为 0,第二 IDE 硬盘被标为 1。与 Kylin 内核中设备的命名对应关系是:hd0 对应于 ad1 ,hd1 对应于 ad2 依次 类推。 注意:GRUB 用于设备的命名系统是从 0 开始,而不是 1。这常常是 GRUB 新手们常犯的最普 遍的错误。 分区的编号也是从 0 开始。虽然大多数的分区可以用数字指定,但是如果系统使用的是 BSD 分区,那么它们还是用字母来指定,如 a 或 c。 GRUB 在命名设备和分区时,使用下面的规则: ¾ 系统使用 IDE 硬盘或 SCSI 硬盘,都没有关系。所有的硬盘都是用 hd 开始,软盘 用 fd 开头。 ¾ 当指定整个硬盘且不考虑它的分区时,简单地将逗号和分区编号取消即可。当告 诉 GRUB 配置一个特定硬盘的主引导扇区时,这一点很重要。比如,(hd0)指定第一个设备, (hd3)指定第四个设备。 ¾ 如果一个系统有多个驱动设备,知道由 BIOS 确定的驱动器顺序就很重要了。如果 系统只有 IDE 或 SCSI 驱动器,那是相当简单的。但是如果有多个驱动器混合时,情况就会 复杂一些。 2.1.3.1文件名称 当在 GRUB 中输入包括文件的命令时,比如在多操作系统中使用一个菜单列表,文件名必须 直接在设备和分区后指定。一个绝对文件名的格式如下: (,)/path/to/file 多数情况下,用户可以通过在分区的目录路径后加上文件名来指定文件。这种方法是直接 了当的。 另外,我们也可以将不在文件系统中出现的文件指定给 GRUB,比如在一个分区最初几块扇 区中的链式引导程序。为了指定这些文件,需要提供一个块列表(blocklist),由它来一块一块 地告诉 GRUB 文件在分区中的位置。当一个文件是由几个不同的块组合在一起时,需要有一个特 殊的方式来写块列表。每个文件片断的位置由一个块的偏移量以及从偏移点起始的块数来描述, 这些片断以一个逗号分界(comma-delimited)的顺序组织在一起。考虑下面的块列表: 0+50,100+25,200+1 4 银河麒麟服务器操作系统管理员手册 上面这个块列表告诉 GRUB 使用一个文件,这个文件起始于分区的第一块,使用了第 0 块到 第 49 块,第 99 块到 124 块,以及第 199 块。 当使用 GRUB 装载诸如微软 Windows 这样采用链式装载方式的操作系统时,知道如何写块列 表是相当有用的。如果从第 0 块开始,那么可以省略块的偏移量。作为一个例子,当链式装载 文件在第一硬盘的第一个分区时,可以使用下面的命名: (hd0,0)+1 下面给出一个带类似块列表名称的 chainloader 命令。它是在设置正确的设备和分区作为 根后,在 GRUB 命令行中给出的。 chainloader +1 GRUB 的根文件系统 一些用户常困惑于 GRUB 中根文件系统(root filesystem)这一术语的用法。GRUB 的根文件 系统与 Kylin 的根文件系统是没有关系的,这一点需要记住。 在 Kylin 中,一旦 GRUB 载入包含 Kylin 内核的根分区,就可以使用 kernel 命令来选择内 核文件的位置以加载 Kylin 内核。一旦 Kylin 内核引导,它就设定自己的根文件系统,此时的 根文件系统就是大多数人用来与 Kylin 联系的了。最初的 GRUB 根文件系统以及它的挂入都被去 掉,它们仅存在于用来引导内核文件。 关于根和内核命令的更多信息,可以参考后面的命令部分。 2.1.4 GRUB 的接口 GRUB 主要有三个强大的接口,它们提供了不同级别的功能。每个接口都允许用户引导操作 系统,甚至可以在处于 GRUB 环境下的接口之间移动。 2.1.4.1 菜单接口 如果 GRUB 是由 Kylin 的安装程序自动配置的,那么它默认的显示接口是菜单接口。在系统 第一次启动后,将出现按名称排列一个操作系统或内核列表(事先已经用它们各自的引导命令 配置好)。使用箭头键选择所要启动的操作系统,然后按回车键来引导它。如果不选,一段时 间后 GRUB 将启动默认选项。 在菜单接口上,按[e]键,对高亮菜单项中的命令进行编辑。按[c]键载入一个命令行接口 2.1.4.2 菜单项目编辑器接口 在引导装载菜单中按[e]键,就进入了菜单项目编辑器。用于项目的 GRUB 命令就显示在这 里。在引导操作系统前,用户可以更改这些命令,添加(加在当前行后面,用[o]键;加在当前 行前,用[0]),编辑(用[e]键),删除(用[d]键)。 在所有的改变都完成后,用[b]键来执行这些命令,并引导操作系统。[Esc]键来放弃这些 修改,将重新入标准的菜单接口。[c]键用来载入命令行接口。 2.1.4.3 命令行接口 命令行是 GRUB 最基本的接口,但它也是被授予了最大控制能力的接口。在命令行接口中, 输入任何相关的 GRUB 命令,再回车就可以执行了。这个接口的功能有点类似于 shell 的功能, 5 银河麒麟服务器操作系统管理员手册 比如[Tab]键完成,前后文提示,输入命令时的[Ctrl]键组合,如[Ctrl]-[a]移到行的开头, [Ctrl]-[e]移到行的结尾。另外,箭头键,[Home],[End],[Delete]键与 bash shell 中一样用 法。 2.1.4.4 接口使用的顺序 当 GRUB 环境开始载入第二步引导装载程序时,它寻找自己的配置文件。当找到配置文件后, 它使用这个配置文件建立一个要载入的操作系统的菜单列表, 然后显示引导菜单接口 如果配置文件没有被找到,或者如果配置文件不能读取,那么 GRUB 将载入命令行接口,以 允许用户手工输入必要的命令来启动操作系统。 如果配置文件不是正确的,那么 GRUB 将显示错误,并请求输入。用户将能看到问题发生在 文件中的什么地方并修复它。按下任意键,重新载入菜单接口,根据 GRUB 报告的错误,编辑菜 单选项并纠正问题。如果这个修正失败了,那么错误将被报告,且 GRUB 将再次开始。 2.1.5 GRUB 的命令 GRUB 包含了许多不同的命令,它们可以在命令行接口中以交互的方式执行。其中的一些命 令能接在命令名后面的选项,这些选项用空格隔开。 下面的列表给出了最有用的一些命令: ·boot - 引导先前已经被指定并载入的操作系统或链式装载程序。 ·chainloader - 将指定的文件作为一个链式装载程序载入。为了获取在一个指定分区第 一扇区内的文件,使用+1 作为文件名。 ·displaymem - 显示当前内存的使用情况,这个信息是基于 BIOS 的。这个命令有助于确 定系统在引导前有多少内存。 ·initrd - 使用户能够指定一个在引导时可用的初始 RAM 盘。当内核为了完全引导而需要 某些模块时,这是必需的。 ·install p - 安装 GRUB 到系统的主引导记录。这个命令允许系统重启时出现 GRUB 接口。 ·kernel - 当使用直接载入方式引导操作系统时,kernel 命令指定内核从 GRUB 的根文件 系统中载入。 在 Kylin 中,一个 kernel 命令的例子看起来象下面的形式: kernel /vmlinuz root=/dev/hda5 上面这行表明了 vmlinuz 文件是从 GRUB 的根文件系统载入的,如(hd0,0)。同时,还指明 当 Kylin 内核载入时,内核的根文件系统应该是位于 hda5,即第一个 IDE 硬盘的第六个分区。 如果有必要的话,多个选项可以被放在这个选项后面。 ·root - 将 GRUB 的根分区设置成特定的设备和分区,比如说(hd0,0)。并挂入这个分区, 这样文件可以被读取。 ·rootnoverify - 做 root 命令同样的事情,只是不挂入分区。 除上面所述外,还有更多的命令可用。输入 info grub,得到一个所有命令的完全列表。 6 银河麒麟服务器操作系统管理员手册 2.1.6 GRUB 的菜单配置文件 配置文件的专用命令 下面这些命令只用于 GRUB 的菜单配置: ·color - 设定在菜单中使用的颜色,一种是作为前景色,一种作为背景色。可以简单地 使用颜色名称,如 red/black。比如: color red/black green/blue ·default - 默认项目的名称。如果菜单接口超时,那它将被载入。 ·fallback - 当这个命令被使用时,如果第一次尝试失败,那么该项目将被试用。 ·hiddenmenu - 这个命令被使用时,它不显示 GRUB 菜单接口,在超时时间过期后载入默 认项。用户通过按[Esc]键,可以看到标准的 GRUB 菜单。 ·password - 使用这个命令为菜单编辑添加口令。 作为附加选项,可以在后面指定一个后备的菜单配置文件。因此,如果口令被知道,GRUB 将重新启动第二步的引导程序,并使用这个后备的配置文件来建立菜单。如果这个后备文件不 在命令中指出,那么知道口令的用户能够编辑当前的配置文件。 ·timeout - 这个命令设定了在 GRUB 载入由 default 命令指定的项目前的时间间隔,以秒 为单位。 ·splashimage - 它指定在 GRUB 引导时所使用的屏幕图像文件的位置。 ·title - 设定用来装载一个操作系统的一组特定命令的标题。 字符#用来在菜单配置文件放置注释。配置文件的结构 设置 GRUB 菜单接口全局参数的命令被放在文件的顶部,接下来的是用于各个操作系统引导 的不同项目。 一个典型的用于引导 Kylin 或 Microsoft Windows 2000 的 GRUB 菜单配置文件可能如下所 示: default=Kylin timeout=10 color=green/black light-gray/blue # section to load Kylin title Kylin root (hd0,0,a) kernel (hd0,0,a)/boot/loader mute boot # section to load Linux title linux root (hd0,1) kernel /vmlinuz root=/dev/hda5 boot # section to load Windows 2000 title windows 7 银河麒麟服务器操作系统管理员手册 rootnoverify (hd0,0) chainloader +1 这个文件告诉 GRUB 建立一个以 Kylin 为默认操作系统的菜单,设定 10 秒后自动引导。这 里给出了 3 个部分,每个部分对应于一个操作系统项目,每个部分都包含了指向操作系统硬盘 分区表的命令。 2.2 启动脚本 在内核检测完系统硬件之后,会把控制权传递给 init 进程。init 进程将负责启动系统和各 种守护进程。init 所做的第一件事情就是检查清除标记是否已经设置。如果上次是正常关闭系 统,会在每个磁盘上运行 sync 程序确保所有数据都已经写回,卸载文件系统,并在文件系统上 设置清除标记(clean)。如果非正常关机,则不会设置清除标记。如果 init 检查出已经设立清 除标记,则载入文件系统,开始读取系统配置脚本。如果 init 检查出清除标记没有设置,则先 运行 fsck 程序修复文件系统。fsck 不能修复的区域可以进入单用户模式手动修复,如果 fsck 自 动修复成功,则 init 载入/etc/fstab 文件中列出的各个文件系统,然后再开始读取系统配置脚本。 系统配置脚本位于/etc、/etc/default 和/etc/rc.d/。除此之外,init 还要检查/usr/local/etc/rc.d 目录,获得启动时需要运行的其他脚本。/etc/rc 启动脚本将完成很多非常重要的工作,包括设 置磁盘交换、检查磁盘错误、设置网络界面,启动网络服务程序等非常重要的工作。每个启动 一个特定功能的设置都被放入一个脚本中,然后将所有的脚本都放入启动目录中。系统启动时 逐项检查这个目录下的执行脚本并自动执行这些脚本。/etc/rc 文件也将执行另外的 rc 文件,如 执行 rc.sysinit 用于大部分系统参数的设置,network 用于网络设置,rc.local 用于管理员对本机 特定的启动设置等。其中 rc.sysinit 文件中包含了用户能够更改的很多参数,这些参数在其他 rc 文件中使用,用于系统配置,因此对系统管理来讲最为重要。 KYLIN 2.0 有 6 种不同的启动级别,每个启动级别都有/etc/rc.d 目录下的启动目录 rc*.d 与其对应。 2.3 登录系统 系统执行完所有启动脚本之后,KYLIN 1.0 将按照配置首先启动图形登录界面,如图 2.2 所 示。 图 2.2 登录窗口 根据提示使用 root 用户和安装时设置的 root 口令登录系统。当用户名和口令通过验证后, 进入 KYLIN 的图形桌面,如图 2.3 所示。 8 银河麒麟服务器操作系统管理员手册 图 2.3 Kylin 桌面 KYLIN 2.0 还提供多个虚拟控制台,在控制台上启动登录进程 login,以接受用户登录。 可以使用 Alt+Fn (n ~ 1, 2, …, 7)功能键在不同的控制台之间切换。其中,Alt+F7 是用来 进入图形界面的。 在虚拟控制台上的 login 提示符后,输入用户名和用户口令。用户通过口令认证之后,屏 幕上将显示/etc/issue 中的内容,/etc/issue 文件中通常放置一些通告内容。然后 login 程 序启动用户的登录 shell,由登录 shell 为用户设置好使用环境。 使用 root 身份登录,您将没有任何的限制。您可以存取任何文件,控制任何进程,但操 作时必须小心,任何错误都可能导致一场灾难,有时甚至会系统崩溃。因此,除非十分必要, 例如重新编译内核、安装新软件或安装新文件系统等。一般情况下,不要用 root 帐号执行日 常的工作。 2.4 关闭系统 当不再使用操作系统时,要使用正确的方法关闭系统。如果使用直接关闭电源的方法来关 闭计算机,可能会对系统造成严重的破坏。 关闭系统的命令是 shutdown 命令,该命令的使用格式如下: # shutdown[选项] 参数 最经常使用的关闭系统的命令是: #shutdown –h now 其中,-h 选项表示关机后不重新启动。 9 银河麒麟服务器操作系统管理员手册 shutdown 命令的其他常用选项含义如下: -r 如果更新了系统内核,要重新启动系统,则应使用此选项,表示关机后立即重新启动。 -t 加上时间选项,表示多长时间后系统将关闭,这个选项和参数是传送给内核程序的。 更详细的选项及参数可以参看 man 手册。 另外,立即启动和停机的命令还有 reboot 和 halt,相当于使用-r 或-h 选项的 shutdown 命令。但是这种方法没有警告功能。一般在单人使用的系统中使用。 如果处于图形桌面环境,您也可以直接点击菜单中的“注销”选项,弹出如图 2.4 所示的 对话框,有三个选择“注销”、“关机”或“重新启动”。 图 2.4 关闭系统 选择其中的“关机”就可以安全关闭系统了。 10 银河麒麟服务器操作系统管理员手册 第3章 登录和注销 3.1 通过终端登录 首先,init 确认有一个 getty 程序提供给终端连接或控制台。getty 监听终端等候用户登录。 当它接收到一个新的登录请求,getty 输出一个欢迎信息(存在/etc/issue 中),并提示用户名,最 后运行 login 程序。login 作为一个参数得到用户名,并提示用户输入口令。如果正确,login 启 动给此用户设置的 shell,否则退出并终止进程。init 发现进程终止后,会给这个终端启动一个 新的 getty 。 3.2 telnet 远程登录 KYLIN2.0 系统允许用户使用 telnet 协议在远程计算机之间进行通信,用户可以通过网络 在远程计算机上登录,就像登录到本地计算机上执行命令一样。 为了通过 telnet 登录到远程计算机上,远程用户必须知道远程机上的合法用户名和口令。 虽然有些系统确实为远程用户提供登录功能,但出于对安全的考虑会限制来宾的操作权限,因 此,这种情况下能使用的功能是很少的。当允许远程用户登录时,系统通常把这些用户放在一 个受限制的 shell 中,以防止系统被怀有恶意的或不小心的用户破坏。用户还可以使用 telnet 从 远程站点登录到自己的计算机上,检查电子邮件、编辑文件和运行程序,就像在本地登录一样。 但是,用户只能使用基于终端的环境而不能使用 X Windows 环境,telnet 只为普通终端提供终 端仿真,而不支持 X Window 等图形环境。 发出 telnet 请求且成功运行后,telnet 将从远程机上得到 login 提示符,显示登录信息并提 示用户输人用户名和口令。如果用户名和口令输入正确,就能成功登录并在远程系统上工作。 3.3 注销系统 当工作完成之后,可以点击菜单中的注销系统,退出当前会话,如图 3-1 所示。也可以在 文本界面下用 logout 命令、exit 命令或者 Ctrl-D(^D)组合键来结束当前会话,退出登录过程。 在桌面环境下,点击菜单中的“注销”选项,弹出如图 3.1 所示的对话框,您可以选择“注 销”、“关机”或“重新启动”。 从系统的安全角度考虑,在不使用操作系统的时候注销系统是非常重要的。 图3.1 注销系统 11 银河麒麟服务器操作系统管理员手册 第4章 文件系统管理 4.1 目录树概述 Kylin 的文件系统从整体看是一个树型结构,一般称这样的结构为目录树。整个目录树可 以分割成更小的部分,每一部分可放在它自己的磁盘上或分区内,以适应操作系统对磁盘大小 的限制,同时也有利于备份或者进行一些其他的系统管理。主要的目录部分有根/root、/usr 、 /var 和 /home 等,见图 4.1。每个部分各有不同的用途。目录树可以通过只读设备(如 CDROM) 或 NFS 网络共享文件系统的一些部分。 对于目录树的不同部分虽然都称为文件系统,但它们不一定是真的分离的文件系统。为了 简单化,也可以把它们放在一个文件系统中。 下面将对它们做较为详细的描述。 图 4.1 Kylin 目录树中的部分(虚线只是出分区的限制) 4.1.1 根(root)文件系统 root 文件系统是每台机器特有的(它一般保存在本地磁盘上,但也可保存在 RAM 磁盘或 网络驱动器上),其中包含启动系统和引导装入文件系统所需的文件。因此,对单用户模式来 说,root 文件系统的内容已经足够。另外,该文件系统内还包含一些工具,用于修复损坏的系 统和从备份中恢复丢失的文件。 根目录一般不含任何文件,除了可能的标准的系统引导映象,通常叫/vmlinuz 。所有其他 文件在根文件系统的子目录中。 12 银河麒麟服务器操作系统管理员手册 4.1.2 /etc 文件系统 /etc 目录包含很多文件。可以通过阅读相应程序的 man 手册来获得有关资料。这里简单的 介绍其中的一部份。 /etc 目录中包含许多文件。下文将讨论其中的一部分。另外的文件,则可由您决定它们属 于哪个程序,并参考那个程序的手册页。许多连网配置文件也被包含在/etc 内,详情参见本书 第一部分。 /etc/rc 或/etc/rc.d 或/etc / rc?.d 启动时或运行级别发生变化时运行的脚本或脚本目录。 /etc/passwd 用户数据库,其中有一些字段指定用户名、用户真名、根目录、加密密码以及该用户的其 他信息。其格式已编入 man passwd 手册页。 /etc/fdprm 软盘参数表。描述各种软盘的不同格式。供 setfdprm 使用。更多详情参考 setfdprm 手册页。 /etc/fstab 列出启动时由 mount -a 命令(在/etc/rc 或等同的启动文件内)自动挂载的文件系统。Kylin 系统中,这个文件还包含一些信息,这些信息和 swapon -a 自动采用的交换区有关。更多详情 参考 mount 手册页。 /etc/group 类似于/etc/passwd,但它描述的不是用户,而是组。更多详情,请参考 group 手册页。 /etc/inittab init 配置文件。 /etc/issue 登录提示出现之前的 getty 输出。通常包含对系统的简短说明或欢迎消息。其内容由系统 管理员决定。 /etc/magic 文件的配置文件。其中包含不同文件格式的说明,以便根据格式猜测出文件的类型。更多 详情,请参考 magic 和 file 手册页。 /etc/motd 日期消息,是在成功登录之后自动输出的。其内容由系统管理员决定。通常用来提示每个 用户,比如既定的系统关闭警告等。 /etc/mtab 列出当前已装入的文件系统。最初是由启动脚本设置,由 mount 命令自动更新。用于需要 给出已装入文件系统列表时(比如说在运行 df 命令时)。 /etc/shadow 在已安装影子密码软件的系统上的影子密码文件。影子密码把已加密的密码从/etc/passwd 移入/etc/shadow;后者只有 root 才能读取。这样可进一步保证密码的安全性。 /etc/login.defs login 命令的配置文件。 13 银河麒麟服务器操作系统管理员手册 /etc/printcap 类似于/etc/termcap,但对象是打印机。而且采用的语法也不同。 /etc/profile、/etc/csh.login 和/etc/cshrc 登录或启动时,由 Bourne 或 C 外壳执行的文件。这些文件允许系统管理员为所有的用户 设置为全局默认设置。各外壳的详情,请参考手册页。 /etc/securetty 标识安全终端,也就是允许 root 通过哪些终端登录。一般说来,只列出了虚拟控制台,如 此一来,恶意用户不可能通过 modem 或网络攻击系统,从而获得超级用户特权(至少很难)。 /etc/shells 列出受信(信得过的)外壳。chsh 命令允许用户把他们自己的登录外壳改成这个文件内列 出的受信外壳。为计算机提供 FTP 服务的.ftpd 服务器进程,将复查用户的外壳是否在/ etc/shells 内,如果在,将允许用户登录,如果不在,就不会让用户登录。 /etc/termcap 终端性能数据库。描述按照什么样的“转义序列”来控制不同的终端。编写程序时,不是 直接输出转义序列(只运行于特定品牌的终端),而是查找正确的序列,以执行自己打算在 /etc/termcap 内执行的操作。这样做的结果是,多数程序都可利用各种各样的终端。更多详情, 请参考 termcap、curs_termcap 和 terminfo 手册页。 4.1.3 /dev 文件系统 /dev 目录下包含所有设备的特定设备文件。设备文件的命名有特殊的约定;对这些约定的 描述包括在 Device 列表中。设备文件是在安装期间或后期,利用/dev /MAKEDEV 脚本创建的。 /dev/ MAKEDEV.local 是由系统管理员编写的一个脚本,它创建只用于本地的设备文件或链接 (也就是那些不属于标准 MAKEDEV 的设备文件,比如用于某些非标准设备驱动程序的设备 文件)。 4.1.4 /usr 文件系统 /usr 文件系统经常很大,因为所有应用程序会安装在这里。/usr 里的所有文件一般来自 Kylin 2.0 distribution,本地安装的应用程序和其它东西在/usr/local 下。这样可能在升级新版本 系统或新 distribution 时无须重新安装全部程序。/usr 的一些子目录在下面列出。 /usr/X11R6 X Window 系统的所有文件。为简化 X 的开发和安装,X 的文件没有集成到系统中。 /usr/X11R6 相当于 X 自己的/usr 。 /usr/bin 几乎所有用户命令。有些命令在/bin 或/usr/local/bin 中。 /usr/sbin 根文件系统不必要的系统管理命令,例如多数服务程序。 /usr/man, /usr/doc 手册页、其他文档文件。 14 银河麒麟服务器操作系统管理员手册 /usr/include C 编程语言的头文件。为了一致性这实际上应该在/usr/lib 下,但传统上支持这个名字。 /usr/lib 程序或子系统的不变的数据文件,名字 lib 来源于库(library)。 /usr/local 本地安装的软件和其它文件放在这里。 4.1.5 /var 文件系统 /var 包括系统一般运行时要改变的数据。每个系统是特定的,即不通过网络与其他计算机共享。 /var/cache 当要求格式化时 man 页的 cache。 /var/lib 系统正常运行时要改变的文件。 /var/local /usr/local 中安装的程序的可变数据,即系统管理员安装的程序。注意,如果有必要,即使 本地安装的程序也会使用其他/var 目录,例如/var/lock 。 /var/lock 锁定文件。其它程序注意到这个锁定文件,将不会在尝试使用这个设备或文件。许多程序 都遵循使用/var/lock 中锁定文件的约定 /var/log 各种程序的 Log 文件,特别是 login (/var/log/wtmp log 所有到系统的登录和注销) 和 syslog (/var/log/messages 里存储所有核心和系统程序信息)。 /var/log 里的文件经常不确定地增长,应 该定期清除。 /var/run 保存下次引导前有效的关于系统的信息文件。例如, /var/run/utmp 包含当前登录的用户的 信息。 /var/spool mail,打印队列和其他队列工作的目录。每个不同的 spool 在/var/spool 下有自己的子目录, 例如,用户的邮箱在/var/spool/mail 中。 /var/tmp 存放比/tmp 中更大或需要存在较长时间的临时文件。 (虽然系统管理员可能不允许/var/tmp 有很旧的文件) 4.1.6 /proc 文件系统 /proc 文件系统是一个假的文件系统。它不存在在磁盘某个磁盘上,而是由内核在内存中产生, 用于提供关于系统的信息(originally about processes, hence the name)。下面说明一些最重要的文 件和目录。 /proc 文件系统在 proc 的 man 页中有更详细的说明。 15 银河麒麟服务器操作系统管理员手册 /proc/1 关于进程 1 的信息目录。每个进程在/proc 下有一个名为其进程号的目录。 /proc/cpuinfo 处理器信息,如类型、制造商、型号和性能。 /proc/loadavg 系统“平均负载”。 /proc/meminfo 存储器使用信息,包括物理内存和 swap。 /proc/net 网络协议状态信息。 /proc/self 链接到查看/proc 的程序的进程目录的符号连接。当 2 个进程查看/proc 时,他们属于不同 的连接。这主要是为了便于程序得到它自己的进程目录。 /proc/stat 系统的不同状态。 /proc/uptime 系统启动的时间长度。 /proc/version 内核版本信息。注意所有上述文件给出易读的文本文件,有时可能是不易读的格式。用命 令做相应的格式化可以方便阅读。例如,free 程序读/proc/meminfo 并将给出的字节数转换为千 字节,且增加了一些信息。 4.2 文件系统类型 Kylin 2.0 将文件保存在磁盘等存储设备上,由操作系统来具体处理访问硬件设备的问题, 操作系统在存储设备上创建文件系统之后,该设备才能用于存储文件,设备可以是软盘,可以 是一个硬盘分区,或者其他允许随机存取的块设备存储介质。 Kylin 2.0 的一个重要特征就是支持多种文件系统,这样它更为灵活并可以和许多其他种类 的操作系统交换数据,其中最常用的有以下几种: 1、UFS——是 Kylin 1.0 上的根文件系统,它实现了所有的标准文件属性,如文件属主和 组、存取权限等属性。 2、cd9660——支持 ISO 9660 格式的 CD-Rom。 3、NFS——网络文件系统,通过它 Unix 能在网络上共享文件系统。 4、msdos——DOS 和 Windows 使用的 FAT 文件系统,基本上是使用 7.3 的文件名, Windows95 之后扩展了文件名的长度,但仍然不区分大小写。Kylin 2.0 支持 Windows95 的长 文件名扩展和 FAT 32 格式的分区。 5、ext2——Linux 使用的文件系统。 6、NTFS-—Windows NT 使用的文件系统。 7、Proc——由核心在内存中产生的文件系统,用于提供关于系统的信息。实际上是一个假 的文件系统。 16 银河麒麟服务器操作系统管理员手册 Kylin 2.0 使用的 UFS 文件系统在基本分区中进行了划分,文件系统建立在 BSD 风格的子 分区中。这样每个 UFS 分区中能有多个文件系统,每个文件系统或交换空间各有一个标签 (DiskLabel),来标识其本身的起始和结束。当真正要使用文件系统时,就需要获得硬盘上文 件系统(UFS 分区和分区内部各个文件系统的 DiskLabel)的具体信息。这些硬盘上文件系统 的信息应该由管理员维护,同时也记录在硬盘上,可以使用 Kylin 2.0 中的系统工具 fdisk 来获 得保存在硬盘本身中的信息。 在 fdisk 的基础上,可以使用 disklabel 命令来检查硬盘上 BSD 子分区信息,如下所示: # disklabel ad0s3 disklabel 除了显示各个子分区 a-f 之外,还显示硬盘的参数。 4.3 创建、装入和卸载文件系统 4.3.1 创建文件系统 创建文件系统需要三个步骤。 第一步:使用 fdisk 命令进行硬盘的分区工作,fdisk 能查看系统分区表上的分区信息,并 更改其分区设置; 第二步:使用 disklabel 命令划分不同子分区空间并标记各个空间的 DiskLabel ; 第三步:使用 newfs 建立新文件系统,或者使用 swapon 命令增加交换设备。 4.3.2 装载文件系统 装载文件系统使用 mount 命令进行,其最基本的使用格式为: # mount device mountpoint mount 命令的主要选项如下: -a 安装/etc/fstab (见设置 fstab 文件)中列出的所有文件系统(除了那些被标记为 “noauto”或已经被安装的文件系统)。可以加上-t 选项来把它们排除在外。 -d 这个选项一般与-v 选项连在一起使用,可以决定 mount 将要在做什么事情。 -f 强制安装文件系统。 -r 安装只读文件系统,这与使用 rdonly 命令加上-o 选项完成的功能是一样的。 -t fstype 指定需安装文件系统类型。如果加上-a 选项,就只能安装给定类型的文件系 统。“ufs”是默认的文件类型。 -u 更新文件系统上的配置选项 -v 给出详细信息。 -w 挂上可以读写的文件系统 -o 提供了一个用逗号分割的选项列表,包括下面这些: nodev 不要解释文件系统上的特殊设备有用的安全选项; noexec 不允许在这个文件系统上执行二进制程序,是有用的安全选项; nosuid 不要在文件系统上解释 setuid 或 setgid 标记,也是有用的安全选项 17 银河麒麟服务器操作系统管理员手册 例如下面这个命令是把/dev/hda3 的内容装载到/mnt/dos: # mount –t vfat /dev/hda3 /mnt/dos 命令执行以后,可以在/mnt/dos 目录下面看到/dev/hda3 里面个所有内容。 4.3.3 卸载文件系统 卸载文件系统使用 umount 命令,其最基本使用格式为: # umount device/mountpoint… umount 命令后面加上的选项可能是一个加载点、一个设备名或是-a、 -A 选项;所有加-f 选 项的形式将会被强迫卸载;-v 选项是显示更多的信息;-a -A 选项用来卸载所有已挂上的文件 系统,但不建议卸载根文件系统。 例如想把前面例子中装载的/dev/hda3 卸载掉,则可以使用下面的命令: # umount /mnt/dos 卸载文件系统时,要先离开装载点目录,如果其中的程序在执行状态也应该退出执行,否 则会提示您不能卸载该文件系统。 4.4 设置 fstab 文件 在系统启动时,系统将自动装载必需的文件系统。而管理员所要做的是告诉 KYLIN2.0 应 该装载哪个文件系统、装载到哪个目录上和有关装载的参数和选项。所有的这些信息都必须写 入文件/etc/fstab 中。在装载 KYLIN 2.0 时,这个文件已经包含必要的文件系统,此后所要做的 只是在这个文件中再增加其他的文件系统。 # Device /dev/ad0s2b /dev/ad0s1a /dev/ad0s3d proc /dev/acd0 Mountpoint none / /home /proc /cdrom FStype swap ufs ufs procfs cd9660 Options Dump sw 0 rw 1 rw 2 rw 0 ro,noauto 0 Pass# 0 1 2 0 0 /etc/fstab 文件中的每一行为一种文件系统或交换设备定义对应的设备文件及装载选项。其 中根文件系统具备一定的特殊之处,因为/etc/fstab 以及 KYLIN 2.0 的内核文件本身处于根文件 系统中,因此系统必须首先装载根文件系统,才能正常访问其它文件系统。事实上根文件系统 在 KYLIN 1.0 内核中已经有了设置,启动时首先以只读方式装载根文件系统,并读取根文件系 统中相关文件的内容,然后再根据文件内容装载各个文件系统。 在使用了 fstab 文件之后,mount 命令的写法就可以简化了。mount 命令将查看 fstab 文件 中的内容以进行匹配,来选定正确的参数。 在装载了文件系统之后,可以使用不加参数的 mount 命令或 df 命令查看当前已装载的文 件系统信息。 4.5 检查文件系统 fsck 程序主要是在系统启动时,从/etc/fstab 文件中取出文件系统并装入之前运行,以便保 证所有文件系统都是“干净的”且适合装入。但在出现任何不一致时,需用该程序来修复,因 为没有正常关机操作而导致文件系统未被标识为“clean”时,也需要用该程序来整理它。 18 银河麒麟服务器操作系统管理员手册 fsck 结束运行后,可能会给出一个#提示符,这是后可以键入“boot”继续启动系统,也可 以键入“reboot”重新开时一个完整的启动过程。 对 fsck 而言,系统启动时并不是其唯一可以运行的地方。它任何时候都可以在意装入的文 件系统上通过命令来运行,尽管在系统已经满载并处于运行状态时这样做并不好。有一点非常 重要,如果对有故障的文件系统执行一致性检查时,最好不要修改文件系统上的东西。如果要 在系统的主要设备上运行此命令,应该把系统切换到单用户模式。 为了避免与当前磁盘的存取操作冲突,在进行检查之前先将文件系统卸载。为了不影响系 统中正运行的进程,进行磁盘维护,最好首先进入单用户状态。这个状态下将关闭所有不必要 的进程,系统也只装载了根文件系统,其他文件都没有装载,而且即使是根文件系统,也是以 只读方式装载的,这样能保证不会发生存取冲突,导致文件系统出现错误。 一旦磁盘被检查出错误,fsck 将提示管理员是否进行修改,可以使用 “-y” 参数,使得 fsck 自动进行修复工作,而不进行任何提示。系统每次启动的时候,都会使用这个参数自动检查和 修复文件系统。 如果想装入第二个磁盘,并且向磁盘中加入一个的文件系统,即使是在多用户模式下用 fsck 命令仍然是安全的。因为在系统启动时运行 fsck 命令,只是检查罗列在/etc/fstab 下的文件系统, 而不是向 fstab 文件中加入新设备并重新启动系统。但是如果这种方法失败了,就需要用 fsck 命 令,用前面所述的方法进行检查和修复,然后再重新装入磁盘。 4.6 监视文件系统 df 命令和 du 命令是用来查看系统状态的两个命令。主要用于系统管理员维护 系统。 4.6.1 df 命令 df 命令(disk free,磁盘释放)是了解系统磁盘使用状态最直接的方法。df 读操作是日常 检查工作的一部分。它还可以提供不同文件系统及其对应设备名称的相关信息。在命令行执行 df 命令后,屏幕上出现下列所示的信息: Filesystem /dev/ad0s1a devfs /dev/ad0s3d proc 1K-blocks 3965150 1 11772606 4 Used 1692352 1 142154 4 Available 1955586 0 10688644 0 Use% 47% 100% 2% 100% Mounted on / /dev /home /proc 4.6.2 du 命令 除了 df 命令,还有一个更具体的方法来监视磁盘的使用情况,尤其是您正在运行一台网络 服务器,而且拥有很多用户,任何用户都可能把庞大的数据放到自己的 home 目录下面。 这时候可用的工具是 du(disk usage,磁盘使用)。du 命令会用递归方式来判断当前所在的 目录下的每个目录的大小。当然也可以用带有一个数字值的-d 命令开关,即要求 du 命令递 归到第几级。还可以指定-s 选项,该选项强制执行“总结”模式。 19 银河麒麟服务器操作系统管理员手册 例如: # du –s 该命令只显示当前目录的文件所占用的磁盘空间。 20 银河麒麟服务器操作系统管理员手册 第5章 软件包管理 5.1 使用 RPM 来管理软件包 RPM 软件包管理器(RPM)是一种开放打包系统,任何人都可以使用。它在红帽企业 Linux, 以及其它 Linux 和 UNIX 系统上运行。Red Hat, Inc. 鼓励其它销售商在他们自己的产品上使 用 RPM 技术。RPM 按照 GPL 条款被发行。 对于终端用户来说,RPM 简化了系统更新。安装、卸装、升级 RPM 软件包可以使用简短的 命令就可完成。RPM 维护一个已安装软件包及其相应的文件数据库,因此,您可以在系统上使 用功能强大的查询和校验。 在升级中,RPM 处理配置文件时非常谨慎,因此决不会丢失您定制的配置 — 这是普通 的 .tar.gz 文件所无法达到的。 对于开发者来说,RPM 允许您把软件编码包装成源码包和程序包,然后提供给终端用户。 减轻了发行软件新版本所带来的维护负担。 5.1.1 RPM 的设计目标 为了理解 RPM 的使用方法,我们首先来了解 RPM 的设计目标: z 可升级性 使用 RPM,您不必全盘重装就可以在系统上升级个别组件。当您得到一个基于 RPM 的操作 系统的新发行版本(如红帽企业 Linux)后,您不必重新安装系统(基于其它打包系统的操作 系统需要重装)。RPM 让您能够智能化、自动化地升级您的系统。软件包中的配置文件在升级 中被保留,因此您不会丢失定制的设置。您不需要特殊的升级文件来升级某软件包,因为在系 统上安装和升级软件包所使用的是同一个 RPM 文件。 z 强大的查询功能 RPM 的设计提供了强大的查询功能。您可以在整个数据库中搜索软件包或某些特定文件。 您还可以轻易地了解到哪个文件属于哪个软件包,软件包来自哪里。RPM 软件包的文件包括在 被压缩的归档中,其中有定制的二进制档头,该档头内包含关于软件包及其内容的信息,允许 您快速简捷地查询个体软件包。 z 系统校验 RPM 另一项强大的功能是软件包校验。如果您担心可能删除了某软件包上的一个重要文件, 只需校验该软件包即可。任何异常情况都会通知给您。到时,若有必要,可以重装该软件包。 修改过的配置文件在重装中会被保留。 z 纯净源码 RPM 的一个重要设计目标是允许使用与软件的原创者所发行源码一致的“纯净”软件源 码。如果程序的新版本被推出,您不必从头开始编译。您可以看一看补丁来判定您可能需要做 什么。保持源码纯净对开发者来说相对重要,但是它能为终端用户带来高质量的软件。 21 银河麒麟服务器操作系统管理员手册 5.1.2 使用 RPM RPM 有五种基本操作模式(不包括软件包建构):安装、卸装、升级、查询和校验。本节 概括介绍了每一模式。想了解完整的选项和细节,请使用 rpm --help 命令。 安装 典型的 RPM 软件包名称类似于 foo-1.0-1.i386.rpm。该文件名包括软件包名称(foo)、 版本(1.0)、发行版本(1)、以及体系(i386)。安装软件包非常简单,登录为根用户,然 后在 shell 提示下键入如下命令: rpm -ivh foo-1.0-1.i386.rpm 如果安装成功,您会看到如下所示的输出: Preparing... 1:foo ########################################### [100%] ########################################### [100%] 如上面所示,RPM 显示软件包的名称,软件包被安装时通过在屏幕上打印“#”来显示安装 进度。 从 RPM 版本 4.1 开始,在安装或升级软件包时会自动检查软件包的签名。如果签名校验 失败,您就会看到如下所示的错误消息: error: V3 DSA signature: BAD, key ID 0352860f 如果它是只针对文件头的新签名,您会看到如下所示的错误消息: error: Header V3 DSA signature: BAD, key ID 0352860f 如果您没有安装合适的钥匙来校验签名,消息中就会包含 NOKEY,如: warning: V3 DSA signature: NOKEY, key ID 0352860f 软件包已安装 如果某软件包的同一版本已经安装,您就会看到: Preparing... ########################################### [100%] package foo-1.0-1 is already installed 如果您在软件包已安装的情况下仍打算安装同一版本的软件包,您可以使用 --replacepkgs 选项,它告诉 RPM 忽略这个错误: rpm -ivh --replacepkgs foo-1.0-1.i386.rpm 如果某个从 RPM 安装的文件被删除了,或者您想安装 RPM 中的最初配置文件,该选项就 会很有用。 文件冲突 如果试图安装的软件包中包含已被另一个软件包或同一软件包的早期版本安装了的文件, 您会看到: Preparing... ########################################### [100%] file /usr/bin/foo from install of foo-1.0-1 conflicts with file from package bar-2.0.20 22 银河麒麟服务器操作系统管理员手册 要使 RPM 忽略这个错误,使用 --replacefiles 选项: rpm -ivh --replacefiles foo-1.0-1.i386.rpm 未解决的依赖关系 RPM 软件包可能“依赖”于其它软件包,这意味着它们需要安装其它软件包才能正确运行。 如果您试图安装具有未解决依赖关系的软件包,您会看到: Preparing... ########################################### [100%] error: Failed dependencies: bar.so.2 is needed by foo-1.0-1 Suggested resolutions: bar-2.0.20-3.i386.rpm 使用以下命令来添加: rpm -ivh foo-1.0-1.i386.rpm bar-2.0.20-3.i386.rpm 如果这两个软件包都安装成功,您会看到: Preparing... 1:foo 2:bar ########################################### [100%] ########################################### [ 50%] ########################################### [100%] 如果您想强制安装(不是好办法,因为软件包可能不能够正确运行),使用 --nodeps 选 项。 5.1.3 卸载 删除软件包和安装软件包一样简单。在 shell 提示下键入下面的命令: rpm -e foo 在卸载某软件包时也会遇到依赖关系错误。当另一个已安装的软件包依赖于您试图删除的 软件包时,依赖关系错误就会发生。例如: Preparing... ########################################### [100%] error: removing these packages would break dependencies: foo is needed by bar-2.0.20-3.i386.rpm 要使 RPM 忽略这个错误,并强制删除该软件包(不是个好办法,因为依赖于它的软件包可 能无法正常运行),使用 --nodeps 选项。 5.1.4 升级 升级软件包和安装类似。在 shell 提示下键入以下命令: rpm -Uvh foo-2.0-1.i386.rpm 您在上面的例子里看不到的是,RPM 自动删除所有 foo 软件包的早期版本。事实上,您可 能想一直使用 -U 来安装软件包,因为即便您以前没有安装软件包的任何版本,这个选项也可 以安装该软件包。 23 银河麒麟服务器操作系统管理员手册 因为 RPM 对软件包和配置文件执行智能升级,您可能会看到和下面相似的消息: saving /etc/foo.conf as /etc/foo.conf.rpmsave 这条消息意味着您对配置文件所作的改变可能不会和软件包中的新配置文件“前向兼 容”,因此,RPM 保存了您的原始文件,并安装了一个新文件。您应该调查一下这两个配置文 件的区别,然后尽快地解决这些区别来确保系统继续正确运行。 升级实际上是删除和安装的组合,因此,在 RPM 升级中,除了删除和安装中会遇到的错误 外,您还会看到另一个错误。如果 RPM 认为您正试图升级到软件包的早期版本,您会看到: package foo-2.0-1 (which is newer than foo-1.0-1) is already installed 要使 RPM 强制“升级”,使用 --oldpackage 选项: rpm -Uvh --oldpackage foo-1.0-1.i386.rpm 5.1.5 刷新 刷新软件包和升级软件包相似。在 shell 提示下键入以下命令: rpm -Fvh foo-1.2-1.i386.rpm RPM 的刷新选项会比较在命令行上指定的软件包的版本和您的系统上已安装的版本。当 RPM 的刷新选项处理的版本比您已安装的版本更新,它就会升级到更新的版本。然而,如果某 软件包先前没有安装,RPM 的刷新选项将不会安装该软件包。这和 RPM 的升级选项不同,因为 不管该软件包的早期版本是否已被安装,升级选项都会安装该软件包。 RPM 的刷新选项可以用于单个软件包或一组软件包。如果您刚刚下载了大量不同的软件包, 您只想升级那些已安装在您的系统上的软件包,刷新即可达到目的。如果使用刷新,您不必在 使用 RPM 前把不必要的软件包从下载的软件包组中删除。 在这种情况下,使用以下命令: rpm -Fvh *.rpm RPM 将只会自动升级那些已经在系统上安装的软件包。 5.1.6 查询 使用 rpm -q 命令来查询已安装软件包的数据库。rpm -q foo 命令会显示已安装软件包 foo 的名称、版本、和发行号码: foo-2.0-1 与其指定软件包名称,不如和 -q 一起使用下列选项来指定您要查询的软件包。它们叫做 “软件包指定选项”。 • -a 查询所有已安装的软件包。 • -f 会查询拥有 的软件包。当指定文件时,您必须指定文件的完整路 径(如 /usr/bin/ls)。 24 银河麒麟服务器操作系统管理员手册 • -p 查询软件包。 指定被查询的软件包要显示哪些信息的方法多种多样。以下选项可以指定您要搜索的信息 类型。它们叫做“信息选择选项”。 • -i 显示软件包信息,包括名称、描述、发行版本、大小、制造日期、生产商,以及其 它杂项。 • -l 显示软件包所含的文件列表。 • -s 显示软件包中所有文件的状态。 • -d 显示被标记为文档(说明书页、信息页、README 等等)的文件列表。 • -c 显示被标记为配置文件的文件列表。可以在安装后改变这些文件来使软件包适用于 您的系统(譬如,sendmail.cf、passwd、inittab 等等)。 5.1.7 校验 校验软件包比较从某软件包安装的文件和原始软件包中的同一文件的信息。它校验每个文 件的大小、MD5 值、权限、类型、所有者、以及组群。 rpm -V 命令校验软件包。您可以查询任何软件包选择选项列举的条目来指定要校验的软件 包。校验的最简单用法是 rpm -V foo,它校验所有在 foo 软件包内的文件是否和最初安装时 一样。例如: • 要校验包含某一特定文件的软件包: rpm -Vf /bin/vi • 要校验所有安装了的软件包: rpm –Va • 要根据 RPM 软件包文件来校验安装了的软件包: rpm -Vp foo-1.0-1.i386.rpm • 如果您怀疑 RPM 数据库已被损坏,该命令就会很有用。 • 如果一切都被校验正确,屏幕上就不会显示输出。如果出现矛盾,它们就会被显 示。输出的格式为包括八个字符的字符串,其后的“c” 代表配置文件,然后是文件名 称。这八个字符的每个字符都代表一种文件属性的比较结果,所比较的是文件的属性和 RPM 数据库中记录的属性。单用一个 “.”意味着测试通过。下列字符代表某类测试失 败: • 5 — MD5 校验和 • S — 文件大小 • L — 符号链接 • T — 文件修改时间 • D — 设备 • U — 用户 • G — 组群 25 银河麒麟服务器操作系统管理员手册 • M — 模式(包括权限和文件类型) • ? — 不可读文件 • 根据输出,可以判断是应该删除还是重新安装该软件包,或用另一种方法来解决 这个问题。 5.2 安装 tar 格式的软件包 • *.tar.gz 形式的二进制软件包使用 tar 工具打包,在用 gzip 程序压缩而成的。 安装这种格式的软件包时需要先解开压缩包,然后再开始安装,安装的过程如下: • 1、通过下载、光盘等方式获得应用软件; • 2、解压缩软件包,一般使用“tar –xvzf *.tar.gz”命令就可以完成解压和解 包工作; • 3、阅读附带的 INSTALL 和 README 文件; • 4、执行“./configure”命令为编译做好准备; • 5、通过后,生成 Makefile 文件,运行“make”命令开始进行编译; • 6、执行“make install”命令完成安装; • 7、执行“make clean”命令删除安装时产生的临时文件。 经过上面几个步骤,一个*.tar.gz 形式的软件包就安装完毕了。一般地,安装的可执行文件存 放在/usr/local/bin 目录下,可以查看附带的 INSTALL 和 README 文件来确定可执行文件的位 置。 26 银河麒麟服务器操作系统管理员手册 第6章 网络配置 计算机需要网络连接才能和其它计算机通讯。这是通过让操作系统识别接口卡(如:以太 网卡、ISDN 调制解调器、权标环),并配置相应的接口连接网络而实现的。 网络管理工具可以用来配置以下类型的网络接口: z 以太网 z ISDN z 调制解调器 z xDSL z 权标环 z CIPE z 无线设备 它还可以被用来配置 IPsec 连接;管理 DNS 设置;管理用来贮存额外主机名和 IP 地址 组合的 /etc/hosts 文件。 要使用网络管理工具,您必须具备根特权。要启动这个程序,点击面板上的「开始」 => 「控 制面板」 => 「网络」。 27 银河麒麟服务器操作系统管理员手册 图 6.1 网络管理工具 6.1 总览 要使用网络管理工具来配置网络连接,执行以下步骤: 1. 添加和该物理硬件设备相关的网络设备。 2. 如果物理硬件设备不存在,把它添加到硬件列表中。 3. 配置主机名和 DNS 设置。 4. 配置您无法通过 DNS 查寻的主机。 本章将会针对每类网络连接来讨论以上步骤的具体操作。 6.2 建立以太网连接 要建立以太网连接,您需要一块网卡(NIC),一条网络电缆(通常是 CAT5 电缆),以及 要连接的网络。不同的网络配置使用不同的速度,请确定您的 NIC 与您想连接的网络兼容。 要添加以太网连接,执行以下步骤: 点击「设备」标签。 点击工具栏上的「新建」按钮。 从「设备类型」列表中选择「以太网连接」,然后点击「前进」。 28 银河麒麟服务器操作系统管理员手册 如果您已经把网卡添加到了硬件列表中,则从「以太网卡」列表中选择它。否则,选择「其 它以太网卡」来添加硬件设备。 如果您选择了「其它以太网卡」,「选择以太网适配器」窗口就会出现。选择该以太网卡 的制造商和型号。选择该设备的名称。如果它是系统的第一个以太网卡,把 eth0 选作设备名; 如果它是第二个以太网卡,把 eth1 选作设备名;依此类推。网络管理工具还允许您为 NIC 配 置资源。点击「前进」来继续。 在「配置网络设置」窗口上(如图 6.2 所示),您可以选择 DHCP 或静态 IP 地址。如果 该设备在每次网络启动时都指定不同的 IP 地址,就不要为其指定主机名。点击「前进」来继 续。 点击「创建以太网设备」上的「应用」按钮。 图 6.2 以太网设置 配置了以太网设备后,它就会出现在图 6.3 所示的设备列表中。 29 银河麒麟服务器操作系统管理员手册 图 6.3 以太网设备 请确定选择「文件」 => 「保存」来保存改变。 添加了以太网设备后,您可以从设备列表中选择它,然后点击「编辑」来编辑它的配置。 譬如,当某设备被添加,它被默认配置成引导时启动。要改变这个设置,选择编辑该设备,修 改「当计算机启动时激活设备」,然后保存改变。 当设备被添加后,它不会被立即激活,您会看到「不活跃」状态。要激活某设备,从设备 列表中选择它,然后点击「激活」按钮。如果系统配置表明要在计算机启动时激活设备(默认), 您就不必重新执行这一步骤。 6.3 管理 DNS 设置 DNS 标签允许您配置系统的主机名、域、域名服务器和搜索域。域名服务器用来查寻网络 上的其它主机。 如果 DNS 服务器的名称要从 DHCP 或 PPPoE 中检索到(或从 ISP 中检索),则不要添加 主要、次要或第三 DNS 服务器。 如果主机名被动态地从 DHCP 或 PPPoE 中检索(或从 ISP 中检索),则不要改变这个主 机名。 30 银河麒麟服务器操作系统管理员手册 图 6.4 DNS 配置 6.4 管理主机 「主机」标签允许您在 /etc/hosts 文件中添加、编辑、或删除主机。该文件包含 IP 地 址和它们相对应的主机名。 当您的系统试图把主机名解析为 IP 地址或判定 IP 地址的主机名时,它在使用域名服务 器前首先参照 /etc/hosts 文件。如果 IP 地址被列在 /etc/hosts 文件中,域名服务器就不 会被使用。如果您的网络包括没有列在 DNS 内的 IP 地址,推荐您把它们添加到 /etc/hosts 文件中。 要在 /etc/hosts 文件中添加项目,点击「主机」标签下的「新建」按钮,提供要求的信 息,然后点击「确定」。选择「文件」 => 「保存」或按 [Ctrl]-[S] 来把改变保存到 /etc/hosts 文件中。您不必重新启动网络或网络服务,因为该文件在每个地址被解析时都会被参照。 31 银河麒麟服务器操作系统管理员手册 图 6.5 主机配置 6.5 激活设备 网络设备可以被配置为是否在引导时激活。例如,调制解调器连接的网络设备通常不在引 导时被启动;而以太网连接通常在引导时被启动。如果您的网络设备被配置成不在引导时启动, 您可以使用网络设备控制程序来在引导后激活它。要启动它,点击面板上的「开始」=> 「应用 程序」 => 「系统工具」 => 「网络设备控制」。 32 银河麒麟服务器操作系统管理员手册 图 6.6 激活设备 要激活某设备,从列表中选择它,点击「激活」按钮。要停止该设备,从列表中选择它, 点击「解除」。 如果配置了不止一个网络配置档案,它们在界面中被列出,并可以被激活 6.6 保存和恢复网络配置 网络管理工具的命令行版本可以被用来把系统的网络配置保存到文件中。然后,该文件就 可以被用来在 Kylin 系统上恢复网络设置。 该功能可以被用作自动备份脚本的一部分,在升级或重新安全前保存或把配置复制到不同 的 Kylin 系统上。 要把系统的网络配置保存或导出(export)到 /tmp/network-config 文件中,以根用户身 份执行以下命令: config-network-cmd -e > /tmp/network-config 要从前一个命令中创建的文件中恢复或导入(import)网络配置,以根用户身份执行以下 命令: config-network-cmd –I -c -f /tmp/network-config 33 银河麒麟服务器操作系统管理员手册 第7章 配置 vsftpd 服务器 7.1 vsftpd 简介 什么是 vsftpd ? vsftpd 是一个基于 GPL 发布的类 UNIX 系统上使用的 FTP 服务器软件。其中的 vs 是"Ve r y Secure"的缩写,从此名称缩写可以看出,编制者的初衷就是代码的安全性。 Vsftpd 的特性 安全性是编写 vsftpd 代码的初衷,除了与生俱来的安全性能之外,高速,稳定的性能是 vsftpd 的两个特性。在速度方面:使用 ASCII 模式下载数据时,vsftpd 的速度是 WU-FTPd 的两倍, 在千兆以太网上的下载速度可达 86Mbyte/sec。在稳定性方面:vsftpd 可以在单机(非集群)上支 持 4000 个以上的并发用户同时连接。 除了安全,高速,稳定之外,vsftpd 还具有如下的特性: z 支持基于 IP 的虚拟 FTP 服务器 z 支持虚拟用户 z 支持 PAM 或 xinetd / tcp_wrappers 的认证方式 z 支持两种运行方式:独立和 Xinetd z 支持每个虚拟用具有独立的配置 z 支持带宽限制等 从 RPM 安装 vsftpd 1. 安装 vsftpd 查看是否安装了 vsftpd 和 anonftp # rpm -qa|grep vsftpd # rpm -qa|grep anonftp 安装所需的 RPM 包 # rpm -ivh vsftpd* # rpm -ivh anonftp* 启动 vsftpd # service vsftpd start 或者 # cd /etc/init.d # ./vsftpd start 7.2 vsftpd 的默认配置 配置文件 在 Kylin 中 vsftpd 的配置文件有三个,分别是:/etc/vsftpd.conf , /etc/vsftpd.ftpusers ,/etc/vsftpd.user_list 。其中,/etc/vsftpd.conf 是主配置文件, 34 银河麒麟服务器操作系统管理员手册 /etc/vsftpd.ftpusers 中指定了哪些用户不能访问 FTP 服务器,/etc/vsftpd.user_list 中指 定的用户默认情况(即在/etc/vsftpd.conf 中设置了 userlist_deny=YES)下也不能访问 FTP 服 务器,当在/etc/vsftpd.conf 中设置了 userlist_deny=NO 时,仅仅允许/etc/vsftpd.user_list 中指定的用户访问 FTP 服务器。 默认配置 允许匿名登录 anonymous_enable=YES 允许本地用户登录 local_enable=YES 开放本地用户的写权限 write_enable=YES 设置本地用户的文件生成掩码为 022,默认值为 077 local_umask=022 当切换到目录时,显示该目录下的.message 隐含文件的内容,这是由于默认情况下有 message_file=.message 的设置 dirmessage_enable=YES 激活上传和下载日志 xferlog_enable=YES 启用 FTP 数据端口的连接请求 connect_from_port_20=YES 使用标准的 ftpd xferlog 日志格式 xferlog_std_format=YES 设置 PAM 认证服务的配置文件名称,该文件存放在”/etc/pam.d/”目录下 pam_service_name=vsftpd 7.3 进一步配置 vsftpd 1. 允许匿名用户上传 为了使匿名用户能够上传,需要在/etc/vsftpd 中激活两个配置选项,分别是: anon_upload_enable anon_mkdir_write_enable 同时还要添加 anon_world_readable_only=NO 放开匿名用户对整个服务器的浏览权限。具 体的操作步骤如下: 配置 vsftpd 允许匿名用户上传 //修改 vsftpd 的主配置文件/etc/vsftpd.conf # vi /etc/vsftpd.conf //将如下两行前的#删除 //(1) #anon_upload_enable=YES 允许匿名用户上传 //(2) #anon_mkdir_write_enable=YES 开启匿名用户的写和创建目录的权限 //若要以上两项设置生效,同时还要求: 35 银河麒麟服务器操作系统管理员手册 //(1) write_enable=YES //(2) 匿名用户对文件系统的上传目录具有写权限 //添加如下的配置语句 // anon_world_readable_only=NO //上面的配置语句用于放开匿名用户的浏览权限 //修改后存盘退出 vi // //创建匿名上传目录 # mkdir /var/ftp/incoming # 修改上传目录的权限 # chmod o+w /var/ftp/incoming/ # //重新启动 xinetd # service xinetd restart # 2. 启用 ASCII 传输方式 默认情况下,vsftpd 为了提高传输效率,禁止了 ASCII 传输方式。虽然在 ftp 客户软件中可 以使用 asc 命令,但是传输文件时仍然使用二进制传输方式。可以分别启用上传和下载的 ASCII 传输方式,方法是编辑/etc/vsftpd 配置文件,将如下两行前的#去掉即可启用。 #ascii_upload_enable=YES #ascii_download_enable=YES 3. 设置连接服务器后的欢迎信息 为了使用户连接服务器后显示信息,vsftpd 提供了两个选项,分别是: ftpd_banner banner_file 例如:可以设置如下的 ftpd_banner 选项的值: ftpd_banner=Welcome to Smartraining FTP service. 即:用户连接服务器后显示信息"Welcome to Smartraining FTP service.". 也可以设置如下的 banner_file 选项的值: banner_file=/var/vsftpd_banner_file 即:用户连接服务器后显示文件/var/vsftpd_banner_file 中的信息。 注意: (1) 如果设置了 ftpd_banner 的值,将覆盖 vsftpd 默认的服务器连接后的信息。 (2) 如果 ftpd_banner 和 banner_file 同时设置,那么 banner_file 将覆盖 ftpd_banner 的 设置。 4. 配置基本的性能和安全选项 1) 设置空闲的用户会话的中断时间 36 银河麒麟服务器操作系统管理员手册 例如下面的配置: idle_session_timeout=600 将在用户会话空闲 10 分钟后被中断。 2) 设置空闲的数据连接的的中断时间 例如下面的配置: data_connection_timeout=120 将在数据连接空闲 2 分钟后被中断 3) 设置客户端空闲时的自动中断和激活连接的时间 例如下面的配置: accept_timeout=60 connect_timeout=60 将使客户端空闲 1 分钟后自动中断连接,并在中断 1 分钟后自动激活连接. 4)设置最大传输速率限制 例如下面的配置: local_max_rate=50000 anon_max_rate=30000 将使本地用户的最大传输速率为 50kkbytes / sec,匿名用户的传输速率为 30 kbytes / sec 5) 设置客户端连接时的端口范围 例如下面的配置: pasv_min_port=50000 pasv_max_port=60000 将使客户端连接时的端口范围在 50000 和 60000 之间.这提高了系统的安全性。 6) 设置 chroot 在默认配置中,本地用户可以切换到自家目录以外的目录进行浏览,并在权限许可的范围内 进行下载和上传.这样的设置对于一个 FTP 服务器来说是不安全的。如果希望用户登录后不能切 换到自家目录以外的目录,则需要设置 chroot 选项,涉及如下选项: chroot_local_user chroot_list_enable chroot_list_file 有两种设置 chroot 的方法: 设置所有的本地用户执行 chroot 只要将 chroot_local_user 的值设为 YES 即可, 即: chroot_local_user=YES 设置指定的用户执行 chroot 需要如下的设置: chroot_local_user=NO chroot_list_enable=YES chroot_list_file= /etc/vsftpd.chroot_list 37 银河麒麟服务器操作系统管理员手册 这样,只有/etc/vsftpd.chroot_list 文件中指定的用户才执行 chroot。 配置基于本地用户的访问控制 要配置基于本地用户的访问控制,可以通过修改 vsftpd 的主配置文件/etc/vsftpd.conf 来 进行,有如下两种限制方法: 限制指定的本地用户不能访问,而其他本地用户可访问 例如下面的设置: userlist_enable= YES userlist_deny=YES userlist_file= /etc/vsftpd.user_list 使文件/etc/vsftpd.user_list 中指定的本地用户不能访问 FTP 服务器,而其他本地用户可 访问 FTP 服务器. 2) 限制指定的本地用户可以访问,而其他本地用户不可访问 例如下面的设置: userlist_enable= YES userlist_deny= NO userlist_file= /etc/vsftpd.user_list 使文件/etc/vsftpd.user_list 中指定的本地用户可以访问 FTP 服务器,而其他本地用户不 可以访问 FTP 服务器。 配置基于主机的访问控制 由于 vsftpd 有两种运行方式,即:由 xinetd 启动和独立启动.这两种运行方式的主机访问控 制配置是不同的,下面介绍的是由 xinetd 启动的 vsftpd 的主机访问控制的配置.显然,要配置这 种主机访问控制,需要修改配置文件/etc/xinetd.d/vsftpd. 1) 只允许指定的主机访问 在配置文件/etc/xinetd.d/vsftpd 的{}中添加如下的配置语句: only_from 例如:only_from 192.168.1.0 表示只允许 192.168.1.0 网段内的主机访问. 2) 指定不能访问的主机 在配置文件/etc/xinetd.d/vsftpd 的{}中添加如下的配置语句: no_access 例如:no_access 192.168.1.0 表示只有 192.168.1.0 网段内的主机不能访问. 关于主机表的书写形式,见表 7.1 表 7.1 xinetd 配置访问控制表时主机表的书写语法 选项值 含义 Hostname 可解析的主机名 IP Address 点分十进制表示的 IP 地址 Net_name 在/etc/networks 中定义的网络名 38 银河麒麟服务器操作系统管理员手册 x.x.x.0 x.x.0.0 x.0.0.0 0.0.0.0 0 作为通配符看待.如:191.72.61.0 匹配从 191.72.61.0 到 191.72.61.255 的所有 IP 地址。0.0.0.0 表示匹配所有的 IP 地址 x.x.x.{a,b,…} 指定主机表.如:191.72.61.{1,3,123}表示包含地址 x.x.{a,b,…} 191.72.61.1, 191.72.61.2 和 191.72.61.123 x.{a,b,…} IPAddress/netmask 定义要匹配的网络或子网.如:172.19.16/20 匹配从 172.19.16.0 到 172.19.31.255 3) 配置每个客户机的最大连接数 在配置文件/etc/xinetd.d/vsftpd 的{}中添加如下的配置语句: per_source = 数值 例如:per_source = 5 表示每个客户机的最大连接数为 5. 4) 配置服务器总的并发连接数 在配置文件/etc/xinetd.d/vsftpd 的{}中添加如下的配置语句: instances = 数值 例如:instances = 200 表示 FTP 服务器总共支持的最高连接数为 200. 5) 配置访问时间限制 在配置文件/etc/xinetd.d/vsftpd 的{}中添加如下的配置语句: access_time = hour:min-hour:min 例如:access_time = 18:00-23:59 表示只有在下午 6 点到午夜 0 点之前才能访问此 FTP 服务器; 又如:access_time = 8:30-11:30 13:00-18:00 表示只有在上午 8 点半到 11 点半和下午 1 点到下午 6 点才能访问此 FTP 服务器. 6) 指定连接失败时显示的信息 在配置文件/etc/xinetd.d/vsftpd 的{}中添加如下的配置语句: banner_fail = 文件名 例如:banner_fail = /etc/vsftpd.busy_banner 表示当连接失败时显示文件/etc/vsftpd.busy_banner 中的内容。 7.4 配置本地组访问的 FTP 服务器 本节将解决类似这样的问题: 本地组 softgrp 有三个用户 soft,soft1 和 soft2,其中 soft 对 FTP 有读写(包括列文件目 录,上传,下载)权限,而 soft1 和 soft2 对 FTP 只有读(包括列文件目录,下载)的权限. 为了实现 这种功能,我们要借助于本地文件系统的权限设置来实现,具体操作步骤如下: 配置本地组访问的 FTP 服务器 39 银河麒麟服务器操作系统管理员手册 //创建本地组的 FTP 服务器目录 # mkdir -p /var/local-ftp/softgrp //创建本地用户和组 # groupadd softgrp # useradd -G softgrp -d /var/local-ftp/softgrp -M soft # useradd -G softgrp -d /var/local-ftp/softgrp -M soft1 # useradd -G softgrp -d /var/local-ftp/softgrp -M soft2 //设置用户口令 # passwd soft # passwd soft1 # passwd soft2 //修改/var/local-ftp/softgrp 的属主和权限 # chown soft.softgrp /var/local-ftp/softgrp # chmod 750 /var/local-ftp/softgrp # ll -d /var/local-ftp/softgrp drwxr-x--- 2 soft softgrp 4096 3 月 12 00:46 /var/local-ftp/softgrp # //设置了上面对目录/var/local-ftp/softgrp 的文件系统权限之后 //(1)soft 用户是该目录的属主,因此具有读写权限和进入目录的权限 //(2)soft1 和 soft2 用户属于 softgrp 组,因此只具有读权限和进入目录的权限 7.5 使用 vsftpd 配置高安全级别的匿名服务器 高安全级别匿名 FTP 服务器的配置要求 仅仅允许匿名用户访问 不允许本地用户访问 关闭所有写权限 不允许匿名用户上传 设置客户端连接时的端口范围 设置 匿名用户的最大传输速率限制 设置空闲的数据连接的的中断时间 设置客户端空闲时的自动中断和激活连接的时间 配置每个主机的最大连接数 配置总的并发连接数 配置禁止访问的主机 配置安全日志 配置高安全级别的匿名 FTP 服务器 配置这种安全匿名服务器,可以从 vsftpd 的源代码树中获得,具体操作步骤如下: 40 银河麒麟服务器操作系统管理员手册 配置高安全级别的匿名服务器 //进入 vsftp 源代码树的 EXAMPLE/INTERNET_SITE 目录 # cd /usr/local/src/vsftpd-1.1.3/EXAMPLE/INTERNET_SITE //复制配置文件 # cp vsftpd.conf /etc # cp vsftpd.xinetd /etc/xinetd.d/vsftpd //修改主配置文件/etc/vsftpd.conf,添加一个连接后的信息 # cat >>/etc/vsftpd.conf< ftpd_banner=This FTP server is anonymous only. > ! # //显示主配置文件的内容如下 # cat /etc/vsftpd.conf # Access rights anonymous_enable=YES local_enable=NO write_enable=NO anon_upload_enable=NO anon_mkdir_write_enable=NO anon_other_write_enable=NO # Security anon_world_readable_only=YES connect_from_port_20=YES hide_ids=YES pasv_min_port=50000 pasv_max_port=60000 # Features xferlog_enable=YES ls_recurse_enable=NO ascii_download_enable=NO async_abor_enable=YES # Performance one_process_model=YES idle_session_timeout=120 data_connection_timeout=300 accept_timeout=60 connect_timeout=60 anon_max_rate=50000 ftpd_banner=This FTP server is anonymous only. # 41 银河麒麟服务器操作系统管理员手册 //接下来查看/etc/xinetd.d/vsftpd # cat /etc/xinetd.d/vsftpd service ftp { disable = no socket_type = stream wait = no user = root server = /usr/local/sbin/vsftpd per_source = 5 instances = 200 no_access = 192.168.1.3 banner_fail = /etc/vsftpd.busy_banner log_on_success += PID HOST DURATION log_on_failure += HOST } # //重新启动 xinetd # service xinetd restart # //配置结束 7.6 配置基于 IP 的虚拟 FTP 服务器 vsftpd 支持基于 IP 的虚拟 FTP 服务器配置.其主要配置步骤为: 配置虚拟 IP 地址 建立虚拟 FTP 的服务器目录并设置适当的权限 建立虚拟 FTP 的服务器的 xinetd 配置文件 建立虚拟 FTP 的服务器的主配置文件 具体操作过程如下: 配置基于 IP 的虚拟 FTP 服务器 //查看本机现有的 IP 地址 # ifconfig |grep -1 eth0 eth0 Link encap:Ethernet HWaddr 00:50:56:C7:22:DF inet addr:192.168.1.222 Bcast:192.168.1.255 Mask:255.255.255.0 //可以看出本机的第一个网络接口 eth0 的 IP 为 192.168.1.222 //下面配置一个虚拟网络接口 eth0:1 # ifconfig eth0:1 192.168.1.234 up # # ifconfig |grep -1 eth0:1 42 银河麒麟服务器操作系统管理员手册 eth0:1 Link encap:Ethernet HWaddr 00:50:56:C7:22:DF inet addr:192.168.1.234 Bcast:192.168.1.255 Mask:255.255.255.0 # //可以看出本机的虚拟网络接口 eth0:1 的 IP 为 192.168.1.234 // //下面建立虚拟 FTP 的服务器目录 # mkdir -p /var/ftp2/pub //确保目录具有如下的权限 # ll -d /var/ftp2 drwxr-xr-x 3 root root 4096 3 月 12 03:00 /var/ftp2 # ll -d /var/ftp2/pub drwxr-xr-x 2 root root 4096 3 月 12 03:00 /var/ftp2/pub # //在下载目录中生成测试文件 # echo "hello">/var/ftp2/pub/test_file # //下面创建此虚拟服务器的匿名用户所映射的本地用户 ftp2 # useradd -d /var/ftp2 -M ftp2 # //更改现有的配置文件/etc/xinetd.d/vsftpd # vi /etc/xinetd.d/vsftpd // 在此文件的{}中添加如下的配置语句: // bind = 192.168.1.222 // 将原 FTP 服务绑定到 eth0 接口,之后保存退出 vi # //生成新的虚拟 FTP 服务器的配置文件/etc/xinetd.d/vsftpd2 # cp /etc/xinetd.d/vsftpd /etc/xinetd.d/vsftpd2 //更改新的配置文件/etc/xinetd.d/vsftpd2 # vi /etc/xinetd.d/vsftpd2 //在此文件的{}中添加如下的配置语句: // bind = 192.168.1.234 //将虚拟 FTP 服务绑定到 eth0:1 接口 //另外添加如下的配置语句: // server_args = /etc/vsftpd_site2.conf //使 vsftpd 读取虚拟 FTP 服务器的主配置文件,之后保存退出 vi # //生成虚拟 FTP 服务器的主配置文件/etc/vsftpd_site2.conf # cp /etc/vsftpd.conf /etc/vsftpd_site2.conf //修改新的主配置文件 43 银河麒麟服务器操作系统管理员手册 # vi /etc/vsftpd_site2.conf //将如下的配置语句行: // ftpd_banner=This FTP server is anonymous only. //修改为: // ftpd_banner=This is the alternative FTP site. //添加如下的配置语句: // ftp_username=ftp2 //使此虚拟服务器的匿名用户映射到本地用户 ftp2 //这样匿名用户登录后才能进入本地用户 ftp2 的/var/ftp2 目录 //修改后,保存退出 vi # //重新启动 xinetd # service xinetd restart # //配置结束 7.7 配置独立运行的 vsftpd 配置独立运行的 vsftpd 显然,这种启动方式将不再需要/etc/xinetd.d 下面的配置文件.要配置独立运行的 vsftpd 很简单,只需要在前面的主配置文件的基础上添加如下的配置即可. 设置 listen=YES 指明 vsftpd 以独立运行方式启动. 为了实现访问控制,需要添加如下的配置项: 设置 max_clients=200 指明服务器总的并发连接数 设置 max_per_ip=4 指明每个客户机的最大连接数. 具体操作步骤如下: 配置独立运行的 vsftpd //复制一个新的主配置文件 # cp /etc/vsftpd.conf /etc/vsftpd.standalone.conf //编辑新的配置文件/etc/vsftpd.standalone.conf # vi /etc/vsftpd.standalone.conf //在文件开始处插入下面的行 //listen=YES //max_clients=200 //max_per_ip=4 44 银河麒麟服务器操作系统管理员手册 //并将下面的配置语句 //ftpd_banner=This FTP server is anonymous only. //改为: //ftpd_banner=This FTP server is anonymous only, // and vsftpd in "standalone" mode. //(注意:要写在一行里) //用:wq 退出 vi # //将由 xinetd 启动的配置停用 # vi /etc/xinetd.d/vsftpd //将 disable = no //设为 disable = yes //保存后退出 vi # vi /etc/xinetd.d/vsftpd2 //将 disable = no //设为 disable = yes //保存后退出 vi // 重新启动 xinetd # service xinetd restart // 启动独立运行的 vsftpd 守护进程 # /usr/local/sbin/vsftpd /etc/vsftpd.standalone.conf & //配置结束 配置独立运行的 vsftpd 在非标准端口下提供服务 为了配置独立运行的 vsftpd 在非标准端口下提供服务需要添加 listen_port 配置语句.具 体操作步骤如下: 配置独立运行的 vsftpd 在非标准端口下提供服务 //修改独立运行的主配置文件,添加 listen_port 配置语句 # echo "listen_port=10021">> /etc/vsftpd.standalone.conf //重新启动 vsftpd 守护进程 # killall vsftpd # /usr/local/sbin/vsftpd /etc/vsftpd.standalone.conf & 比较独立启动和 xinetd 启动的 vsftpd 服务器配置和启动 下面比较两种启动方式的 vsftp 配置,见表 表 7.2 独立启动和 xinetd 启动的 vsftpd 服务器配置和启动的比较 独立启动 xinetd 启动 所需的配置文件 主配置文件 主配置文件 配置 listen listen_address listen_port 45 xinetd 配置文件 bind 银河麒麟服务器操作系统管理员手册 max_per_ip per_source max_clients instances only_from 和 no_access access_time server_args 启动 将配置文件作为 启动 xinetd 参数运行 用 vsftpd 配置独立运行的虚拟 FTP 服务器 为了配置独立运行的虚拟 FTP 服务器需要使用 listen_address 配置语句。具体步骤如下: 用 vsftpd 配置独立运行的虚拟 FTP 服务器 //修改原独立运行的服务器配置文件, # vi /etc/vsftpd.standalone.conf //添加 listen_address=192.168.1.222 的配置行 //将原 FTP 服务绑定到 eth0 接口.之后用:wq 退出 vi # //由 xinetd 运行的虚拟服务器的配置文件创建一个新的配置文件 # cp /etc/vsftpd_site2.conf /etc/vsftpd.standalone2.conf //修改新的配置文件 # vi /etc/vsftpd.standalone2.conf //在文件开始处插入下面的行 //listen=YES //listen_address=192.168.1.234 将虚拟服务器绑定到 eth0:1 接口 //max_clients=200 //max_per_ip=4 //并将下面的配置语句 //ftpd_banner=This is the alternative FTP site. //改为: //ftpd_banner=This is the alternative FTP site, // and vsftpd in "standalone" mode. //(注意:要写在一行里) //用:wq 退出 vi # //让原 FTP 服务器重新读取配置文件 # ps auxw|grep vsftpd root 7164 0.0 0.2 1424 376 pts/0 S 22:06 0:00 /usr/local/sbin/vsftpd /etc/vsftpd.standalone.conf # kill -HUP 7164 //上面的 7164 是由 ps 命令查得的 PID 46 银河麒麟服务器操作系统管理员手册 //启动新的虚拟 FTP 服务器 # /usr/local/sbin/vsftpd /etc/vsftpd.standalone2.conf & # 7.8 配置虚拟用户的 FTP 服务器 本节讲述虚拟用户(virtual users)的 FTP 服务器的配置.虚拟用户只能访问为其提供的 FTP 服务,虚拟用户不能像本地的实用户那样登录系统而访问系统的其他资源.若用户对 FTP 服务器 站内具有写权限并且不允许访问系统的其他资源,则该用户应该使用虚拟用户才能提高系统的 安全性. 传统的 FTP 服务器采用如下的方法实现虚拟用户: 在本地建立普通用户账号并设置密码 将其登录 shell 设为不可登录 由 passwd/shadow 口令系统进行认证 vsftpd 的虚拟用户采用了不与系统账户口令文件合二为一的方法,也就是说,为了认证这些 虚拟用户 vsftpd 使用单独的口令库文件(pam_userdb),由可插拔认证模块(PAM)进行认证.使用 这种方式更加安全,并且配置更灵活. 比较 vsftpd 中的三类用户 vsftp 中有三类用户,即:本地用户,虚拟用户和匿名用户.下面将这三类用户进行比较,见 表. 表 比较 vsftpd 中的三类用户 用户名 本地用户 虚拟用户 匿名用户 本地用户名 虚拟用户口令库中指 Anonymous 或 ftp 定的用户名 登录用户名 本地用户名 虚拟用户口令库中所 Anonymous 或 ftp 有用户名 用户口令 本地用户的口令 虚拟用户口令库中指 Email 地址 定的口令 口令的认证方式 由基于 DB 口令库由 PAM 进行 passwd/shadow 的口令系 由 vsftpd 认证 认证 统认证 登录映射的本地用户 本地用户名 guest_username 所 名 登录后进入的目录 对登录后的目录是否 定的本地用户,默认为 空 ftp guest_username 所 定的本地用户的自家目 录 录,默认为/var/ftp e_only=NO 时可以 write_enable=YES 47 ftp_username 所指 指定的本地用户的自家目 anon_world_readabl 可浏览 对登录后的目录是否 指定的本地用户,默认为 本地用户的自家目录 可以 ftp_username 所指 write_enable=YES, anon_world_readabl e_only=NO 时可以 write_enable=YES, 银河麒麟服务器操作系统管理员手册 可上传 时可以 对登录后的目录是否 可创建目录 同时 同时 anon_upload_enable=YES anon_upload_enable=YES 时可以 时可以 write_enable=YES 时可以 write_enable=YES, 同时 write_enable=YES, 同时 anon_mkdir_write_e nable=YES 时可以 对登录后的目录是否 可改名和删除 write_enable=YES 时可以 anon_mkdir_write_e nable=YES 时可以 write_enable=YES, write_enable=YES, 同时 同时 anon_other_write_enabl anon_other_write_enabl e=YES 时可以 e=YES 时可以 是否有用户自家目录 有 无 无 是否能切换到登录目 chroot_local_user= 不能,即设置 不能 录以外的目录 NO 时能,其值为 YES 时不 chroot_local_user=YES 能 激活此类用户的命令 local_enable=YES guest_enable=YES anonymous_enable=Y ES 配置简单的虚拟用户 FTP 服务器 为了配置虚拟用户的 FTP 服务器,其主要配置步骤为: 生成虚拟用户口令库文件 配置生成 vsftpd 的认证文件 建立虚拟用户所要访问的目录并设置相应权限 建立配置文件 下面以独立运行的 vsftpd 为例进行配置,具体的操作过程如下: 配置简单的虚拟用户 FTP 服务器 //生成虚拟用户口令库文件,为了建立此口令库文件,先要生成一个文本文件 # cat > tom > foo > fred > bar > valid > lwd > dede > jy > ! # //此文本文件的格式是: 48 银河麒麟服务器操作系统管理员手册 //单数行为用户名,偶数行为口令, //即:用户 tom 的口令为 foo;用户 fred 的口令为 bar // //下面使用 db_load 命令生成口令库文件 # db_load -T -t hash -f ~/logins.txt /etc/vsftpd_login.db //修改口令库文件的权限 # chmod 600 /etc/vsftpd_login.db //下面编辑生成虚拟用户所需的 PAM 配置文件 # vi /etc/pam.d/ftp.vu //插入如下两行 //auth required /lib/security/pam_userdb.so db=/etc/vsftpd_login //account required /lib/security/pam_userdb.so db=/etc/vsftpd_login //保存后退出 vi //用户也可以用下面的命令从源代码分发包中复制此文件 // cd /usr/local/src/vsftpd-1.1.3/EXAMPLE/ // cp VIRTUAL_USERS/vsftpd.pam /etc/pam.d/ftp.vu # //下面建立虚拟用户所要访问的目录并设置仅 virtual 用户访问的权限 # useradd -d /home/ftpsite virtual # chmod 700 /home/ftpsite/ # //在目录中生成测试文件 # su - virtual -c "echo hello>/home/ftpsite/test_file" # //下面生成主配置文件 # vi /etc/vsftpd.standalone.vu.conf //在此文件中插入下面的配置语句 //listen=YES //anonymous_enable=NO //local_enable=YES //write_enable=NO //anon_upload_enable=NO //anon_mkdir_write_enable=NO //anon_other_write_enable=NO //chroot_local_user=YES //guest_enable=YES 启用虚拟用户 //guest_username=virtual 将虚拟用户映射为本地 virtual 用户 // 这样虚拟用户登录后才能进入本地用户 virtual 的目录/home/ftpsite/ //pasv_min_port=30000 49 银河麒麟服务器操作系统管理员手册 //pasv_max_port=30999 //ftpd_banner=This FTP server is virtual user only. //pam_service_name=ftp.vu 指定 PAM 配置文件为 ftp.vu //插入完毕,保存退出. # //下面先关闭原来的服务,而后启动新的服务 # killall vsftpd # /usr/local/sbin/vsftpd /etc/vsftpd.standalone.vu.conf & //配置结束 对不同的虚拟用户进行不同权限的配置 在上节中讲述了配置本地组访问的 FTP 服务器,即使组长(soft)具有读写(包括列文件目录, 上传,下载)权限,组员(soft1 和 soft2)具有只读(包括列文件目录,下载)权限.这是借助在本地 文件系统上分配权限来实现的,但是若要让两个用户同时都具有读写权限,则用这种方法就不能 实现了。 vsftpd 支持对不同的虚拟用户进行不同配置的方式.例如,vsftpd 可以实现如下的配置: 虚拟用户 valid 具有浏览目录,上传和下载的权限 虚拟用户 dede 具有浏览目录,上传,下载,文件改名和删除的权限 虚拟用户 tom 和 fred 具有浏览目录和下载的权限 下面以简单的虚拟用户 FTP 服务器的配置为基础进行,具体配置步骤为: 对 vsftpd 的不同虚拟用户分配不同权限的配置 //首先编辑配置文件/etc/vsftpd.standalone.vu.conf //激活对不同的虚拟用户进行不同权限配置的配置语句 # vi /etc/vsftpd.standalone.vu.conf //在文件中添加如下的配置行 // user_config_dir=/etc/vsftpd_user_conf //指定不同虚拟用户配置文件的存放路径 //添加后保存退出 vi //接下来创建此目录 # mkdir /etc/vsftpd_user_conf # //下面分别创建虚拟用户 tom 和 fred 的配置文件 //开放 tom 和 fred 的读权限 #echo "anon_world_readable_only=NO">/etc/vsftpd_user_conf/tom #echo "anon_world_readable_only=NO">/etc/vsftpd_user_conf/fred //下面分别创建虚拟用户 valid 和 dede 的配置文件 //开放 valid 和 dede 的读写权限 # cat > anon_world_readable_only=NO > write_enable=YES 50 银河麒麟服务器操作系统管理员手册 > anon_upload_enable=YES > ! # cp /etc/vsftpd_user_conf/valid /etc/vsftpd_user_conf/dede # echo "anon_other_write_enable=YES">>/etc/vsftpd_user_conf/dede //经过以上的设置虚拟用户 valid 能浏览,下载和上传 //而虚拟用户 dede 除此之外还具有文件改名和删除文件的权限 # //下面让守护进程 vsftpd 重新读取配置文件 // /etc/vsftpd.standalone.vu.conf # ps auxw|grep vsftpd root 7218 0.0 0.2 1424 376 pts/0 S 01:37 0:00 /usr/local/sbin/vsftpd /etc/vsftpd.standalone.vu.conf # kill -HUP 7218 # //配置结束 第8章 网络文件系统(NFS) 网络文件系统(NFS)是一种在网络上的机器间共享文件的方法,文件就如同位于客户的本 地硬盘驱动器上一样。Kylin 既可以是 NFS 服务器也可以是 NFS 客户,这意味着它可以把文 件系统导出给其它系统,也可以挂载从其它机器上导入的文件系统。 8.1 为什么使用 NFS? NFS 对于在同一网络上的多个用户间共享目录很有用途。譬如,一组致力于同一工程项目 的用户可以通过使用 NFS 文件系统(通常被称作 NFS 共享)中的一个挂载为 /myproject 的 共享目录来存取该工程项目的文件。要存取共享的文件,用户进入各自机器上的 /myproject 目 录。这种方法既不用输入口令又不用记忆特殊命令,就仿佛该目录位于用户的本地机器上一样。 8.2 挂载 NFS 文件系统 使用 mount 命令来挂载另一个机器上的 NFS 文件系统: mount shadowman.example.com:/misc/export /misc/local 在这项命令中,shadowman.example.com 是 NFS 文件服务器的主机名;/misc/export 是 shadowman 要导出的文件系统;/misc/local 是该文件系统在本地机器上的挂载位置。mount 命 令运行之后(而且如果客户具有来自 shadowman.example.com NFS 服务器的正确权限的话), 客户用户就可以执行 ls /misc/local 命令来显示 shadowman.example.com 上的 /misc/export 目录中的文件列表。 51 银河麒麟服务器操作系统管理员手册 8.2.1 使用 /etc/fstab 来挂载 NFS 文件系统 要挂载其它机器上的 NFS 共享的另一种方法是在 /etc/fstab 文件中添加一行。这一行中 必须声明 NFS 服务器的主机名,要导出的目录,以及要挂载 NFS 共享的本地机器目录。您必 须是根用户才能修改 /etc/fstab 文件。 /etc/fstab 中每行的一般语法如下所示: server:/usr/local/pub /pub nfs ro .rsize=8192,wsize=8192,timeo=14,intr 1 1 挂载点 /pub 在客户机器上必须存在。在客户系统的 /etc/fstab 文件中把这一行添加完 毕后,在 shell 提示下键入命令 mount /pub,以及将会从服务器中挂载的挂载点 /pub。 8.2.2 使用 TCP /NFS 的默认传输协议是 UDP;然而,Kylin 内核提供了对通过 TCP 的 NFS 的支持。要通 过 TCP 来使用 NFS,在客户系统上挂载 NFS 导出的文件系统时,包括一个 -o tcp 选项。例 如: mount -o tcp shadowman.example.com:/misc/export /misc/local 如果 NFS 挂载在 etc/fstab 中被指定: server:/usr/local/pub /pub nfs rsize=8192,wsize=8192,timeo=14,intr,tcp 如果它在 autofs 配置文件中被指定: myproject -rw,soft,intr,rsize=8192,wsize=8192,tcp penguin.example.net:/proj52 由于默认协议是 UDP,如果没有指定 -o tcp 选项,NFS 导出的文件系统就会通过 UDP 来 进入。 使用 TCP 的优越性包括: 提高了连接持久性,因此获得的 NFS stale file handles 消息会较少。 载量较大的网络性能会有所提高。因为 TCP 确认每个分组,不像 UDP 只在完成时才确认。 TCP 的拥塞控制技术比 UDP 要好(UDP 根本没有)。在一个拥塞情况严重的网络上,UDP 分 组是被首先撤消的类型。这意味着,如果 NFS 正在写入数据(单元为 8K 的块),所有这 8K 数 据都需要被重新传输。由于 TCP 的可靠性,8K 中只有一部分需要重新传输。 错误检测。当 tcp 连接中断(由于服务器停运),客户就会停止发送数据而开始进行重新 连接。UDP 是无连接的,使用它的客户就会继续给网络发生数据直到服务器重新上线为止。 主要的不利因素是,TCP 协议的开销较大,在性能方面的提高并不显著。 8.3 命令行配置 如果您更喜欢使用文本编辑器来编辑配置文件或者您没有安装 X 窗口系统,您可以直接修 改配置文件。 /etc/exports 文件控制 NFS 服务器要导出哪些目录。它的格式如下: 52 银河麒麟服务器操作系统管理员手册 directory hostname(options) 唯一需要指定的选项是 sync 和 async 之一(建议使用 sync is recommended)。如果指 定了 sync,服务器在请求所做的改变被写入磁盘之前就不会回复这些请求。 例如: /misc/export speedy.example.com(sync) 会允许来自 speedy.example.com 的用户使用默认的只读权限来挂载 /misc/export,但 是: /misc/export speedy.example.com(rw,sync) 将会允许来自 speedy.example.com 的用户使用读写权限来挂载 /misc/export。 在您每次改变 /etc/exports 的时候,您必须把改变通知给 NFS 守护进程,或使用以下命 令来重新载入配置文件: /sbin/service nfs reload 8.3.1 主机名格式 主机可以使用以下格式: 单个机器 — 一个全限定域名(能够被服务器解析的),主机名(能够被服务器解析的), 或 IP 地址。 使用通配符来指定的机器系列 — 使用 * 或 ? 字符来指定一个字符串匹配。IP 地址中不 使用通配符;不过如果反向 DNS 查询失败,它们可能会碰巧有用。在完整域名中指定通配符时, 点(.)不包括在通配符中。例如:*.example.com 包括 one.example.com,但不包括 one.two.example.com.。 IP 网络 — 使用 a.b.c.d/z,这里的 a.b.c.d 是网络,z 是子网掩码中的位数(如 192.168.0.0/24)。另一种可以接受的格式是 a.b.c.d/netmask,这里的 a.b.c.d 是网络, netmask 是子网掩码(如 192.168.100.8/255.255.255.0)。 Netgroups — 格式为 @group-name,这里的 group-name 是 NIS netgroup 的名称。 8.3.2 启动和停止服务器 在导出 NFS 文件系统的服务器上,nfs 服务必须在运行。 使用以下命令来查看 NFS 守护进程的状态: /sbin/service nfs status 使用以下命令来启动 NFS 守护进程: /sbin/service nfs start 使用以下命令来停止 NFS 守护进程: /sbin/service nfs stop 要在引导时启动 nfs 服务,使用以下命令: 53 银河麒麟服务器操作系统管理员手册 /sbin/chkconfig --level 345 nfs on 您还可以使用 chkconfig、ntsysv 或服务配置工具来配置要在引导时启动哪些服务。 54 银河麒麟服务器操作系统管理员手册 第9章 Samba Samba 使用 SMB 协议来通过网络连接共享文件和打印机。支持该协议的操作系统包括 Kylin、 Microsoft Windows、OS/2、和 Linux。 9.1 为什么使用 Samba? 如果您的网络中既有 Windows 机器又有 Kylin 机器,Samba 就能发挥作用。Samba 会允许 文件和打印机被网络中的所有系统共享。要只在 Kylin 机器间共享文件,请使用第 8 章 中讨 论的 NFS。 9.2 配置 Samba 服务器 用户可以使用默认的配置文件(/etc/samba/smb.conf)来设置的 Samba 共享目录。还可 以吧系统配置的打印机作为 Samba 共享打印机来共享。换句话说,您可以在您的系统上连接打 印机,然后用网络上的 Windows 机器来打印。 9.2.1 图形化配置 要使用图形化界面来配置 Samba,参阅 Samba 服务器配置工具。要使用命令行来配置,请 跳到第 9.2.2 节。 Samba 服务器配置工具是用来管理 Samba 共享、用户、以及基本服务器设置的图形化界面。 它修改 /etc/samba/ 目录中的配置文件。没有使用该程序进行的改变都会被保留。 要使用该程序,您必须在运行 X 窗口系统,具备根特权,并且安装了 config-samba RPM 软 件包。要从桌面启动 Samba 服务器配置工具,点击面板上的「开始」 => 「控制面板」 => 「服 务器设置」 => 「Samba」,或在 shell 提示(如 XTerm 或 GNOME 终端)下键入 config-samba 命令。 55 银河麒麟服务器操作系统管理员手册 图 9.1 Samba 服务器配置工具 9.2.1.1 配置服务器设置 配置 Samba 服务器的第一步是配置服务器的基本设置和几个安全选项。启动了应用程序 后,选择「首选项」 => 「服务器设置」。「基本」活页标签如图 9.2 所示。 图 9.2 配置基本服务器设置 在「基本」标签上,指定计算机应在的工作组以及对计算机的简短描述。它们与 smb.conf 中的 workgroup 和 server string 选项相对应。 56 银河麒麟服务器操作系统管理员手册 图 9.3 配置安全服务器设置 「安全」标签包含以下选项: 「验证模式」 — 它和 security 选项相对应。选择以下验证模式中的一种。 「ADS」 — Samba 服务器充当活跃目录域(ADS)领域中的一个成员,Kerberos 在服务器 上必须被安装和配置,并且 Samba 必须使用 net 工具成为 ADS 领域的一员。net 是 samba-client 软件包的一部分。详情请参阅 samba-client 的说明书页。该选项不会把 Samba 配置成一个 ADS 控制器。 「域」 — Samba 服务器依赖于 Windows NT 主要或备份域控制器来校验用户。服务器把 用户名和口令传递给控制器,然后等待它们被返回。在「验证服务器」字段中指定主要或备份 域控制器的 NetBIOS 名称。 如果「加密口令」选项被选,它必须被设置为「是」。 「服务器」 — Samba 服务器试图通过把用户名和口令组合传递给另一个 Samba 服务器来 校验它们。如果它无法校验,服务器会试图使用用户验证模式来校验它们。在「验证服务器」 字段中指定另一个 Samba 服务器的 NetBIOS 名称。 「共享」 — Samba 用户不必为每个 Samba 服务器都输入用户名和口令组合。它们在试图 连接 Samba 服务器上的指定共享时才会被提示输入用户名和口令。 「用户」 — (默认)Samba 用户必须为每个 Samba 服务器提供一个有效的用户名和口令。 如果您想让「Windows 用户名」选项生效,选择这个选项。详情请参阅第 9.2.1.2 节。 「加密口令」 — 如果用户从 Windows 98、带有服务包 3 的 Windows NT 4.0、或其它最 近版本的 Microsoft Windows 中连接,该选项必须被启用。口令在服务器和客户间使用加密格 式而非可被截取的纯文本格式传输。它和 encrypted passwords 选项相对应。关于加密 Samba 口令的详情,请参阅第 9.2.3 节。 「来宾账号」 — 当用户或来宾用户要登录入 Samba 服务器时,他们必须被映射到服务器 上的有效用户。选择系统上的现存用户名之一作为来宾 Samba 账号。当用户使用来宾账号登录 入 Samba 服务器,他们拥有和这个用户相同的特权。该选项和 guest account 选项相对应。 点击了「确定」后,所做改变会被写入配置文件,守护进程会被重新启动;因此改变会立 即生效。 57 银河麒麟服务器操作系统管理员手册 9.2.1.2 管理 Samba 用户 Samba 服务器配置工具要求在添加 Samba 用户之前,在充当 Samba 服务器的系统上必须 存在一个活跃的用户账号。Samba 用户和这个现存的用户账号相关联。 图 9.4 管理 Samba 用户 要添加 Samba 用户,选择「首选项」 => 「Samba 用户」,然后点击「添加用户」按钮。 在「创建新 Samba 用户」窗口中的本地系统上的现存用户列表中选择「Unix 用户名」。 如果用户在 Windows 机器上有一个不同的用户名,并将从 Windows 机器上登录入 Samba 服务器,请在「Windows 用户名」字段中指定 Windows 用户名。「服务器设置」首选项的「安 全」活页上的「验证模式」 必须被设置为「用户」才能是这个选项生效。 您还需要为 Samba 用户配置一个「Samba 口令」,并再键入一次来确认这个口令。即便您 选择了为 Samba 使用加密口令,仍建议您为所有用户设置一个不同于他们的系统口令的 Samba 口令。 要编辑某个现存用户,从列表中选择它,然后点击「编辑用户」。要删除某个现存的 Samba 用户,选择这个用户,然后点击「删除用户」按钮。删除 Samba 用户不会删除相关的用户账号。 点击了「确定」按钮后,用户就会被立即修改。 58 银河麒麟服务器操作系统管理员手册 9.2.1.3 添加共享 图 9.5 添加共享 要添加共享,点击「添加」按钮。「基本」活页标签配置以下选项: • 「目录」 — 通过 Samba 共享的目录。这个目录必须存在。 • 「权限」 — 用户应该只能够读取共享目录中的文件还是应该能够读写共享目录 中的文件。 • 「描述」 — 对共享的简短描述。 在「访问」活页标签上,选择是否要只允许指定的用户来访问共享还是允许所有 Samba 用 户来访问共享。如果您选择了要允许指定用户访问,从可用的 Samba 用户列表中选择这些用户。 点击了「确定」按钮后,共享就会立即被添加。 9.2.2 命令行配置 Samba 使用 /etc/samba/smb.conf 作为它的配置文件。如果您改变了这个配置文件,这个 改变直到您使用 service smb restart 命令重启 Samba 守护进程后才会生效。 要指定 Windows 工作组和对它的简短描述,编辑 smb.conf 文件中的以下几行: workgroup = WORKGROUPNAME server string = BRIEF COMMENT ABOUT SERVER 把 WORKGROUPNAME 换成您的机器所属的 Windows 工作组名。BRIEF COMMENT ABOUT SERVER 是可选的,它被用作关于 Samba 系统的 Windows 注释。 要在 Kylin 上创建 Samba 共享目录,在 smb.conf 文件中添加以下几行(根据您和您的系 统需要修改了该文件之后): [sharename] comment = Insert a comment here path = /home/share/ valid users = tfox carole 59 银河麒麟服务器操作系统管理员手册 public = no writable = yes printable = no create mask = 0765 上面的例子允许用户 tfox 和 carole 从 Samba 客户中读写 Samba 服务器上的目录 /home/share。 9.2.3 加密口令 加密口令被默认启用,因为它更安全。如果加密口令没有被使用,纯文本口令就会被使用, 它能够被别人使用网络分组嗅探器来截取。建议您使用加密口令。 Microsoft SMB 协议最初使用纯文本口令。然而,带有 service pack 3 或更高的 Windows NT 4.0、Windows 98、Windows 2000、Windows ME、以及 Windows XP 要求加密的 Samba 口令。 要在 Kylin 系统和运行以上 Windows 操作系统的系统间使用 Samba,您可以编辑 Windows 注 册器来使用纯文本口令或配置您的 Kylin 系统的 Samba 来使用加密口令。如果您要修改注册 器,您必须为所有 Windows 机器这么做 — 这很冒险,有可能导致进一步的冲突。为了更高的 安全性,推荐您使用加密口令。 要配置 Samba 使用加密口令,遵循以下步骤: 1) 为 Samba 创建一个单独的口令文件。要根据您的现存 /etc/passwd 文件来 创建,在 shell 提示下键入以下命令: cat /etc/passwd | mksmbpasswd.sh > /etc/samba/smbpasswd 2) 如果系统使用 NIS,键入以下命令: ypcat passwd | mksmbpasswd.sh > /etc/samba/smbpasswd 3) mksmbpasswd.sh 脚本和 samba 软件包一起被安装在您的 /usr/bin 目录 上。 4) 改变 Samba 口令文件的权限许可,只有 root 用户才有读写权限: chmod 600 /etc/samba/smbpasswd 5) 这个脚本不会把用户口令复制到新文件,Samba 用户账号在没有设置口令之 前不会被激活。为了更高的安全性,建议您把用户的 Samba 口令设置为不同于用户口 令的口令。要设置每个 Samba 用户的口令,使用以下命令(把 username 替换为每个 用户的用户名): smbpasswd username 6) 加密口令必须被启用。由于它们被默认启用,它们不必在配置文件中被特别 启用。不过,它们也不能在配置文件中被禁用。在 smb.conf 文件中,请确定以下行 不存在: encrypt passwords = no 60 银河麒麟服务器操作系统管理员手册 7) 如果它确实存在,请在行首加一个”;”把它变成注释,这样该行就会被忽略, 加密口令就会被启用。如果该行存在但没有被注释掉,请删除它或把它变成注释。 8) 要在配置文件中特别启用加密口令,给 /etc/samba/smb.conf 文件添加以下 几行: encrypt passwords = yes smb passwd file = /etc/samba/smbpasswd 9) 在 shell 提示下键入 service smb restart 来确定 smb 服务被启动。 如果您想让 smb 服务被自动启动,使用 ntsysv、chkconfig、或服务配置工具来在运行时 间启用它。 当使用了 passwd 命令后,pam_smbpass PAM 模块能够被用来同步用户的 Samba 口令和他 们的系统口令。如果用户引发了 passwd 命令,他用来登录到 Kylin 系统的口令以及他要连接 Samba 共享所必须提供的口令就会被改变。 要启用这个功能,把以下行添加到 /etc/pam.d/system-auth 的 pam_cracklib.so 之下: password required /lib/security/pam_smbpass.so nullok use_authtok try_first_pass 9.2.4 启动和停止服务器 在通过 Samba 共享目录的服务器上必须运行 smb 服务。 使用以下命令来查看 Samba 守护进程的状态: /sbin/service smb status 使用以下命令来启动守护进程: /sbin/service smb start 使用以下命令来停止守护进程: /sbin/service smb stop 要在引导时启动 smb 服务,使用以下命令: /sbin/chkconfig --level 345 smb on 还可以使用 chkconfig、ntsysv 或服务配置工具来配置要在引导时启动哪些服务。 9.3 连接 Samba 共享 9.3.1 命令行 要查询网络上的 Samba 服务器,使用 findsmb 命令。每个找到的服务器都会显示其 IP 地 址、NetBIOS 名称、工作组名称、操作系统、以及 SMB 服务器版本。 要连接 Samba 共享,从 shell 提示下,键入以下命令: smbclient ///-U 61 银河麒麟服务器操作系统管理员手册 把 替换为您想连接的 Samba 服务器的主机名或 IP 地址,把 替换为您想浏览的共享目录的名称,把 替换成系统的 Samba 用户名。输入正确的 口令或按 [Enter] 键(若不要求该用户的口令)。 如果您看到了 smb:\> 提示,这说明您已成功登录。登录后,键入 help 来获得一个命令 列表。如果您想浏览您的主目录的内容,把 sharename 替换成您的用户名。如果没有使用 -U 选 项,当前用户的用户名就会被传递给 Samba。 要退出 smbclient,在 smb:\> 提示下键入 exit。 62 银河麒麟服务器操作系统管理员手册 第10章 动态主机配置协议(DHCP) 动态主机配置协议(DHCP)是用来自动给客户机器分配 TCP/IP 信息的网络协议。每个 DHCP 客户都连接到位于中心的 DHCP 服务器,该服务器会返回包括 IP 地址、网关和 DNS 服务器信 息的客户网络配置。 10.1 为什么使用 DHCP DHCP 在快速发送客户网络配置方面很有用场。当配置客户系统时,若管理员选择了 DHCP, 他就不必输入 IP 地址、子网掩码、网关、或 DNS 服务器。客户从 DHCP 服务器中检索这些信 息。DHCP 在管理员想改变大量系统的 IP 地址时也大有用途。与其重新配置所有系统,管理员 只需编辑服务器上的一个用于新 IP 地址集合的 DHCP 配置文件即可。如果某机构的 DNS 服务 器改变了,这种改变只需在 DHCP 服务器上而不必在 DHCP 客户上进行。一旦客户的网络被重 新启动(或客户重新引导系统),改变就会生效。 除此之外,如果便携电脑或任何类型的可移计算机被配置使用 DHCP,只要每个办公室都有 一个允许它联网的 DHCP 服务器,它就可以不必重新配置而在办公室间自由移动。 10.2 配置 DHCP 服务器 要配置 DHCP 服务器,请修改配置文件 /etc/dhcpd.conf。 DHCP 还使用 /var/lib/dhcp/dhcpd.leases 文件来贮存客户租期数据库。详情请参阅第 10.2.2 节。 10.2.1 配置文件 配置 DHCP 服务器的第一步是创建贮存客户网络信息的配置文件。全局选项可以为所有客 户声明,可选选项可以为每个客户系统声明。 该配置文件可以使用任何附加的制表符或空行来进行简单格式化。关键字是区分大小写的, 起首为井号(#)的行是注释。 目前实现了两种 DNS 更新方案 — 特殊 DNS 更新模式和过渡性 DHCP-DNS 互动草图更新 模式。如果这两种模式被接受为 IETF 标准进程的一部分,就会出现第三个模式 — 标准 DNS 更新方法。DHCP 服务器必须配置使用这两种当前方案中的一种。版本 3.0b2pl11 以及更早的 版本使用特殊模式;不过,这种模式已经过时。如果您想保留相同的行为方式,在配置文件的 开头添加以下一行: Ddns-update-style ad-hoc; 要使用推荐的模式,在配置文件的开头添加以下一行: Ddns-update-style interim; 请阅读 dhcpd.conf 的说明书(man)页来获得有关不同模式的细节。 配置文件中有两类陈述: 参数 — 表明如何执行任务,是否要执行任务,或将哪些网络配置选项发送给客户。 声明 — 描述网络的布局;描述客户;提供客户的地址;或把一组参数应用到一组声明中。 63 银河麒麟服务器操作系统管理员手册 某些参数必须以 option 关键字开头,它们也被称为选项。选项配置 DHCP 的可选选项; 而参数配置的是必选的或控制 DHCP 服务器行为的值。 在使用大括号({ })的部分之前声明的参数(包括选项)通常被当做全局参数。全局参数 应用位于其下的所有部分。 在图 10.1 中,routers、subnet-mask、 domain-name、domain-name-servers 和 time-offset 选项被用于所有在它们下面声明的 host 声明中。 如图 10.1 所示,您可以声明 subnet。您必须为您的网络中的每一个子网包括一个 subnet 声明,否则,DHCP 服务器可能无法启动。 在这个例子中,子网中的每个 DHCP 客户都带有全局选项,并且声明了 range。客户被分 配给 range 之内的 IP 地址。 subnet 192.168.1.0 netmask 255.255.255.0 { option routers 192.168.1.254; option subnet-mask 255.255.255.0; option domain-name "example.com"; option domain-name-servers 192.168.1.1; option time-offset -18000; # Eastern Standard Time range 192.168.1.10 192.168.1.100; } 图 10.1 子网声明 所有共享同一物理网络的子网应该在 shared-network 声明之内声明,如图 10.2 所示。在 shared-network 之内,但在被包围起来的 subnet 声明之外的参数被当做全局参数。 shared-network 的名称应该是对网络有描述性的标题,例如,使用 test-lab 来描述所有处于 实验室(test lab)环境中的子网。 shared-network name { option domain-name "test.Kylin.com"; option domain-name-servers ns1.Kylin.com, ns2.Kylin.com; option routers 192.168.1.254; more parameters for EXAMPLE shared-network subnet 192.168.1.0 netmask 255.255.255.0 { parameters for subnet range 192.168.1.1 192.168.1.31; } subnet 192.168.1.32 netmask 255.255.255.0 { parameters for subnet range 192.168.1.33 192.168.1.63; 64 银河麒麟服务器操作系统管理员手册 } } 图 10.2 共享网络声明 如图 10.3 中所演示,group 声明可以用来把全局参数应用到一组声明中。例如,您可以组 合共享的网络、子网、主机或其它组群。 group { option routers 192.168.1.254; option subnet-mask 255.255.255.0; option domain-name "example.com"; option domain-name-servers 192.168.1.1; option time-offset -18000; # Eastern Standard Time host apex { option host-name "apex.example.com"; hardware ethernet 00:A0:78:8E:9E:AA; fixed-address 192.168.1.4; } host raleigh { option host-name "raleigh.example.com"; hardware ethernet 00:A1:DD:74:C3:F2; fixed-address 192.168.1.6; } } 图 10.3 组群声明 要配置将动态 IP 地址租给子网内系统的 DHCP 服务器,用您的数值来修改图 10.4。它为 客户声明一个默认租期、最长租期、以及网络配置值。范例中把 range 192.168.1.10 和 192.168.1.100 之间的 IP 地址分配给客户。 default-lease-time 600; max-lease-time 7200; option subnet-mask 255.255.255.0; option broadcast-address 192.168.1.255; option routers 192.168.1.254; option domain-name-servers 192.168.1.1, 192.168.1.2; option domain-name "example.com"; 65 银河麒麟服务器操作系统管理员手册 subnet 192.168.1.0 netmask 255.255.255.0 { range 192.168.1.10 192.168.1.100; } 图 10.4 范围参数 要根据网卡的 MAC 地址给客户分配 IP 地址,使用 host 声明内的 hardware ethernet 参数。 如图 10.5 中所演示,host apex 声明表明:网卡的 MAC 地址为 00:A0:78:8E:9E:AA 的 系统所分配的 IP 地址将一直是 192.168.1.4。 注意,您还可以使用可选的参数 host-name 来为客户分配主机名。 host apex { option host-name "apex.example.com"; hardware ethernet 00:A0:78:8E:9E:AA; fixed-address 192.168.1.4; } 图 10.5 使用 DHCP 的静态 IP 地址 要获取选项声明及其作用的完整列表,请参阅 dhcp-options 的说明书(man)页。 10.2.2 租期数据库 在 DHCP 服务器上,/var/lib/dhcp/dhcpd.leases 文件中存放着 DHCP 的客户租期数据 库。该文件不应该被手工修改。每个新近分配的 IP 地址的 DHCP 租期信息都会自动储存在租 期数据库中。该信息 包括租期的长度;IP 地址被分配的对象;租期的开始和终止日期; 以及 用来检索租期的网卡的 MAC 地址。 租期数据库中所用的时间是格林威治标准时间(GMT),不是本地时间。 租期数据库不时被重建,因此它不算太大。首先,所有已知的租期会被储存到一个临时的 租期数据库中,dhcpd.leases 文件被重命名为 dhcpd.leases~,然后,临时租期数据库被写入 dhcpd.leases 文件。 在租期数据库被重命名为备份文件,新文件被写入之前,DHCP 守护进程有可能被杀死,系 统也有可能会崩溃。如果发生了这种情况,dhcpd.leases 文件不存在,但它却是启动服务所必 需的。这时,请不要创建新租期文件。因为这样做会丢失所有原有的旧租期文件,从而导致更 多问题。正确的办法是把 dhcpd.leases~ 备份文件重命名为 dhcpd.leases,然后再启动守护 进程。 10.2.3 启动和停止服务器 要启动 DHCP 服务,使用 /sbin/service dhcpd start 命令。要停止 DHCP 服务,使用 /sbin/service dhcpd stop 命令。如果您想让守护进程在引导时自动启动, 如果您的系统连接了不止一个网络接口,但是您只想让 DHCP 服务器启动其中之一,您可 以配置 DHCP 服务器只在那个设备上启动。在 /etc/sysconfig/dhcpd 中,把接口的名称添加 到 DHCPDARGS 的列表中: 66 银河麒麟服务器操作系统管理员手册 # Command line options here DHCPDARGS=eth0 如果您有一个带有两个网卡的防火墙机器,这种方法就会大派用场。一个网卡可以被配置 成 DHCP 客户来从互联网上检索 IP 地址;另一个网卡可以被用作防火墙之后的内部网络的 DHCP 服务器。仅指定连接到内部网络的网卡使系统更加安全,因为用户无法通过互联网来连接 它的守护进程。 其它可在 /etc/sysconfig/dhcpd 中指定的命令行选项包括: -p — 指定 dhcpd 应该监听的 udp 端口号码。默认值为 67。DHCP 服务器在 比指定的 udp 端口大一位的端口号码上把回应传输给 DHCP 客户。譬如,如果您使用了默认的 端口 67,服务器就会在端口 67 上监听请求,然后在端口 68 上回应客户。如果您在此处指定 了一个端口号码,并且使用了 DHCP 转发代理,您所指定的 DHCP 转发代理所监听的端口就必 须是同一端口。详情请参阅第 10.2.4 节。 -f — 把守护进程作为前台进程运行。这在调试时最常用。 -d — 把 DCHP 服务器守护进程记录到标准错误描述器中。这在调试时最常用。如果它没 有指定,日志将被写入 /var/log/messages。 -cf — 指定配置文件的位置。默认位置是 /etc/dhcpd.conf。 -lf — 指定租期数据库文件的位置。如果租期数据库文件已存在,在 DHCP 服 务器每次启动时使用同一个文件至关重要。强烈建议您只在无关紧要的机器上为调试目的才使 用该选项。默认的位置是 /var/lib/dhcp/dhcpd.leases。 -q — 在启动该守护进程时,不要显示整篇版权信息。 10.2.4 DHCP 转发代理 DHCP 的转发代理(dhcrelay)允许您把无 DHCP 服务器的子网内的 DHCP 和 BOOTP 请求 转发给其它子网内的一个或多个 DHCP 服务器。 当某个 DHCP 客户请求信息时,DHCP 转发代理把该请求转发给 DHCP 转发代理启动时所指 定的一列 DHCP 服务器。当某个 DHCP 服务器返回一个回应 时,该回应被广播或单播给发送最 初请求的网络。 除非使用 INTERFACES 指令在 /etc/sysconfig/dhcrelay 文件中指定了接口,DHCP 转发 代理监听所有接口上的 DHCP 请求。 要启动 DHCP 转发代理,使用 service dhcrelay start 命令。 10.3 配置 DHCP 客户 配置 DHCP 客户的第一步是确定内核能够识别网卡。多数网卡会在安装过程中被识别,系 统会为该卡配置使用恰当的内核模块。如果您在安装后添加了一张网卡,Kudzu 应该会识别它, 并提示您为它配置相应的内核模块。如果网卡不是由安装程序或 Kudzu 配置的,而且您知道要 为它载入哪个内核模块,那么载入内核模块。 67 银河麒麟服务器操作系统管理员手册 要手工配置 DHCP 客户,您需要修改 /etc/sysconfig/network 文件来启用联网;并修改 /etc/sysconfig/network-scripts 目录中每个网络设备的配置文件。在该目录中,每个设备都 应该有一个叫做 ifcfg-eth0 的配置文件,这里的 eth0 是网络设备的名称。 /etc/sysconfig/network 文件应该包含以下行: NETWORKING=yes 如果您想在引导时启动联网,NETWORKING 变量必须被设为 yes。 /etc/sysconfig/network-scripts/ifcfg-eth0 文件应该包含以下几行: DEVICE=eth0 BOOTPROTO=dhcp ONBOOT=yes 每个您想配置使用 DHCP 的设备都需要一个配置文件。 其它网络脚本的选项包括: DHCP_HOSTNAME — 只有当 DHCP 服务器在接收 IP 地址前需要客户指定主机名的时候才 使用该选项。(Kylin 中的 DHCP 服务器守护进程不支持该功能。) PEERDNS=,这里的 是以下之一: yes — 使用来自服务器的信息来修改 /etc/resolv.conf。若使用 DHCP,那么 yes 是默 认值。 no — 不要修改 /etc/resolv.conf。 SRCADDR=

,这里的
是用于输出包的指定源 IP 地址。 USERCTL=,这里的 是以下之一: yes — 允许非根用户控制该设备。 no — 不允许非根用户控制该设备。 68 银河麒麟服务器操作系统管理员手册 第11章 Apache HTTP 服务器 配置 Kylin 提供了 Apache HTTP 服务器, HTTP 配置工具允许您为 Apache HTTP 服务器 配置 /etc/httpd/conf/httpd.conf 配置文件。它不使用旧的 srm.conf 或 access.conf 配置文件; 把它们留为空白。您可以通过图形化界面来进行配置,例如虚拟主机、记录属性和最大数量连 接等。 HTTP 配置工具只能配置包括在 Kylin 中的模块。额外的模块不能使用这个工具来安装。 您需要安装 httpd 和 config-httpd RPM 软件包才能使用 HTTP 配置工具。它还需要 X 窗 口系统和根权限。要启动这个程序,点击「开始」 => 「控制面板」 => 「服务器设置」 => 「HTTP」, 或在 shell(例如,XTerm 或 GNOME 终端)提示中键入 config-httpd 命令。 使用 HTTP 配置工具来配置 Apache HTTP 服务器 的一般步骤如下所述: 在「主」标签下配置基本设置。 点击「虚拟主机」标签来配置默认设置。 在「虚拟主机」标签下,配置默认的虚拟主机。 如果您想为不止一个 URL 或虚拟主机提供服务,则添加额外的虚拟主机。 在「服务器」标签下配置服务器设置。 在「性能微调」标签下配置连接设置。 把所有必要的文件复制到 DocumentRoot 和 cgi-bin 目录中。 退出程序并保存您的设置。 11.1 基本设置 使用「主」标签来配置基本服务器设置。 图 11.1 基本设置 69 银河麒麟服务器操作系统管理员手册 在「服务器名称」文本字段中输入您有权使用的完整域名。该选项和 httpd.conf 中的 ServerName 指令相对应。ServerName 指令设置万维网服务器的主机名。它用来创建 URL 的重 导向。如果您没有定义服务器名称,万维网服务器会试图从系统中的 IP 地址来解析它。服务 器名称不一定非要是它的 IP 地址。譬如,您可能想把您的服务器名称设为 www.example.com, 而您的服务器的实际 DNS 名称却是 foo.example.com. 在「网主电子邮件地址」文本字段中输入万维网服务器维护者的电子邮件地址。该选项和 httpd.conf 中的 ServerAdmin 指令相对应。如果您配置服务器的错误页要包含电子邮件地址, 该地址将会被用户用来向服务器的管理员提交问题。默认的值是:root@localhost。 使用「可用地址」文本字段来定义服务器接受进入连接请求的端口。该选项和 httpd.conf 中的 Listen 指令相对应。Kylin 默认配置 Apache HTTP 服务器在端口 80 上监听非安全万维 网通讯。 点击「添加」按钮来定义接受请求的其它端口。 一个如图 11.2 所示的窗口会出现。您可 以选择「监听所有地址」选项来在定义的端口上监听所有 IP 地址,也可以在「地址」字段中 指定服务器会接受请求的地址。每个端口只能指定一个 IP 地址。如果您想在同一端口号码上 指定多个 IP 地址,请为每个 IP 地址分别创建条目。如果有可能,使用 IP 地址而不是域名, 这样会避免 DNS 查寻失败。在「地址」 字段中输入星号(*)的效果和选择监听所有地址一样。 点击「可用地址」框架中的「编辑」按钮和点击添加 按钮所显示的窗口相同,只不过前者窗口 中的字段值已被预设。要删除某一条目,选择它然后点击删除按钮。 图 11.2 可用地址 11.2 默认设置 定义了「服务器名称」、「网主电子邮件地址」、以及「可用地址」之后,点击「虚拟主 机」 标签,然后点击上面的「编辑默认设置」 按钮。如图 11.3 所示的窗口会出现。在该窗 口中为您的万维网服务器配置默认设置。如果您添加了一个虚拟主机,您为该虚拟主机配置的 设置会被优先采用。对于虚拟主机内没有定义的指令,就会使用默认值。 11.2.1 站点配置 「目录页搜索列表」和「错误页」中的默认值对于多数服务器都适用。如果您不能肯定这 些设置,请不要修改它们。 70 银河麒麟服务器操作系统管理员手册 图 11.3 站点配置 「目录页搜索列表」中列出的项目定义 DirectoryIndex 指令。DirectoryIndex 是用户通 过在目录名后指定正斜线(/ )来请求目录索引时,由服务器提供的默认网页。 譬如,当某用户请求网页 http://www.example.com/this_directory/ 时,他会得到 DirectoryIndex 网页(若存在),或由服务器生成的目录列表。服务器会试图寻找 DirectoryIndex 指令中列出的文件,并提供它找到的第一个文件。 如果它没找到任何文件, 并且 Options Indexes 为该目录设置,服务器就会生成并返回一个 HTML 格式的列表,列出该 目录中的子目录和文件。 使用「错误代号」这一节来配置 Apache HTTP 服务器 在出现错误和问题时把客户重导向 给本地或外部 URL。该选项和 ErrorDocument 指令相对应。如果当客户试图连接 Apache HTTP 服务器 时出现了问题或错误,默认行动是显示「错误代号」列中的简单错误迅息。要取代默认 配置,选择该错误代号, 然后点击「编辑」 按钮。选择「默认」来显示默认的简短错误迅息。 选择「URL」 来把客户重导向到一个外部 URL,并在「位置」字段中输入包括 http:// 在内的 URL。选择「文件」来把客户重导向到一个内部 URL,并在万维网服务器的文档根下 输入文件 的路径。位置必须以斜线(/)开头,并相对于文档根的位置。 譬如,要把“404 没有找到”错误代号重导向到您创建的叫做 404.html 的网页,把 404.html 复制到 DocumentRoot/../errors/404.html。在这个例子里,DocumentRoot 是您定 义的文档根目录(默认为 /var/www/html)。如果文档根命令被保留在默认位置,该文件应该 被复制到 /var/www/error/404.html。然后,选择「文件」作为「404 - 没有找到」错误代号 的行为,输入 /errors/404.html 作为「位置」。 71 银河麒麟服务器操作系统管理员手册 从「默认错误页页脚」菜单中,您可以选择下列选项之一: 「显示页脚和电子邮件地址」 — 在所有错误页中显示默认页脚以及在 ServerAdmin 指令 中指定的网站维护者的电子邮件地址。 「显示页脚」 — 在错误页的底部只显示默认的页脚。 「无页脚」 — 在错误页的底部不显示页脚。 11.2.2 记录日志 服务器默认把传输日志写入 /var/log/httpd/access_log 文件,把错误日志写入 /var/log/httpd/error_log 文件。 传输日志包含一个所有对万维网服务器连接企图的列表。它记录试图连接的客户的 IP 地 址,试图连接的日期和时间,以及试图检索的万维网服务器上的文件。输入要贮存该信息的路 径和文件名。如果路径和文件名不以斜线(/)开头,该路径就是相对于配置的服务器根目录而 言。该选项与 TransferLog 指令相对应。 图 11.4 记录日志 您可以配置定制的日志格式。方法是,选择「使用定制记录设施」,然后在「定制日志字 串」字段中输入定制的日志字符串。它配置 LogFormat 指令。 错误日志包含所发生的服务器错误的列表。输入您要贮存该信息的路径和文件名。如果路 径和文件名不以斜线(/)开头,该路径就是相对于配置的服务器根目录而言。该选项与 ErrorLog 指令相对应。 72 银河麒麟服务器操作系统管理员手册 使用「日志级别」菜单来设置错误日志中 错误迅息的详细程度。它可以被设置成(从最简 略到最详细) emerg、alert、crit、error、warn、notice、info 或 debug。该选项和 LogLevel 指令相对应。 「逆向 DNS 查寻」 菜单中选定的值定义 HostnameLookups 指令。选择「无逆向查寻」会 关闭它。选择「逆向查寻」会启用它。选择「双重逆向查寻」把值设为双重。 如果您选择了「逆向查寻」,您的服务器会自动为每个从您的万维网服务器请求文档的连 接解析 IP 地址。解析 IP 地址意味着您的服务器会连接 DNS 来寻找和某 IP 地址相对应的主 机名。 如果您选择了「双重逆向查寻」,您的服务器会执行双重逆向查寻 DNS。换一句话说,执 行了一次逆向查寻后,服务器会在结果上再执行一次正向查寻。在正向查寻中,至少应有一个 IP 地址匹配第一次逆向查寻中的地址。 通常说来,您应该把该选项设为「无逆向查寻」,因为 DNS 请求会给您的服务器增加载量, 您的服务器的速度可能会减慢。如果您的服务非常繁忙,试图执行逆向查寻或双重逆向查寻的 影响就会非常明显。 逆向查寻和双重逆向查寻从互联网整体上来说也是个问题。所有查寻主机名的个别连接加 在一起的效应不容忽视。因此,为您自己的万维网服务器考虑,也为整个互联网的利益考虑, 您应该把该选项设为「无逆向查寻」。 11.2.3 环境变量 为了 CGI 脚本或服务器端嵌入(SSI)页,有时有必要修改环境变量。Apache HTTP 服务 器 可以使用 mod_env 模块来配置被传递给 CGI 脚本和 SSI 页的环境变量。使用「环境变量」 页来为该模块配置指令。 73 银河麒麟服务器操作系统管理员手册 图 11.5 环境变量 使用「为 CGI 脚本设置」部分来设置要传递给 CGI 脚本和 SSI 页的环境变量。譬如,要 把环境变量 MAXNUM 设为 50,点击「为 CGI 脚本设置」内的「添加」按钮,如图 11.5 所示。 然后在「环境变量」文本字段内键入 MAXNUM,在「设置的值」 文本字段内键入 50。点击「确 定」。「为 CGI 脚本设置」部分配置 SetEnv 指令。 使用「传递给 CGI 脚本」 部分来在服务器首次启动 CGI 脚本时传递环境变量值。要查看 该环境变量,在 shell 提示下键入 env。点击「传递给 CGI 脚本」内的「添加」 按钮,在弹 出的对话框 中输入环境变量的名称。点击「确定」来把它添加到列表中。传递给 CGI 脚本 部 分配置 PassEnv 指令。 如果您想删除某个环境变量,因此它的值就不会传递给 CGI 脚本和 SSI 页,使用「为 CGI 脚本取消设置」 部分。点击其中的「添加」按钮,然后输入要取消设置的环境变量名称。它和 UnsetEnv 指令相对应。 要编辑这些环境变量值,从列表中选择它,然后点击相应的「编辑」按钮。要从列表中删 除任一项目,点击相应的「编辑」按钮。 11.2.4 目录 使用「目录」页来为指定目录配置选项。 它与 指令相对应。 74 银河麒麟服务器操作系统管理员手册 图 11.6 目录 点击右上角的「编辑」按钮来为所有 没有在下面的「目录」列表中指定的目录 配置「默 认目录选项」。您选择的选项被列举 在 指令内的 Options 指令中。您可以配置下 列选项: • ExecCGI — 允许执行 CGI 脚本。如果该选项没有被选,CGI 脚本就不会被执行。 • FollowSymLinks — 允许追随符号链接。 • Includes — 允许服务器端嵌入。 • IncludesNOEXEC — 允许服务器端嵌入,但是在 CGI 脚本中禁用 #exec 和 #include 命令。 • Indexes — 如果请求的目录中不存在 DirectoryIndex(如 index.html),则显 示目录内容的格式化了的列表。 • Multiview — 支持 content-negotiated multiviews;该选项被默认禁用。 • SymLinksIfOwnerMatch — 只有在目标文件或目录和链接的所有者相同时,才追 随该符号链接。 要为指定目录指定选项,点击「目录」列表箱旁边的「添加」按钮。如图 11.7 所示的窗 口会出现。在窗口底部的「目录」文本字段内输入您要配置的目录。从右首的列表中选择选项, 并用左首的选项配置 Order 指令。Order 指令控制 allow 和 deny 指令被评价的顺序。在「允 许主机来自」和「拒绝主机来自」文本字段内,您可以指定下列值之一: • 允许所有主机 — 键入 all 来允许到所有主机的访问。 • 部分域名 — 允许所有名称匹配指定字符串或以指定字符串结束的主机的访问。 75 银河麒麟服务器操作系统管理员手册 • 完整 IP 地址 — 允许到特定 IP 地址的访问。 • 子网 — 如 192.168.1.0/255.255.255.0 • 网络 CIDR 具体规范 — 如 10.3.0.0/16 图 11.7 目录设置 如果您选择了「让 .htaccess 文件取代目录选项」,.htaccess 文件中的配置指令就会被 优先选用。 11.3 虚拟主机设置 您可以使用 HTTP 配置工具来配置虚拟主机。虚拟主机允许您为不同的 IP 地址、主机名 或同一机器上的不同端口运行不同的服务器。譬如,您可以在同一个万维网服务器上使用虚拟 主机来运行 http://www.example.com 和 http://www.anotherexample.com 这两个网站。对于 默认的虚拟主机和基于 IP 的虚拟主机,该选项和 指令相对应;对于基于名称 的虚拟主机,该选项和 指令相对应。 为某个虚拟主机设置的指令只应用于该虚拟主机。如果某指令使用「编辑默认设置」 按钮 为整个服务器全局设置,而虚拟主机设置中却没有被定义,那么默认设置就会被使用。譬如, 您可以在「主」标签中定义「网主电子邮件地址」,而不必在每个虚拟主机中个别定义电子邮 件地址。 HTTP 配置工具包括如图 11.8 所示的默认虚拟主机。 76 银河麒麟服务器操作系统管理员手册 图 11.8 虚拟主机 11.3.1 添加和编辑虚拟主机 要添加虚拟主机,点击「虚拟主机」 标签,然后点击「添加」 按钮。您还可以从列表中 选择一个虚拟主机,然后点击「编辑」按钮来编辑它。 11.3.1.1 常规选项 「常规选项」设置只应用于您正在配置的虚拟主机。在「虚拟主机名称」文本字段内设置 虚拟主机的名称。该名称被 HTTP 配置工具用来区别不同的虚拟主机。 把「文档根目录」的值设为包含该虚拟主机根文档(如 index.html)的目录。该选项和 指令内的 DocumentRoot 指令相对应。默认的 DocumentRoot 是 /var/www/html。 「网主电子邮件地址」和 VirtualHost 内的 ServerAdmin 指令相对应。如果您选择了要 在错误页里显示页脚和电子邮件地址的话,该地址被用在错误页内的页脚上。 在「主机信息」部分,选择「默认虚拟主机」、「基于 IP 的虚拟主机」、或「基于名称 的虚拟主机」。 「默认虚拟主机」 您应该只配置一个默认虚拟主机(切记,默认只有一个设置)。当请求的 IP 地址没有在 另一个虚拟主机中确切列出时,默认的虚拟主机就会被使用。如果默认虚拟主机没有被定义, 主服务器设置就会被使用。 「基于 IP 的虚拟主机」 如果您选择了「基于 IP 的虚拟主机」,一个根据服务器的 IP 地址来配置 指令的屏幕就会出现。在「IP 地址」字段内指定 IP 地址。要指定一个以上 IP 地址,用空格 77 银河麒麟服务器操作系统管理员手册 把它们分开。要指定端口,使用“IP 地址:端口”格式。使用“:*”来为该 IP 地址配置所有 端口。在「服务器主机名」字段中指定虚拟主机的主机名。 「基于名称的虚拟主机」 如果您选择了「基于名称的虚拟主机」,一个根据服务器的主机名称来配置 NameVirtualHost 指令的窗口就会出现。在「IP 地址」字段内指定 IP 地址。要指定多于一个 IP 地址,用空格把它们分开。要指定端口,使用 IP Address:Port 格式。使用“:*”来为该 IP 地址配置所有端口。在「服务器主机名」字段中指定虚拟主机的主机名。在「别名」部分,点 击「添加」来添加主机名的别名。添加别名会在 NameVirtualHost 指令内添加 ServerAlias 指 令。 11.3.1.2 SSL 图 11.9 SSL 支持 如果 Apache HTTP 服务器 没有配置 SSL 支持,Apache HTTP 服务器 和它的客户之间的 通信就不会被加密。这对于不包括私人或保密信息的网站来说是可行的。譬如,发行开源软件 和文档的开源网站就不必使用安全通讯。然而,索求信用卡信息的电子商务网站就应该使用 Apache SSL 支持来加密通讯。启用 Apache SSL 支持会启用 mod_ssl 安全模块。要通过 HTTP 配置工具来启用它,您必须在「主」活页标签 => 「可用地址」中允许通过端口 443 的访问。 详情请参阅第 11.1 节。然后,在「虚拟主机」活页标签中选择虚拟主机名,点击「编辑」按 钮,从左首的菜单中选择 「SSL」,并且选择「启用 SSL 支持」选项,如图 11.9 所示。「SSL 配置」部分被预配置了虚构的数码证书。数码证书为您的安全万维网服务器提供验证,并向客 78 银河麒麟服务器操作系统管理员手册 户万维网浏览器表明安全服务器的身份。您必须另行购买自己的数码证书。不要在您的网站使 用被提供了的虚构证书。 11.3.1.3 其它虚拟主机选项 虚拟主机的「站点配置」、「环境变量」、以及「目录」选项和您点击了「编辑默认设置」 按钮以后所见的指令相同。只不过,这里的配置仅用于您正在配置的个别虚拟主机。 11.4 服务器设置 「服务器」标签允许您配置基本的服务器设置。默认设置在多数情况下都是适用的。 图 11.10 服务器配置 「锁文件」的值和 LockFile 指令相对应。在服务器使用 USE_FCNTL_SERIALIZED_ACCEPT 或 USE_FLOCK_SERIALIZED_ACCEPT 编译时,该指令把路径设为锁文件所用的路径。它必须贮存在 本地磁盘上。除非 logs 目录位于 NFS 共享上。如果事实如此,您应该把默认值改为本地磁盘 上某处只能被根用户读取的目录。 「PID 文件」的值和 PidFile 指令相对应。该指令设置服务器记录进程 ID(PID) 的文 件。该文件应该只能够被根用户读取。多数情况下,您应该使用默认值。 「核心转储目录」的值和 CoreDumpDirectory 指令相对应。Apache HTTP 服务器 在转储 核心前会试图转换到该目录中。默认值是 ServerRoot。然而,如果运行服务器的用户所使用的 身份没有到该目录的写权限,核心转储就无法被写入。如果您想把核心转储写入磁盘以用于调 试目的,请把这个值改为能够被服务器的运行身份写入的目录。 「用户」的值和 User 指令相对应。它设置服务器回答请求所用的 userid。用户的设置决 定服务器的访问权限。该用户所无法访问的文件,您的网站来宾也不能够访问。默认的 User 是 apache。 79 银河麒麟服务器操作系统管理员手册 该用户应该仅拥有一定特权,因此它能够存取外部用户可以看见的文件。该用户还是所有 被服务器生出的 CGI 进程的所有者。它不应该被允许执行任何目的不是回答 HTTP 请求的编 码。 在正常操作中,httpd 父进程首先以根用户身份来运行,但是,它会立即被交给 apache 用 户。服务器必须以根用户启动的原因是,它需要关联到 1024 以下的端口。1024 以下的端口是 为系统使用而保留的,因此只有根用户才有使用权。一旦服务器把自己连接到它的端口,它就 会在接受任何连接请求前把进程交给 apache 用户。 Group 的值与 Group 指令相对应。Group 指令和 User 指令很相似。它设置服务器回答请 求所用的组群。默认组群也是 apache。 11.5 调整性能 点击「调整性能」标签来配置您想使用的服务器子进程的最大数量,以及客户连接方面的 Apache HTTP 服务器 选项。这些选项的默认设置在多数情况下是恰当的。改变这些设置会影响 您的万维网服务器的整体性能。 图 11.11 调整性能 把「最多连接数量」设为服务器能够同时处理的客户请求的最多数量。服务器为每个连接 创建一个 httpd 子进程。进程数量达到最大限度后,直到某子进程结束,万维网服务器才能够 接受新客户连接。如果不重新编译 Apache,您为该选项设置的值将不能超高 256。该选项与 MaxClients 指令相对应。 「连接超时」定义您的服务器在通信时等候传输和回应的秒数。特别是,「连接超时」定 义您的服务器在接收 GET 请求时要等多久,在接收 POST 或 PUT 请求的 TCP 包时要等多久, 以及在回应 TCP 包的 ACK 之间要等多久。「连接超时」被默认设为 300 秒,这在多数情况下 都是适用的。该选项与 TimeOut 指令相对应。 80 银河麒麟服务器操作系统管理员手册 把「每次连接最多请求数量」设为每个持续连接所允许的最多请求次数。默认值为 100, 这应该在多数情况下都适用。该选项与 MaxRequestsPerChild 指令相对应。 如果您选择了「允许每次连接可有无限制请求」选项,MaxKeepAliveRequests 指令的值就 会是 0,这会允许无限制的请求次数。 如果您取消选择了「允许持久性连接」选项,KeepAlive 指令就会被设为 false。如果您 选择了它,KeepAlive 指令就会被设为 true,并且 KeepAliveTimeout 指令的值会被设为「下 次连接的超时时间」中选定的值。该指令设置的超时秒数是您的服务器在回答了一项请求之后, 关闭连接之前,等待下一个请求时会等候的秒数。一旦接收到请求,服务器就会改用「连接超 时」中的值。 把「持续连接」设为一个较大的数值可能会导致服务器速度减慢,这要依据试图连接该服 务器的用户数量而定。该选项的数值越大,等候前一个用户再次连接的服务器进程就越多。 11.6 保存设置 如果您不想保存所做的 Apache HTTP 服务器配置,点击 HTTP 配置工具窗口右下角的「取 消」按钮。您会被提示确认。如果您点击了「是」来确认该选择,您的设置就不会被保存。 如果您想保存您所做的 Apache HTTP 服务器配置,点击 HTTP 配置工具窗口右下角的「确 定」按钮。一个对话框就会出现。如果您点击了「是」,您的设置就会被保存在 /etc/httpd/conf/httpd.conf 中。切记,您的原有配置会被覆盖。 如果这是您第一次使用 HTTP 配置工具,您会看到一个警告您配置文件已经被手工修改的 对话框。如果 HTTP 配置工具检测到 httpd.conf 配置文件已被手工修改,它会把手工修改的 文件保存为 /etc/httpd/conf/httpd.conf.bak。 81 银河麒麟服务器操作系统管理员手册 第12章 Apache HTTP 安全服务器配置 12.1 介绍 本章介绍了启用 mod_ssl 安全模块来使用 OpenSSL 库和工具包的 Apache HTTP 服务器 的基本信息。这三个部分的组合在本章中被称为安全万维网服务器或安全服务器。 mod_ssl 模块是 Apache HTTP 服务器的安全模块。mod_ssl 模块使用由 OpenSSL 计划提 供的工具来给 Apache HTTP 服务器添加一项重要功能 — 加密通信的能力。与之相反,使用常 规 HTTP,浏览器和万维网服务器间的通讯就会使用纯文本,它们在浏览器和服务器之间的路线 上可能会被其它人截取并偷阅。 本章并不是这些程序的完全或唯一的文档。若您想获取关于某主题更深入的文档,本章在 合适的地方会为您指引途径。 本章将会向您显示如何安装这些程序。您还需要掌握生成密钥、证书请求、如何生成自我 签名的证书、以及如何安装证书来用于您的安全服务器的必要步骤。 mod_ssl 配置文件位于 /etc/httpd/conf.d/ssl.conf。要载入这个文件使 mod_ssl 能够 工作,您必须在 /etc/httpd/conf/httpd.conf 中包括 Include conf.d/*.conf。该声明被默 认包括在默认的 Apache HTTP 服务器配置文件中。 12.2 与安全相关的软件包概述 要启用安全服务器,您至少需要安装以下软件包: z httpd httpd 软件包包含 httpd 守护进程和相关的工具、配置文件、图标、Apache HTTP 服务器 模块、说明书(man)页和其它被 Apache HTTP 服务器使用的文件。 z mod_ssl mod_ssl 软件包包括 mod_ssl 模块,它通过安全套接字层(SSL)和传输层安全(TLS)协 议为 Apache HTTP 服务器提供了强大的加密能力。 z openssl openssl 软件包包含 OpenSSL 工具包。OpenSSL 工具包实现 SSL 和 TLS 协议,还包括一 个常规目的的加密库。 除此之外,其它软件包也可以提供一定程度的安全功能(但不是安全服务器运行所必需的): z httpd-devel httpd-devel 软件包包含 Apache HTTP 服务器的包含文件、头文件和 APXS 工具程序。如 果您打算载入额外的模块(除了该产品所提供的),您需要以上所有文件和程序。。 如果您不打算在 Apache HTTP 服务器中载入额外模块,您不安装该软件包。 z OpenSSH 软件包 The OpenSSH 软件包提供了一组用来在远程机器上登录和执行命令的 OpenSSH 网络连接 工具集合。OpenSSH 工具加密所有交通(包括口令),因此您可以避免被窃听,防范截取连接 和其它对您的机器和远程机器间通信的攻击。 82 银河麒麟服务器操作系统管理员手册 openssh 软件包包括 OpenSSH 客户程序和服务器都需要的核心文件。openssh 软件包还包 括 scp,它是 rcp(用来在机器间复制文件)和 ftp(用来在机器间传输文件)的安全替换。 openssh-askpass 软件包支持对话框窗口的显示。该窗口在使用 OpenSSH 代理时提示您输 入口令。 openssh-askpass-gnome 软件包可以在 OpenSSH 程序提示您输入口令时和 GNOME 桌面环 境一起使用来显示图形化对话窗口。如果您运行的是 GNOME,并使用 OpenSSH 工具,您应该安 装该软件包。 openssh-server 软件包包括 sshd 安全 shell 守护进程和相关文件。安全 shell 守护进 程是 OpenSSH 套件的服务器一方,如果您想允许 SSH 客户连接到您的主机,您必须在主机上 安装该软件包。 openssh-clients 软件包包含进行加密 SSH 服务器连接所需的客户程序,其中包括:ssh (rsh 的安全替换);sftp(ftp 的安全替换,用来在机器间传输文件);slogin(用于远程 登录的 rlogin 和通过 Telnet 协议与另一主机通信的 telnet 的安全替换)。 z openssl-devel openssl-devel 软件包包含编译带有各类加密算式和协议支持的应用程序所需的静态库和 包含文件。您只有在开发包括 SSL 支持的应用程序时,才需要安装该软件包 — 仅使用 SSL 不 必安装该软件包。 z stunnel stunnel 软件包提供了 Stunnel SSL wrapper 程序。Stunnel 支持 TCP 连接的 SSL 加密, 因此它可以为无 SSL 的守护进程和协议(如 POP、IMAP 和 LDAP)提供加密,却不需对守护进 程的编码做任何修改。 表 12.1 显示了安全服务器软件包的摘要,并表明每个软件包对安全万维网服务安装是否 必不可少。 表 12.1 安全服务器软件包 软件包名称 是否可选可不选? httpd 否 mod_ssl 否 openssl 否 httpd-devel 是 openssh 是 openssh-askpass 是 openssh-askpass-gnome 是 openssh-clients 是 openssh-server 是 83 银河麒麟服务器操作系统管理员手册 软件包名称 是否可选可不选? openssl-devel 是 stunnel 是 12.3 证书和安全概述 您的安全服务器使用安全套接字层(SSL)和(多数情况下)来自证书权威(CA)的数码证 书来提供安全性。SSL 处理浏览器和您的安全服务器间的加密通讯和互相验证。CA 认可的数码 证书为您的安全服务器提供验证(CA 以它的名誉来担保您的机构组织的身份)。当您的浏览器 使用 SSL 加密通讯时,您会看到导航栏上的划一资源定位(URL)的开头有一个“https://” 前缀。 加密依赖于对钥匙的使用(您可以把它们当成数据格式的秘密编码和解码钥匙)。传统的 或对称的加密术中,事务的两端都使用同一把钥匙,它们可以用这把钥匙来破译彼此的传输。 在公共或非对称加密术中,有两把钥匙并存:公钥和密钥。某人或某机构把他们的密钥保密, 只公布他们的公钥;使用密钥编码的数据只能用公钥才能解码。 要设置您的安全服务器,您将会使用公共加密术来创建公钥和密钥对。在多数情况下,您 会向某 CA 发送证书请求(包括您的公钥)、您的公司身份的证据,并且付款。CA 将会校验您 的证书请求和身份,然后把您的安全万维网证书寄回给您。 安全服务器使用证书来向万维网浏览器标明身份。您可以生成您自己的证书(叫做“自签” 证书),或者您可以从证书权威中获取证书。来自有声望的 CA 的证书会担保与某一特定公司 或机构相连的网站的身份。 另外,您也可以创建您自己的自签证书。然而请注意,自签证书不应该被用在多数生产环 境中。自签证书不会被用户的浏览器自动接受 — 浏览器将会征询用户是否要接受该证书并创 建安全连接。在您有了自签的证书或来自 CA 的证书后,您需要把它安装在您的安全服务器上。 12.4 使用已存钥匙和证书 如果您已有现存的钥匙和证书(例如,如果您要安装安全服务器来替换另一家公司的安全 服务器产品),您有可能可以在安全服务器中使用现存的钥匙和证书。在下面这两种情况下, 您将无法使用现存的钥匙和证书: 证书是向特定 IP 地址和域名对颁发的,如果您改变了您的 IP 地址和域名,您需要申请一 份新证书。 VeriSign 是使用较广泛的 CA。如果您已有一份由于其它原因而获得的 VeriSign 证书, 但可能打算在新安全服务器中使用现有的 VeriSign 证书,然而,您将不会被允许使用它。这 是因为 VeriSign 依据特定服务器软件和 IP 地址/域名组合来颁发证书。 如果您改变了以上任一参数(譬如,从前您使用了另一个安全服务器产品,现在您想使用 这个安全服务器),您为从前的配置所获取的 VeriSign 证书将无法在新配置中使用。您必须 获取一份新证书。 如果您有可以使用的已存钥匙和证书,您将不必生成新钥匙或获取新证书。然而,您可能 需要转移并重命名包含钥匙和证书的文件。 84 银河麒麟服务器操作系统管理员手册 把您的现存钥匙文件转移到: /etc/httpd/conf/ssl.key/server.key 将您的现存证书文件转移到: /etc/httpd/conf/ssl.crt/server.crt 如果您要升级安全万维网服务器,您的旧钥匙(httpsd.key)和证书(httpsd.crt)将会 位于 /etc/httpd/conf/ 下。您将需要转移并重命名您的钥匙和证书,因此安全服务器才能使 用它们。使用以下两个命令来转移并重命名钥匙和证书文件: mv /etc/httpd/conf/httpsd.key /etc/httpd/conf/ssl.key/server.key mv /etc/httpd/conf/httpsd.crt /etc/httpd/conf/ssl.crt/server.crt 然后,使用下面的命令来启动安全服务器: /sbin/service httpd start 安全服务器会提示您输入口令句。键入口令句后按 [Enter] 键,服务器就会启动。 12.5 证书类型 如果您从 Kylin 提供的 RPM 中安装了安全服务器,一个随机钥匙和测试证书就会被生成并 放置在适当的目录中。然而,在您使用安全服务器之前,您必须生成您自己的钥匙并获取正确 标记您的服务器身份的证书。 您需要钥匙和证书才能操作安全万维网服务 — 这意味着您可以生成一个自签的证书或从 某 CA 处购买一份由 CA 签名的证书。这两者间有什么区别呢? 由 CA 签名的证书为您的服务器提供两项重要能力: 浏览器(通常)会自动识别证书,并且不必提示用户就能够允许开通安全连接。 当某 CA 颁发了签名的证书,他们是在向浏览器担保提供网页的机构的身份。 如果您的安全服务器被广大公众所访问,您的安全服务器需要有 CA 签名的证书,因此访 问您的网站的用户可以信任该网站的确是声明拥有它的机构所拥有。在签发证书前,CA 校验申 请证书机构的身份确实如他们所言。 多数支持 SSL 的万维网浏览器有一个它们会自动接受证书的 CA 列表。如果浏览器遇到一 份来自列表之外的授权 CA 的证书,浏览器会询问用户是否要接受连接。 您可以为您的安全服务器生成一份自签的证书,但是请留意,自签证书将不会提供和 CA 签 发的证书相同的功能。自签证书将不会被多数用户浏览器自动识别,而且它将不会担保提供网 站的机构的身份。由 CA 签发的证书为安全服务器提供这两项重要的能力。如果您的安全服务 器将会用在生产环境中,您可能会需要 CA 签发的证书。 从 CA 获取证书的手续非常简单。下面是对其步骤的简单描述: z 创建加密的公钥和密钥对。 z 根据公钥创建证书请求。证书请求包括关于您的服务器和主持它的公司的信息。 z 向某 CA 发送证书请求,以及证明您的身份的文档。我们不能向您建议该选择哪个 CA。 您的决定可以建立在过去的经验上,或者您的朋友或同事的经验上,或者单从经济上 考虑。 z 当您选定了一个 CA 后,您需要遵循他们提供的说明来获取证书。 85 银河麒麟服务器操作系统管理员手册 z 当 CA 对您的身份的真实性满意后,他们就会给您寄发一份数码证书。 z 在您的安全服务器上安装该证书,然后开始处理安全事务。 z 不论您是从 CA 处获取证书,还是使用自签的证书,第一个步骤都是生成钥匙。 12.6 生成钥匙 您必须是根用户才能生成钥匙。 首先,使用 cd 命令转换到 /etc/httpd/conf/ 目录中,使用下面的命令删除在安装中生 成的假钥匙和证书: rm ssl.key/server.key rm ssl.crt/server.crt 其次,您需要生成您自己的随机钥匙。改换到 /usr/share/ssl/certs/ 目录中,键入以下 命令: Make server.key 您的系统会显示和以下相似的消息: umask 77 ; \ /usr/bin/openssl genrsa -des3 1024 > /etc/httpd/conf/ssl.key/server.key Generating RSA private key, 1024 bit long modulus .......++++++ ................................................................++++++ e is 65537 (0x10001) Enter pass phrase: 现在,您需要键入口令句。要获得最佳安全性,您的口令应至少包括八个字符,包括数字 和标点,且不是词典中的现成词汇。另外请记住,您的口令是区分大小写的。 重新键入口令来校验它是否正确。一旦您正确地键入了,一个包括您的钥匙,叫做 >/etc/httpd/conf/ssl.key/server.key 的文件就会被创建。 注意,如果您不想在每次启动安全服务器的时候都输入口令句,您将需要下面这两条命令, 而不是 make genkey 来创建钥匙。 使用下面的命令来创建您的钥匙: /usr/bin/openssl genrsa 1024 > /etc/httpd/conf/ssl.key/server.key 然后使用这条命令来确定钥匙的权限被正确设置: chmod go-rwx /etc/httpd/conf/ssl.key/server.key 在您使用以上命令创建钥匙后,您将不需要使用口令句来启动安全服务器。 不使用口令所造成的问题和主机的安全维护休戚相关。譬如,若有人危害了主机上的常规 UNIX 安全系统,他就可以获取您的密钥(server.key 文件的内容)。该钥匙可以用来提供似 乎是来自您的安全服务器的网页。 如果 UNIX 安全系统在主机上被认真维护(及时安装操作系统的补丁和更新;不操作不必 要的或冒险的服务等等),安全服务器的口令可能就不是很必要。然而,由于您的安全服务器 应该没必要被频繁重新启动,输入口令所能带来的额外保险在多数情况下是值得一行的。 86 银河麒麟服务器操作系统管理员手册 server.key 文件应该被系统的根用户拥有,不应该被其它用户存取。给该文件备份,将备 份副本存放在安全之处。您需要备份的原因是,如果您在使用钥匙创建了证书请求后丢失了 server.key 文件,您的证书就不会再生效,而 CA 对此也爱莫能助。您只能再申请(并购买) 一份新证书。 12.7 生成发送给 CA 的证书请求 一旦您创建了钥匙,下一步就是生成证书请求,您需要把该请求发送给选中的 CA。请确定 您位于 /usr/share/ssl/certs 目录,并键入下面的命令: Make certreq 您的系统会显示下列输出,然后还会请您输入口令句(除非您禁用了口令句选项): umask 77 ; \ /usr/bin/openssl req -new -key /etc/httpd/conf/ssl.key/server.key -out /etc/httpd/conf/ssl.csr/server.csr Using configuration from /usr/share/ssl/openssl.cnf Enter pass phrase: 键入您在生成钥匙时选择的口令。您的系统将会显示一些说明,然后请您回答一系列问题。 您的输入会被包括在证书请求中。系统显示的输出以及答复,看起来和下面相似: You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----Country Name (2 letter code) [GB]:US State or Province Name (full name) [Berkshire]:North Carolina Locality Name (eg, city) [Newbury]:Raleigh Organization Name (eg, company) [My Company Ltd]:Test Company Organizational Unit Name (eg, section) []:Testing Common Name (your name or server's hostname) []:test.example.com Email Address []:admin@example.com Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []: An optional company name []: 87 银河麒麟服务器操作系统管理员手册 默认回答紧随在每项要求后面的括号内([])。例如,第一项要求的信息是证书要被用于 的国家,如下所示: Country Name (2 letter code) [GB]: 出现在括号内的默认输入是 GB。要接受默认值,只需按 [Enter],或填入您的国家的两个 字母的代号。 您必须得回答剩下的问题。这些都应该是不言而喻的,不过您需要遵从以下准则: 不要用地域或州省的缩写。用全称(如,St. Louis 应该被写成 Saint Louis)。 如果您要把该 CSR 寄发给 CA,确保在所有的字段内都提供了正确的信息,特别是 Organization Name 和 Common Name 这两项。CA 检查 CSR 中提供的信息以判定您的机构是否 对您所提供的 Common Name 负责。CA 将会拒绝他们认为含有无效信息的 CSR。 对于 Common Name,确定您键入了您的安全服务器的真实名称(有效的 DNS 名称),而不 是服务器的别名。 Email Address 应该是网主或系统管理员的电子邮件地址。 避免使用 @、#、&、! 之类的特殊字符。某些 CA 将会拒绝包含特殊字符的请求。因此, 如果您的公司名称包含 &,把它拼写为“and”而不使用“&”。 不要使用这两项附加属性:A challenge password 和 An optional company name。要不 输入这些字段而继续,只需按 [Enter] 键来接受空白的默认值即可。 信息输入完毕后,一个叫做 /etc/httpd/conf/ssl.csr/server.csr 的文件就会被创建。 该文件是您的证书请求,可以随时寄发给您的 CA。 在您选定了 CA 后,按照他们在网站提供的说明行事。这些说明会告诉您如何发送证书请 求,您还需要哪些文档以及付款信息。 在您满足了 CA 的要求后,他们就会给您寄发证书(通常通过电子邮件)。将它们寄发的 证书保存为(或剪贴为)/etc/httpd/conf/ssl.crt/server.crt 文件。请确定给该文件保留一 份备份。 12.8 创建自签的证书 您可以创建自签的证书。请注意,自签的证书将不会提供由 CA 签发的证书所提供的安全 担保。 如果您想制作自签的证书,您首先需要创建随机钥匙。一旦创建了钥匙,确定您目前位于 /usr/share/ssl/certs 目录中,再键入下面的命令: Make testcert 您将会看到以下输出,您会被提示输入口令句(除非您生成了无口令句的钥匙): umask 77 ; \ /usr/bin/openssl req -new -key /etc/httpd/conf/ssl.key/server.key -x509 -days 365 -out /etc/httpd/conf/ssl.crt/server.crt Using configuration from /usr/share/ssl/openssl.cnf Enter pass phrase: 88 银河麒麟服务器操作系统管理员手册 输入口令句后(如果您创建了无口令句的钥匙则没有提示),您会被要求输入更多信息。 计算机的输出以及一组示例输入与以下的显示相仿(您需要为您的主机和机构提供正确的信 息): You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----Country Name (2 letter code) [GB]:US State or Province Name (full name) [Berkshire]:North Carolina Locality Name (eg, city) [Newbury]:Raleigh Organization Name (eg, company) [My Company Ltd]:My Company, Inc. Organizational Unit Name (eg, section) []:Documentation Common Name (your name or server's hostname) []:myhost.example.com Email Address []:myemail@example.com 提供了正确信息后,自签的证书就会在 /etc/httpd/conf/ssl.crt/server.crt 文件中创 建。生成证书后,您需要使用以下命令来重新启动安全服务器: /sbin/service httpd restart 12.9 测试证书 要测试默认安装的测试证书、CA 签发的证书、以及自签的证书,把您的万维网服务器转到 以下主页(把 server.example.com 替换成您的域名): https://server.example.com 如果您使用的是由知名 CA 签发的证书,您的浏览器可能会自动接受该证书(不必提示您 输入)并创建安全连接。您的浏览器不会自动识别测试证书或自签证书,因为这些证书不是由 CA 签发的。如果您没有使用来自 CA 的证书,请遵循浏览器的说明来接受证书。 您的浏览器接受了证书后,您的安全服务器就会显示默认的主页。 12.10 访问服务器 要访问您的安全服务器,使用和以下相似的 URL: https://server.example.com 您的非安全服务器可以使用和以下相似的 URL 来访问: http://server.example.com 安全万维网通讯的标准端口是端口 443。非安全万维网通讯的标准端口是端口 80。安全服 务器默认配置对这两个端口都监听。因此,您不必在 URL 中指定端口号码(端口号码会被假定)。 89 银河麒麟服务器操作系统管理员手册 然而,如果您配置您的服务器去监听非标准的端口(除 80 和 443 之外的),您必须在每个 URL 中指定旨在非标准端口上连接服务器的端口号码。 例如,您可能给您的服务器做了相应配置,因此您在端口 12331 上运行一个非安全的虚拟 主机。任何旨在连接该虚拟主机的 URL 都必须在 URL 中指定端口号码。下面的 URL 例子会试 图连接在端口 12331 监听的非安全万维网服务器: http://server.example.com:12331 90 银河麒麟服务器操作系统管理员手册 第13章 基本防火墙配置 如同建筑物中的防火墙会试图防止火势蔓延,计算机中的防火墙会试图防止计算机病毒蔓 延到您的系统中。它还能阻止未经授权的用户进入您的系统。防火墙存在于您的计算机和网络 之间,它可以判定您的计算机上哪些服务可以被网络上的远程用户访问。一个正确配置的防火 墙能够极大地增强您的系统安全性。我们建议您为所有连接到互联网上的 Kylin 系统配置一个 防火墙。 13.1 安全级别配置工具 Kylin 安装中的「防火墙配置」屏幕给您提供了启用基本防火墙的的选项;您还可以选择 要允许的指定设备、进入服务、和端口等。 安装后,您可以使用安全级别配置工具来改变这个首选项。 要启动这个程序,选择面板上的「开始」 => 「控制面板」=> 「高级」 => 「安全级别」, 或在 shell(如 XTerm 或 GNOME 终端)下键入 config-securitylevel 命令。 图 13.1 安全级别配置工具 选择以下选项之一: 「禁用防火墙」 — 禁用防火墙给予到您的系统的完全访问权并不做任何安全检查。系统 检查是对某些服务的禁用。建议您只有在一个可信任的网络(非互联网)中运行时,或者您想 稍后再进行详细的防火墙配置时才选此项。 「启用防火墙」 — 该选项配置系统拒绝非答复输出请求如 DNS 答复或 DHCP 请求的进入 连接。如果需要使用在这个机器上运行的服务,您可以选择允许指定的服务穿过防火墙。 91 银河麒麟服务器操作系统管理员手册 如果您要把系统连接到互联网上,但是并不打算运行服务器,这是最安全的选择。 选择任何一个「信任的设备」会允许来自该设备的到您的系统的所有交通。它不在防火墙 规则的限制之内。譬如,如果您在运行一个本地网络,但是通过 PPP 拨号连接到了互联网上, 您可以选择「eth0」,所有来自您的本地网络的交通就会被允许。把「eth0」选为“信任的设 备”意味着所有通过以太网的交通都会被允许,但是通过 ppp0 接口的交通仍受防火墙的限制。 如果您想限制某个接口上的交通,就不要选择它。 建议您不要把连接到公共网络(如互联网)上的设备选为「信任的设备」。 启用「信任的服务」列表中的选项会允许指定的服务穿过防火墙。 「WWW (HTTP)」 HTTP 协议被 Apache(以及其它万维网服务器)用来提供网页。如果您打算使您的万维网 服务器公开可用,请启用该选项。您不必启用该选项来本地查看网页或开发网页。如果您想提 供网页,您必须安装 apache 软件包。 启用「WWW (HTTP)」不会为 HTTPS(HTTP 的 SSL 版本)打开一个端口。 「FTP」 FTP 协议被用来在网络上的机器间传输文件。如果您打算使您的 FTP 服务器公开可用,启 用该选项。您需要安装 vsftpd 软件包才能是该选项能够发生作用。 「SSH」 安全 Shell(SSH)是用来在远程机器上登录及执行命令的协议套件。如果您计划使用 SSH 工具通过防火墙来进入您的机器,启用该选项。您必须安装 openssh-server 软件包才能使用 SSH 工具来远程地进入您的机器。 「Telnet」 Telnet 是一种远程登录机器的协议。Telnet 的通信是不加密的,没有提供任何防止网络 刺探之类的安全措施。建议您不要允许进入的 Telnet 访问。如果您想允许进入的 Telnet 访 问,您必须安装 telnet-server 软件包。 「邮件 (SMTP)」 如果您想允许进入的邮件穿过您的防火墙,从而使远程主机能够直接连接到您的机器来分 发邮件,则启用该选项。如果您只想从使用 POP3 或 IMAP 的 ISP 服务器来收取邮件,或者使 用 fetchmail 之类的工具,则不必启用这个选项。注意,不正确配置的 SMTP 服务器会允许远 程机器使用您的服务器来发送垃圾邮件。 点击「确定」来保存改变和启用或禁用防火墙。若选择了「启用防火墙」,选定的选项就 会被转换成 iptables 命令并写入 /etc/sysconfig/iptables 文件。iptables 服务也被启动, 因此,保存了选定选项后,防火墙就会被立即激活。若选择了「禁用防火墙」, /etc/sysconfig/iptables 文件就会被删除,iptables 服务就会被立即停止。 选定的选项还被写入 /etc/sysconfig/config-securitylevel 文件,因此这些设置可以在 程序下次启动时被恢复。请不要手工编辑该文件。 尽管防火墙会被立即激活,iptables 服务的配置却不在引导时被自动启动。 92 银河麒麟服务器操作系统管理员手册 第14章 控制对服务的访问 维护系统的安全性极端重要。管理系统安全的方法之一是谨慎管理对系统服务的使用。您 的系统可能需要提供对某些服务的公开利用(譬如 httpd,如果您在运行万维网服务器的话)。 然而,如果您不需要提供某项服务,则应该把它关闭 — 这会降低您对可能会出现的漏洞利用 情况的曝光率。 管理对系统服务访问的方法有好几种。根据服务、系统配置、以及您对 Kylin 的掌握程度 来决定应使用哪一种管理方法。 拒绝对某一服务的使用的最简便方法是将其关闭。不论是由 xinetd(我们会在本节后面详 细讨论)管理的服务,还是在 /etc/rc.d 层次(又称 SysV)中的服务,都可以使用以下三种 不同的应用程序来配置其启动或停止: 服务配置工具 — 一个图形化应用程序,它显示了每项服务的描述,以及每项服务是否在 引导时启动(运行级别 3、4、5),并允许您启动、停止、或重新启动每项服务。 ntsysv — 基于文本的程序。它允许您为每个运行级别配置引导时要启动的服务。对于不 属于 xinetd 的服务而言,改变不会立即生效。您不能使用这个程序来启动、停止、或重新启 动不属于 xinetd 的服务服务。 chkconfig — 一个允许您在不同运行级别启动和关闭服务的命令行工具。对于不属于 xinetd 的服务而言,改变不会立即生效。您不能使用这个工具程序来启动、停止、或重新启动 不属于 xinetd 的服务服务。 您可能会发现以上工具比使用下面这些方法更简单 — 手工编辑位于 /etc/rc.d 目录下 的大量符号链接,或者编辑 /etc/xinetd.d 中的 xinetd 配置文件。 管理对系统服务的使用的另一种方法是通过 iptables 来配置 IP 防火墙。如果您是新手, 请注意,iptables 可能不是您的最佳解决办法。设置 iptables 是一项复杂的作业,最好由经 验丰富的系统管理员来执行。 从另一角度而言,iptables 的优越性是它的灵活性。譬如,如果您需要一个定制的解决方 案来为某些主机提供到某些服务的使用权,iptables 能够为您提供。 此外,如果您寻找的是能够为您的家用机器设置常规访问规则的工具程序,并且(或者) 您还是新手,您应该尝试使用安全级别配置工具(config-securitylevel)。该工具允许您为 系统选择安全级别,它和安装程序中的「防火墙配置」屏幕相似。 14.1 运行级别 在您配置到服务的访问之前,您必须理解 Kylin 运行级别。运行级别是一种状态,或模式 (mode),它由列在 /etc/rc.d/rc.d 目录中的服务来定义,其中 是运行级别的数字。 现存的运行级别如下: 0 — 停运 1 — 单用户模式 2 — 没有使用(可由用户定义) 93 银河麒麟服务器操作系统管理员手册 3 — 完整的多用户模式 4 — 没有使用(可由用户定义) 5 — 完整的多用户模式(带有基于 X 的登录屏幕) 6 — 重新引导 如果您使用的是文本登录屏幕,您所在的运行级别就是 3。如果您使用的是图形化登录屏 幕,您所在的运行级别就是 5。 默认的运行级别可以通过修改 /etc/inittab 文件来改变,该文件在接近开头的地方有一 行与下面相似: id:5:initdefault: 把这一行中的数字改成您想要的运行级别。所做改变在系统重新引导之后才会生效。 要立即改变运行级别,使用 telinit,之后跟随运行级别号码。您必须是根用户才能使用 这个命令。telinit 命令并不改变 /etc/inittab 文件;它只改变当前的运行级别。当系统重 新引导后,它会被引导入 /etc/inittab 中指定的运行级别。 14.2 TCP 会绕程序 许多系统管理员对使用 TCP 会绕程序来管理对某些网络服务的使用比较熟悉。由 xinetd (以及任何带有内建 libwrap 支持的程序)管理的服务能够使用 TCP 会绕程序来管理使用权。 xinetd 能够使用 /etc/hosts.allow 和 /etc/hosts.deny 文件来配置到系统服务的使用。如 文件的名称所暗示,hosts.allow 包含一个允许客户使用被 xinetd 所控制的网络服务的规则 列表,hosts.deny 文件包含拒绝使用权的规则。hosts.allow 文件优先于 hosts.deny 文件。 对使用权限的授予或拒绝可以根据个别 IP 地址(或主机名)或一类客户而定。 14.2.1 Xinetd 要控制到互联网服务的访问,使用 xinetd。它是 inetd 的安全替换品。xinetd 守护进程 保存系统资源,提供访问控制和日志记录,并可以用来启动特殊目的的服务器。xinetd 能够用 来提供到某些主机的访问;拒绝到某些服务的访问;约束进入连接的频率和(或)连接带来的 载量等等。 xinetd 无时不在运行并监听它所管理的所有端口上的服务。当某个要连接它管理的某项服 务的请求到达时,xinetd 就会为该服务启动合适的服务器。 xinetd 的配置文件是 /etc/xinetd.conf,但是它只包括几个默认值以及一个包含 /etc/xinetd.d 目录中配置文件的指令。要启用或禁用某项 xinetd 服务,编辑位于 /etc/xinetd.d 目录中的配置文件。如果 disable 属性被设为 yes,该项服务就被禁用。如果 disable 属性被设为 no,则该项服务已被启用。您可以使用服务配置工具、ntsysv 或 chkconfig 来编辑任何一个 xinetd 配置文件或改变它的启用状态。要获得由 xinetd 控制的 网络服务列表,使用 ls /etc/xinetd.d 命令来列举 /etc/xinetd.d 目录的内容。 94 银河麒麟服务器操作系统管理员手册 14.3 服务配置工具 服务配置工具是图形化应用程序,用来配置在引导时(对运行级别 3、4、5 而言)要启动 /etc/rc.d/init.d 中的哪些 SysV 服务,哪些 xinetd 服务。它允许您启动、停止、和重新启 动 SysV 服务以及重新启动 xinetd。 要从桌面启动服务配置工具,点击面板上的「开始」 => 「控制面板」 => 「服务器设置」 => 「服务」,或在 shell 提示下(如 XTerm 或 GNOME 终端),键入命令 config-services。 图 14.1 服务配置工具 服务配置工具显示当前运行级别以及您目前正编辑的运行级别。要编辑不同的运行级别, 从拉下菜单中选择「编辑运行级别」,然后选择运行级别 3、4、或 5。 服务配置工具不但列出了 /etc/rc.d/init.d 中的服务,还列出了由 xinetd 控制的服务。 点击左侧列表中的服务名来显示该服务的简短描述以及它的服务状态。如果这个服务不是 xinetd 服务,状态窗口会显示该服务目前是否在运行。如果该服务被 xinetd 所控制,状态窗 口会显示「xinetd 服务」这个短语。 95 银河麒麟服务器操作系统管理员手册 要立即启动、停止、或重新启动某项服务,从列表中选择该项服务,然后点击工具栏上的 相应按钮(或从「行动」拉下菜单中选择行动)。如果该服务是一个 xinetd 服务,行动按钮 会被禁用,因为它们不能被单个地启动或停止。 如果您通过选择或取消选择服务名旁的复选箱来启用或禁用了 xinetd 服务,您必须从拉 下菜单中选择「文件」 => 「保存改变」来重新启动 xinetd,并立即启用或禁用您所改变的 xinetd 服务。xinetd 还被配置成自动记忆设置。您可以同时启用或禁用多个 xinetd 服务, 在结束后再保存改变。 譬如,假设您选择在运行级别 3 中启用 rsync,并保存了改变。rsync 服务会立刻被启用。 下一次 xinetd 被启动时,rsync 仍会被启用。 要在引导时为当前选中的运行级别启用不属于 xinetd 的服务,选择列表中该服务名旁的 复选箱。配置了运行级别后,通过选择拉下菜单上的「文件」 => 「保存改变」来应用改变。 运行级别配置会被改变,但是不会被重新启动;这样,改变就不会立即生效。 譬如,假定您在配置运行级别 3。如果您把 httpd 服务的状态从“被选”改成“不选”, 然后选择「保存改变」,运行级别 3 的配置会被改变,因此 httpd 在引导时就不会被启动。但 是,运行级别 3 没有被重新初始化,因此 httpd 仍在运行。这时,从下列选择中任选一个: 停止 httpd 服务 — 要关闭该服务,从列表中选择它,然后点击「停止」按钮。一条声明 服务已被成功停止的消息就会被显示出来。 重新初始化运行级别 — 重新初始化运行级别的方法是:打开 shell 提示,然后键入命令 telinit 3(这里的 3 是运行级别号码)。如果您改变了多个服务的「引导时启动」值,并想立 即激活改变,推荐您使用这种方法。 什么都不做 — 您不必停止 httpd 服务。您可以等到系统重新引导时才停止该服务。在系 统下一次引导时,运行级别就会被初始化为不运行 httpd 服务。 要在某个运行级别中添加服务,从「编辑运行级别」拉下菜单中选择运行级别,然后选择 「行动」 => 「添加服务」。要从某个运行级别中删除服务,从「编辑运行级别」拉下菜单中 选择运行级别,在左侧的列表中选择要删除的服务,然后选择「行动」 => 「删除服务」。 14.4 ntsysv ntsysv 工具为激活或停运服务提供了简单的界面。您可以使用 ntsysv 来启动或关闭由 xinetd 管理的服务。您还可以使用 ntsysv 来配置运行级别。按照默认设置,只有当前运行级 别会被配置。要配置不同的运行级别,使用 --level 选项来指定一个或多个运行级别。譬如, 命令 ntsysv --level 345 配置运行级别 3、4、和 5。 ntsysv 的界面与文本模式的安装程序的工作方式相仿。使用上下箭头来上下查看列表。使 用空格键来选择或取消选择服务,或用来“按”「确定」和「取消」按钮。要在服务列表和「确 定」、「取消」按钮中切换,使用 [Tab]键。“*” 标明某服务被设为启动。[F1] 键会弹出每 项服务的简短描述。 96 银河麒麟服务器操作系统管理员手册 图 14.2 ntsysv 服务配置工具 14.5 chkconfig chkconfig 命令也可以用来激活和解除服务。chkconfig --list 命令显示系统服务列表, 以及这些服务在运行级别 0 到 6 中已被启动(on)还是停止(off)。在列表末端,您会看到由 xinetd 管理的服务部分。 如果您使用 chkconfig --list 来查询由 xinetd 管理的服务,您会看到 xinetd 服务是 被启用(on)还是被关闭(off)了。譬如,命令 chkconfig --list finger 返回了下列输出: finger on 如上所示,finger 被作为 xinetd 服务启用。如果 xinetd 在运行,finger 就会被启用。 如果您使用 chkconfig --list 来查询 /etc/rc.d 中的服务,您会看到服务在每个运行级 别中的设置。譬如,命令 chkconfig --list httpd 返回了下列输出: httpd 0:off 1:off 2:on 3:on 4:on 5:on 6:off chkconfig 还能用来设置某一服务在某一指定的运行级别内被启动还是被停运。譬如,要 在运行级别 3、4、5 中停运 nscd 服务,使用下面的命令: chkconfig --level 345 nscd off 97 银河麒麟服务器操作系统管理员手册 第15章 OpenSSH OpenSSH 是 SSH (Secure SHell) 协议的免费开源实现。它用安全、加密的网络连接工 具代替了 telnet、ftp、 rlogin、rsh 和 rcp 工具。OpenSSH 支持 SSH 协议的版本 1.3、1.5、 和 2。自从 OpenSSH 的版本 2.9 以来,默认的协议是版本 2,该协议默认使用 RSA 钥匙。 15.1 为什么使用 SSH? 使用 OpenSSH 工具将会增进您的系统安全性。 所有使用 OpenSSH 工具的通讯,包括口令, 都会被加密。 telnet 和 ftp 使用纯文本口令,并被明文发送。这些信息可能会被截取,口令 可能会被检索,然后未经授权的人员可能会使用截取的口令登录进您的系统而对您的系统造成 危害。您应该尽可能地使用 OpenSSH 的工具集合来避免这些安全问题。 另一个使用 OpenSSH 的原因是,它自动把 DISPLAY 变量转发给客户机器。换一句话说, 如果您在本地机器上运行 X 窗口系统,并且使用 ssh 命令登录到了远程机器上,当您在远程 机器上执行一个需要 X 的程序时,它会显示在您的本地机器上。如果您偏爱图形化系统管理工 具,却不能够总是亲身访问该服务器,这就会为您的工作大开方便之门。 15.2 配置 OpenSSH 服务器 要运行 OpenSSH 服务器,您必须首先确定您安装了正确的 RPM 软件包。openssh-server 软件包是必不可少的,并且它依赖于 openssh 软件包的安装与否。 OpenSSH 守护进程使用 /etc/ssh/sshd_config 配置文件。默认配置文件在多数情况下应 该足以胜任。如果您想使用没有被默认的 sshd_config 文件提供的方式来配置守护进程,请阅 读 sshd 的说明书(man)页来获取能够在配置文件中定义的关键字列表。 要启动 OpenSSH 服务,使用 /sbin/service sshd start 命令。要停止 OpenSSH 服务器, 使用 /sbin/service sshd stop 命令。 如果您重新安装了,任何在它被重装前使用 OpenSSH 工具连接到这个系统上的客户在它被 重装后将会看到下列消息: @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY! Someone could be eavesdropping on you right now (man-in-the-middle attack)! It is also possible that the RSA host key has just been changed. 重装后的系统会为自己创建一组新的身份标识钥匙;因此客户会看到 RSA 主机钥匙改变的 警告。如果您想保存系统原有的主机钥匙,备份 /etc/ssh/ssh_host*key* 文件,然后在系统 重装后恢复它。该过程会保留系统的身份。当客户机在该系统重装后试图连接它,它们就不会 看到以上的警告信息。 98 银河麒麟服务器操作系统管理员手册 15.3 配置 OpenSSH 客户 要从客户机连接到 OpenSSH 服务器上,您必须在客户机器上装有 openssh-clients 和 openssh 软件包。 15.3.1 使用 ssh 命令 ssh 命令是 rlogin、rsh 和 telnet 命令的安全替换。它允许您在远程机器上登录并在其 上执行命令。 使用 ssh 来登录到远程机器和使用 telnet 相似。要登录到一个叫做 penguin.example.net 的远程机器,在 shell 提示下键入下面的命令: Ssh penguin.example.net 第一次使用 ssh 在远程机器上登录时,您会看到和下面相仿的消息: The authenticity of host 'penguin.example.net' can't be established. DSA key fingerprint is 94:68:3a:3a:bc:f3:9a:9b:01:5d:b3:07:38:e2:11:0c. Are you sure you want to continue connecting (yes/no)? 键入 yes 来继续。这会把该服务器添加到您的已知主机的列表中,如下面的消息所示: Warning: Permanently added 'penguin.example.net' (RSA) to the list of known hosts. 下一步,您会看到向您询问远程主机口令的提示。在输入口令后,您就会在远程主机的 shell 提示下了。如果您没有指定用户名,您在本地客户机器上登录用的用户名就会被传递给 远程机器。如果您想指定不同的用户名,使用下面的命令: ssh username@penguin.example.net 您还可以使用 ssh -l username penguin.example.net。 ssh 命令可以用来在远程机器上不经 shell 提示登录而执行命令。它的语法格式是: ssh hostname command。譬如,如果您想在远程主机 penguin.example.net 上执行 ls /usr/share/doc 命令,在 shell 提示下键入下面的命令: ssh penguin.example.net ls /usr/share/doc 在您输入了正确的口令之后, /usr/share/doc 这个远程目录中的内容就会被显示,然后 您就会被返回到您的本地 shell 提示下。 15.3.2 使用 scp 命令 scp 命令可以用来通过安全、加密的连接在机器间传输文件。它与 rcp 相似。 把本地文 件传输给远程系统的一般语法 scp 命令可以用来通过安全、加密的连接在机器间传输文件。它 与 rcp 相似。 把本地文件传输给远程系统的一般语法是: scp localfile username@tohostname:/newfilename localfile 指定源文件,username@tohostname:/newfilename 指定目标文件。 99 银河麒麟服务器操作系统管理员手册 要把本地文件 shadowman 传送到您在 penguin.example.net 上的账号内,在 shell 提示 下键入(把 username 替换成您的用户名): scp shadowman username@penguin.example.net:/home/username 这会把本地文件 shadowman 传输给 penguin.example.net 上的 /home/username/shadowman 文件。 把远程文件传输给本地系统的一般语法是: scp username@tohostname:/remotefile /newlocalfile remotefile 指定源文件,newlocalfile 指定目标文件。 源文件可以由多个文件组成。譬如,要把目录 /downloads 的内容传输到远程机器 penguin.example.net 上现存的 uploads 目录,在 shell 提示下键入下列命令: scp /downloads/* username@penguin.example.net:/uploads/ 15.3.3 使用 sftp 命令 sftp 工具可以用来打开一次安全互动的 FTP 会话。它与 ftp 相似, 只不过,它使用安 全、加密的连接。它的一般语法是:sftp username@hostname.com。一旦通过 验证,您可以使 用一组和使用 FTP 相似的命令。请参阅 sftp 的说明书页(man)来获取这些 命令的列表。要 阅读说明书页,在 shell 提示下执行 man sftp 命令。sftp 工具只在 OpenSSH 版本 2.5.0p1 以上才有。 15.3.4 生成钥匙对 如果您不想每次使用 ssh、scp 或 sftp 时都要输入口令来连接远程机器,您可以生成一 对授权钥匙。 钥匙必须为每个用户生成。要为某用户生成钥匙,用想连接到远程机器的用户身份来遵循 下面的步骤。如果您用根用户的身份完成了下列步骤,就只有根用户才能使用这对钥匙。 从 OpenSSH 版本 3.0 开始,~/.ssh/authorized_keys2、~/.ssh/known_hosts2 和 /etc/ssh_known_hosts2 就会过时。SSH 协议 1 和 2 共享 ~/.ssh/authorized_keys、 ~/.ssh/known_hosts 和 /etc/ssh/ssh_known_hosts 文件。 1. 为版本 2 生成 RSA 钥匙对 使用下列步骤来为 SSH 协议的版本 2 生成 RSA 钥匙对。从 OpenSSH 2.9 开始,它已成 为默认设置。 1) 要生成与协议的版本 2 一致的 RSA 钥匙对,在 shell 提示下键入下列命令: ssh-keygen -t rsa 接受 ~/.ssh/id_rsa 的默认位置。输入一个与您的帐号口令不同的口令句,再输 入一次来确认。 公钥被写入 ~/.ssh/id_rsa.pub。密钥被写入 ~/.ssh/id_rsa。决不 能把密钥出示给任何人。 2) 使用以下命令改变您的 .ssh 目录的许可权限: 100 银河麒麟服务器操作系统管理员手册 chmod 755 ~/.ssh 3) 把 ~/.ssh/id_rsa.pub 的内容复制到您想连接的机器上的 ~/.ssh/authorized_keys 文件中。如果 ~/.ssh/authorized_keys 不存在,您可以把 ~/.ssh/id_rsa.pub 文件复制到那 个机器上的 ~/.ssh/authorized_keys 文件中。 4) 使用以下命令改变您的 authorized_keys 文件的许可权限: chmod 644 ~/.ssh/authorized_keys 5) 如果您当前运行的是 GNOME,跳到 4。如果您没在运行 X 窗口系统,跳到 5。 2. 为版本 2 生成 DSA 钥匙对 使用下面的步骤来为 SSH 协议的版本 2 生成 DSA 钥匙对。 1) 要生成用于协议的版本 2 的 DSA 钥匙对,在 shell 提示下键入下面的命令: ssh-keygen -t dsa 接受 ~/.ssh/id_dsa 的默认位置。输入一个与您的帐号口令不同的口令句,再输入 一次来确认。 公钥被写入 ~/.ssh/id_dsa.pub。密钥被写入 ~/.ssh/id_dsa。决不能把 密钥出示给任何人,这一点很重要。 2) 使用以下命令改变您的 .ssh 目录的许可权限: chmod 755 ~/.ssh 3) 把 ~/.ssh/id_dsa.pub 的内容复制到您想连接的机器中的 ~/.ssh/authorized_keys 文件中。如果文件 ~/.ssh/authorized_keys 不存在,您可以把 ~/.ssh/id_dsa.pub 文件复制 到那个机器上的 ~/.ssh/authorized_keys 文件中。 4) 使用以下命令改变您的 authorized_keys 文件的许可权限: chmod 644 ~/.ssh/authorized_keys 5) 如果您运行的是 GNOME,跳到 4。如果您没在运行 X 窗口系统,跳到 5。 3. 为版本 1.3 和 1.5 生成 DSA 钥匙对 使用下面的步骤来生成用于 SSH 协议版本 1 的 RSA 钥匙对。如果您只在使用 DSA 的系 统间连接,则不需要 RSA 版本 1.3 或 RSA 版本 1.5 钥匙对。 1) 要生成 RSA (版本 1.3 和 1.5 协议)钥匙对,在 shell 提示下键入下列命令: ssh-keygen -t rsa1 接受默认的位置 (~/.ssh/identity)。输入和您的帐号口令不同的口令句。再输 入一次来确认。 公钥被写入 ~/.ssh/identity.pub。密钥被写入 ~/.ssh/identity。不要把您的密 钥出示给任何人。 2) 使用 chmod 755 ~/.ssh 和 chmod 644 ~/.ssh/identity.pub 命令改变您的 .ssh 目 录和密钥的许可权限。 3) 把 ~/.ssh/identity.pub 的内容复制到您想连接的机器中的 ~/.ssh/authorized_keys 文件中。如果文件 ~/.ssh/authorized_keys 不存在,您可以把 ~/.ssh/identity.pub 文件复制到远程机器上的 ~/.ssh/authorized_keys 文件中。 4) 如果您运行的是 GNOME,跳到 4。如果您没在运行 GNOME, 跳到 5。 101 银河麒麟服务器操作系统管理员手册 4. 在 GNOME 中配置 ssh-agent ssh-agent 工具可以用来保存您的口令句,因此您不必在每次引发 ssh 或 scp 连接时都 输入口令。如果您在使用 GNOME,openssh-askpass-gnome 工具可以用来在您登录到 GNOME 时 提示您输入口令句,并把它一直保留到您从 GNOME 中注销之时。您不必为本次 GNOME 会话中 任何 ssh 或 scp 连接输入口令或口令句。如果您不打算使用 GNOME,请参阅 4.5。 要在 GNOME 会话中保存口令句,遵循下列步骤: 1) 您需要安装 openssh-askpass-gnome 软件包;您可以使用 rpm -q openssh-askpass-gnome 命令来判定该软件包是否已被安装。 2) 点击「开始」=>「控制面板」 => 「高级」 => 「会话」。然后点击「启动程序」标 签。如图: 图 15.1 会话界面 点击「增加」,在「启动命令」文本字段内输入 /usr/bin/ssh-add。把它的优先级设为比 任何现存命令都高的数字以确保它最后才执行。ssh-add 的优先级数字最好是 70 或更高。优 先级数字越高,优先级越低。如果您列出了其它程序,该程序的优先级应该最低。点击「关闭」 来退出该程序。如图 15.2: 图 15.2 添加启动程序 102 银河麒麟服务器操作系统管理员手册 3) 注销后再登录进 GNOME;换一句话说,重新启动 X 服务器。在 GNOME 启动后,一个 提示您输入口令句的对话框就会出现。输入要求的口令句。如果您把 DSA 和 RSA 两者都配置 了,您会被提示两者都输入。从现在起,您就不会被 ssh、 scp 或 sftp 提示输入口令了。 5. 在命令行下配置 ssh-agent ssh-agent 可以用来储存您的口令句,因此您在每次使用 ssh 或 scp 连接时就不必总是 输入它。如果您不在运行 X 窗口系统,则在 shell 提示中遵循这些步骤。如果您在运行 GNOME, 但是不想配置它来在您登录时提示您输入口令(参阅 4.4),这个过程可以在类似 xterm 的终 端窗口中进行。如果您在运行 X 却不是 GNOME,这个过程可以在终端中进行。可是,您的口令 只能在该终端窗口中被记住,它不是全局设置。 1) 在 shell 提示下,键入下面的命令: Exec /usr/bin/ssh-agent $SHELL 2) 然后,键入下面的命令: ssh-add 接着,输入您的口令。如果您配置了不止一个钥匙对,您会被提示输入每个口令。 3) 当您注销后,口令句就会被忘记。您必须在每次登录到虚拟控制台或打开终端窗口时 都执行这两条命令。 103 银河麒麟服务器操作系统管理员手册 第16章 验证配置 当用户登录入 Kylin 系统,其用户名和口令的组合必须被校验或验证(authenticated)以 判定他是否为有效的活跃用户。有时,用于校验用户的信息位于本地系统;有时,系统把验证 推延给远程系统上的用户数据库。 验证配置工具提供了配置 NIS、LDAP、和 Hesiod 来检索用户信息,以及把 LDAP、Kerberos、 和 SMB 配置成验证协议的图形化界面。 本章并不详细解释每一种不同的验证类型,而解释了如何使用验证配置工具来配置这些验 证类型。 要从桌面上启动图形化版本的 验证配置工具,选择面板上的「开始」 => 「控制面板」 => 「高级」=> 「验证」,或在 shell 提示下(如 XTerm 或 GNOME 终端)键入 authconfig-gtk 命令。要启动基于文本的版本,在 shell 提示下键入 authconfig 命令。 16.1 用户信息 「用户信息」标签上有几个选项。要启用选项,点击它旁边的空白复选箱。要禁用选项, 点击它旁边的复选箱来清空它。点击「确定」来退出程序并应用改变。 图 16.1 104 用户信息 银河麒麟服务器操作系统管理员手册 以下的列表解释了每个选项所配置的项目: 「缓存用户信息」 — 选择该选项来启用名称服务缓存守护进程(nscd),并配置它在引 导时启动。 您必须安装了 nscd 软件包才能使这个选项奏效。 「启用 NIS 支持」 — 选择该选项来把系统配置成连接 NIS 服务器来验证用户和口令的 NIS 客户。点击「配置 NIS」按钮来指定 NIS 域和 NIS 服务器。如果 NIS 服务器没有被指定, 守护进程会试图通过广播来寻找它。 您必须安装了 ypbind 软件包才能使这个选项奏效。如果启用了 NIS 支持,portmap 和 ypbind 服务会被启动,它们也会在引导时被启用。 「启用 LDAP 支持」 — 选择这个选项来配置系统来通过 LDAP 检索用户信息。点击「配 置 LDAP」按钮来指定「LDAP 搜索基准 DN」和「LDAP 服务器」。如果「使用 TLS 来加密连接」 被选择,传输层安全就会被用来加密发送给 LDAP 服务器的口令。 您必须安装 openldap-clients 软件包才能使这个选项奏效。 「启用 Hesiod 支持」 — 选择这个选项来配置系统来从远程 Hesiod 数据库中检索信息, 包括用户信息。您必须要安装 hesiod 软件包。 16.2 验证 「验证」标签允许您配置网络验证方法。要启用选项,点击它旁边的空白复选箱。要禁用 选项,点击它旁边的复选箱来清空它。 图 16.2 验证 105 银河麒麟服务器操作系统管理员手册 以下解释了每个选项所配置的项目: • 「使用屏蔽口令」— 选择这个选项来在 /etc/shadow 文件中而不是 /etc/passwd 文 件把口令贮存为屏蔽口令格式。屏蔽口令在安装中被默认启用,它也是我们极力推荐您用来增 加系统安全性的措施。 您必须安装了 shadow-utils 软件包才能使这个选项奏效。 • 「使用 MD5 口令」 — 选择这个选项来启用 MD5 口令。它会允许长达 256 个字符的 口令而不同是通常的少于八个字符的口令。该选择在安装中被默认选择,它也是我们极力推荐 您用来增加系统安全性的措施。 • 「启用 LDAP 支持」 — 选择这个选项以支持 LDAP 验证。点击「配置 LDAP」按钮来 指定以下信息: o 「使用 TLS 来加密连接」 — 使用传输层安全来加密要发送给 LDAP 服务器的口 令。 o 「LDAP 搜索基准 DN」 — 通过它的识别名称(DN)来检索用户信息。 o 「LDAP 服务器」 — 指定 LDAP 服务器的 IP 地址。 您必须安装了 openldap-clients 软件包才能使这个选项奏效。 「启用 Kerberos 支持」 — 选择这个选项来启用 Kerberos 验证。点击「配置 Kerberos」按钮来配置: o 「领域」 — 配置 Kerberos 服务器的领域。领域是使用 Kerberos 的网络,由 一个或多个 KDC,以及大量客户组成。 o 「KDC」 — 定义密钥分发中心(KDC)。它是分发 Kerberos 门票的机器。 o 「管理服务器」 — 指定运行 kadmind 的管理服务器。 您必须安装 krb5-libs 和 krb5-workstation 软件包才能使这个选项奏效。 • 「启用 SMB 支持」 — 该选项配置 PAM 使用 SMB 服务器来验证用户。点击「配置 SMB」按钮来指定: o 「工作组」 — 指定要使用的 SMB 工作组。 o 「域控制器」 — 指定要使用的 SMB 域控制器。 106 银河麒麟服务器操作系统管理员手册 第17章 PAM 17.1 PAM 简介 PAM(Pluggable Authentication Modules )是由 Sun 提出的一种认证机制。它通过提供 一些动态链接库和一套统一的 API,将系统提供的服务和该服务的认证方式分开,使得系统管 理员可以灵活地根据需要给不同的服务配置不同的认证方式而无需更改服务程序,同时也便于 向系统中添加新的认证手段。 PAM 最初是集成在 Solaris 中,目前已移植到其它系统中,如 Kylin、Linux、SunOS、HP-UX 9.0 等。PAM 的整个框架结构如下图所示: 图 17.1 PAM 框架 系统管理员通过 PAM 配置文件来制定认证策略,即指定什么服务该采用什么样的认证方法; 应用程序开发者通过在服务程序中使用 PAM API 而实现对认证方法的调用;而 PAM 服务模块 (service module)的开发者则利用 PAM SPI(Service Module API)来编写认证模块(主要 是引出一些函数 pam_sm_xxxx( )供 libpam 调用),将不同的认证机制(比如传统的 UNIX 认证 方法、Kerberos 等)加入到系统中;PAM 核心库(libpam)则读取配置文件,以此为根据将服 务程序和相应的认证方法联系起。 107 银河麒麟服务器操作系统管理员手册 17.2 PAM 配置文件 Kylin-PAM 的目标就是为系统管理者提供最大限度的灵活性。系统管理者可以通过两种形 式对 Kylin-PAM 进行配置:单一配置文件/etc/pam.conf;或者是/etc/pam.d/目录。 配置文件的语法 首先应该明白 PAM 的记号是大小写敏感的。有两个特殊的符号:#和\。配置文件中的注释 以#开头,一般配置文件中每行是一个入口(除了注释),但是如果某个入口的定义很长,可以通 过使用转义符回行,而下一行也被看作是这个入口的一部分。 一般/etc/pam.conf 文件每行都 是这种格式: service-name module-type control-flag module-path arguments 下面我们将对每个记号进行解释。除了这种方式之外,还可以使用/etc/pam.d/目录对 Kylin-PAM 进行配置,稍后我们将对这种方式进行讲述。 service-name 为这个入口分配的服务名。通常这是给定应用程序的会话名。例如:ftpd、rlogind、su 等等。 PAM 还为默认的验证机制保留一个特殊的服务名,就是 OTHER,大小写均可。注意,如 果某个模块指定了以命名的服务,那 OTHER 就被忽略。 modle-type PAM 当前有四种类型的模块: 1. auth 这种类型的模块为用户验证提供两方面的服务。1).让应用程序提示用户输入密码或 者其它的标记,确认用户的合法性;2).通过它的凭证许可权限,设定组成员关系或者其 它优先权。 2. account 这类模块执行基于非验证的帐户管理。它主要用来限制/允许用户对某个服务的访问 时间,当前有效的系统资源(最多可以有多少个用户),限制用户的位置(例如:root 用户 只能从控制台登录)。 3. session 这类模块的主要用途是处理为用户提供服务之前/后需要做的一些事情,包括:记录 打开/关闭交换数据的信息,监视目录等。 4. password 用来升级用户验证标记。 control-flag 控制标志用来设置验证成功或者失败后 PAM 需要作出的反应。因为模块可以层叠 (stacked,同样类型的模块依次执行),控制标志可以决定每个模块的重要性。应用程序不 会意识到单个模块成功或者失败,它只会收到 PAM 库成功或者失败的综合反应信息。层叠 模块的执行顺序取决于/etc/pam.conf 文件的入口顺序,入口列前的模块先执行。可以使 用两种语法定义控制标志。 简单的一种是使用单一关键词定义控制标志。有四个这样的关键词:required、 requisite、sufficient 和 optional。 PAM 通过如下方式解释这些关键词: 108 银河麒麟服务器操作系统管理员手册 required 表示即使某个模块对用户的验证失败,也要等所有的模块都执行完毕之后,PAM 才返 回错误信息。这样做是为了不让用户知道被哪个模块拒绝。如果对用户验证成功,所有的 模块都会返回成功信息。 requisite 如果特定的模块对用户的验证失败,PAM 马上返回一个错误信息,把控制权交回应用 程序,不再执行其它模块进行验证。 sufficient 表示如果一个用户通过这个模块的验证,PAM 结构就立刻返回验证成功信息,把控制 权交会应用程序。后面的层叠模块即使使用 requisite 或者 required 控制标志,也不再 执行。如果验证失败 sufficient 的作用和 optional 相同。 optional 表示即使本行指定的模块验证失败,也允许用户享受应用程序提供的服务。使用这个 标志,PAM 框架会忽略这这个模块产生的验证错误,继续顺序执行下一个层叠模块。 还有一种比较复杂的语法来设置控制标志,它由一组 value=action 形式的标记组成, 标记之间以空格分开: [value1=action1 value2=action2 ...] alueN 可以是下列 Kylin-PAM 库的返回值:success、open_err、symbol_err、 service_err、system_err、buf_err、perm_denied、auth_err、cred_insufficient、 authinfo_unavail、user_unknown、maxtries、new_authtok_reqd、acct_expired、 session_err、cred_unavail、cred_expired、cred_err、no_module_data、conv_err、 authtok_err、authtok_recover_err、 authtok_lock_busy、authtok_disable_aging、 try_again、ignore、abort、authtok_expired、module_unknown、bad_item 和 default。 最后一个(default)能够用来设置上面的返回值无法表达的行为。 actionN 可以是一个非 负整数或者是下面的记号之一:ignore、ok、done、bad、die 和 reset。如果是非负整数 J,就表示需要忽略后面 J 个同样类型的模块。通过这种方式,系统管理者可以更加灵活 地设置层叠模块,模块的层叠路径由单个模块的反应决定。 ignore 如果使用层叠模块,那么这个模块的返回值将被忽略,不会被应用程序知道。 bad 它表示这个返回码应该被看作是模块验证失败。如果这个模块是层叠模块的第一个验 证失败的模块,那么它的状态值就是整个层叠模块的状态值。 die 终止层叠模块验证过程,立刻返回到应用程序。 ok 告诉 PAM 这个模块的返回值直接作为所有层叠模块的返回值。也就是说,如果这个模 块前面的模块返回状态是 PAM_SUCCESS,那这个返回值就会覆盖前面的返回状态。注意: 如果前面的模块的返回状态表示模块验证失败,那么不能使用这个返回值覆盖。 done 109 银河麒麟服务器操作系统管理员手册 终止后续层叠模块的验证,把控制权立刻交回应用程序。 reset 清除所有层叠模块的返回状态,从下一个层叠模块重新开始。 module-path PAM 验证模块的路径。如果以/开头,就表示是完整的路径;如果不是以/打头,就表 示是相对于/usr/lib/security 的相对路径。 args 传递给模块的参数。类似于通常的 Linux Shell 命令行参数。有效的参数包括一些通 用参数和特定于给定模块的参数。无效的参数将被忽略,并会把错误信息记录到 syslog。 注意:配置文件中的任何一行错误都会导致验证失败,同时相关错误信息被记录到 syslog。 17.2.1 基于目录的配置形式 基于目录的配置方式,通过/etc/pam.d/目录下的文件对 PAM 进行配置。这种方式比单一的 配置文件具有更大的灵活性。这个目录下的所有配置文件都以某个服务名命名(小写)。 不过,这两种配置方式不能同时起作用,也就是说,您只能使用其中一种对 PAM 进行配置。 一般/etc/pam.d/优先。 /etc/pam.d/目录下的配置文件的语法和/etc/pam.conf 文件的语法相似,形式如下: module-type control-flag module-path arguments 和/etc/pam.conf 文件语法的唯一不同就是没有服务名(service-name),服务名由文件名 设置。例如:/etc/pam.d/login 文件保存对 login 服务的设置。 这种配置方式与单一配置文 件相比,具有很大的优越性: z 减少了配置错误的几率 z 更易于维护 z 可以通过使用不同配置文件的符号连接决定系统的验证策略 z 可以加快对于配置文件的解析 z 可以对单个的 Kylin-PAM 配置文件设置不同的存取权限 z 更易于软件包的管理 17.2.2 通用参数 下面是一些通用参数,可以被所有的模块解析: debug 通过 syslog 系统调用记录调试信息。 nowarn 使模块不要向应用程序输出警告信息。 use_first_pass 使模块不提示用户输入密码,而是使用为前一个验证模块输入的密码。如果无效,则 验证失败。这个参数只能用于 auth 和 password 类型模块。 110 银河麒麟服务器操作系统管理员手册 try_first_pass 首先使用用户为上一个模块输入的密码进行验证,如果不行,就提示用户输入密码, 这个参数只能用于 auth 类型的模块。 use_mapped_pass 这个参数目前还不能被任何 Kylin-PAM 模块支持, 主要因为美国加密算法的出口限制。 expost_account 通常,对于模块来说泄露用户的某些信息并非一个安全的策略。有时候用户名、起始 目录或者用户使用的 shell 等信息都可以被攻击者用来攻击一个用户帐户。这个参数是一 个适用于每个模块的标准参数,它可以使模块尽量少地泄露用户信息。 17.2.3 配置文件入口示例 在这一节,我们将给出一些例子,以便于理解。 默认策略 一个合理的 OTHER 入口对于加强系统安全非常重要。下面是一个非常偏执的例子。 # 默认; 拒绝访问 # OTHER auth required /usr/lib/security/pam_deny.so OTHER account required /usr/lib/security/pam_deny.so OTHER password required /usr/lib/security/pam_deny.so OTHER session required /usr/lib/security/pam_deny.so 毫无疑问,这是最安全的 OTHER 策略了,但是不太合理。例如:如果这个文件的其它部分 编写不好,那么很容易把所有的用户挡在门外。 pam_deny 模块在运行时不记录任何信息,除非用户在无法执行某个服务程序时能够与系统 管理人员联系,否则系统管理者很长时间不会知道系统配置错误。 在上面例子的前面加入以下几行,系统管理者就可以获得有关的警告信息了: # 如果程序配置错误 # OTHER auth required /usr/lib/security/pam_warn.so OTHER password required /usr/lib/security/pam_warn.so 这样有两行是 auth 模块类型,形成模块层叠。 在一个使用/etc/pam.d/配置的系统中,默认配置文件如下: # default configuration: /etc/pam.d/other # auth required /usr/lib/security/pam_warn.so auth required /usr/lib/security/pam_deny.so account required /usr/lib/security/pam_deny.so password required /usr/lib/security/pam_warn.so 111 银河麒麟服务器操作系统管理员手册 password required /usr/lib/security/pam_deny.so session required /usr/lib/security/pam_deny.so 对于不熟悉 PAM 的系统管理者,下列几行可以作为最基本的系统配置: # default; standard UNIX access # OTHER auth required /usr/lib/security/pam_unix_auth.so OTHER account required /usr/lib/security/pam_unix_acct.so OTHER password required /usr/lib/security/pam_unix_passwd.so OTHER session required /usr/lib/security/pam_unix_session.so 通常这足以为大多数应用程序提供验证服务了。但是,大多数并不表示全部。如果您需要 打开 FTP 匿名登录功能,就无法满足要求了。 为了打开匿名 FTP,需要使用以下的配置命令代替默认的配置(OTHER): # ftpd; add ftp-specifics. These lines enable anonymous ftp over # standard UNIX access (the listfile entry blocks access to # users listed in /etc/ftpusers) # ftpd auth sufficient /usr/lib/security/pam_ftp.so ftpd auth required /usr/lib/security/pam_unix_auth.so use_first_pass ftpd auth required /usr/lib/security/pam_listfile.so onerr=succeed item=user sense=deny file=/etc/ftpusers 由于需要忽略默认的配置入口,所以第二行是必须要有的。这还是一个层叠模块的例子。 使用 sufficient 控制标志,表示如果这个模块验证通过,就不必使用后面的层叠模块进行验证 了;use_first_pass 表示使用为前面的模块(pam_ftp)输入的密码。 17.3 常见的 PAM 认证模块简介 17.3.1 pam_access 认证模块 所属类型:account 功能描述:该模块提供基于登录用户名、客户 ip/主机名、网络号以及登录终端号的访问 控制。缺省的,该模块的配置文件是/etc/security/access.conf,可以使用 accessfile 参数 指定自定义的配置文件。 可带参数:accessfile=/path/to/file.conf 配置文件说明: 该文件的每一行由如下三个字段构成,中间使用冒号分割: 权限 : 用户 : 来源 112 银河麒麟服务器操作系统管理员手册 权限字段可以是”+”(即允许访问),”-”(禁止访问); 用户字段可以是用户名、组名以及诸如 user@host 格式的用户名,ALL 表示任何人, 具有 多个值时,可以用空格分开。 来源字段可以是 tty 名称(本地登录时)、主机名、域名(以”.” 开始),主机 ip 地址,网络号(以”.”结束)。ALL 表示任何主机,LOCAL 表示本地登录。 可以使用 EXCEPT 操作符来表示除了…之外。 配置实例: 只有 bye2000 可以从本地登录主机。 编辑/etc/pam.d/login 如下所示: #%PAM-1.0 auth required /lib/security/pam_securetty.so auth required /lib/security/pam_stack.so service=system-auth auth required /lib/security/pam_nologin.so account required /lib/security/pam_stack.so service=system-auth account required /lib/security/pam_access.so password required /lib/security/pam_stack.so service=system-auth session required /lib/security/pam_stack.so service=system-auth session optional /lib/security/pam_console.so 也即加上 account required /lib/security/pam_access.so 然后在/etc/security/access.conf 中加上: -:ALL EXCEPT bye2000 : LOCAL 假如禁止 root 以外的任何人从任何地方登录,可以在/etc/security/access.conf 中加上: -:ALL EXCEPT root: ALL 17.3.2 pam_chroot 认证模块 所属类型:account, session, auth 功能描述:该模块为一般用户提供一个虚根环境,该模块的配置文件是 /etc/security/chroot.conf。 可带参数: debug:将调试信息写入日志 onerr:定义当配置文件无法打开、chroot()函数失败以及配置文件中没有用户信息时的动作, 缺省为”succeed”。 17.3.3 pam_cracklib 认证模块 所属类型:password 113 银河麒麟服务器操作系统管理员手册 功能描述:该模块对用户密码提供强健性检测。换句话说,您可以定义用户密码的方方面 面,比如密码长度、密码的复杂程度等等。 可带参数: debug:将调试信息写入日志 type=xxx:添加/修改密码时,系统的缺省提示符是” New UNIX password:”以及” Retype UNIX password:”,使用该参数可以自定义提示符中的 UNIX,比如指定 type=your. retry=N:定义添加/修改密码失败时,可以重试的次数。 Difok=N:定义新密码中必须有几个字符要与旧密码不同。但是如果新密码中有 1/2 以上的字符 与旧密码不同时,该新密码将被接受。 minlen=N:定义密码最小长度。 dcredit=N:定义密码中可以包含数字的最大数目。 ucredit=N:定义密码中可以包含的大写字母的最大数目。 lcredit=N:定义密码中可以包含的小写字母的最大数目。 ocredit=N:定义密码中可以包含的其他字符(除数字、字母之外)的最大数目。 配置实例: 请参考/etc/pam.d/system-auth 文件 17.3.4 pam_deny 认证模块 所属类型:account, session, auth,password 114 银河麒麟服务器操作系统管理员手册 功能描述:该模块仅仅返回一个错误。用来拒绝用户访问。通常该模块被用来作为缺省的 验证规则。 可带参数:无 配置实例: 请参考/etc/pam.d/system-auth 文件 17.3.5 pam_env 认证模块 所属类型: auth 功能描述:该模块可以用来设置任意的环境变量,缺省的,该模块的配置文件是 /etc/security/pam_env.conf,可以使用 conffile 参数指定自定义的配置文件。 配置文件说明:该配置文件每一行(一个条目)的语法如下: 变量名 [DEFAULT=[值]] [OVERRIDE=[值]] 选项 DEFAULT 说明这是一个缺省值;OVERRIDE 则说明可以覆盖缺省值。在该配置文件中,可以 使用${变量名}的形式应用变量。除此之外,该模块还可以从/etc/environment 文件中读入形 如“变量名=值”的环境变量,当然该文件也可以用 readenv 参数自己指定。需要注意的是,该 文件的读入的值,将覆盖 conffile 文件中的缺省值。 可带参数: debug:将调试信息写入日志 conffile=filename:指定自定义的配置文件; readenv=filename:指定自定义包含“变量名=值”形式的环境变量配置文件; readenv=1/0:设置是否从 readenv 中读入环境变量,缺省是 1,也即读入。 配置实例: 请参考/etc/pam.d/system-auth 文件 17.3.6 pam_filter 认证模块 所属类型:account, session, auth,password 115 银河麒麟服务器操作系统管理员手册 功能描述:该模块提供对用户和应用程序交互内容的访问控制功能,目前仅仅具有大小写 转换功能。该模块还有待完善。 17.3.7 pam_ftp 认证模块 所属类型:auth 功能描述:该模块提供匿名 ftp 用户认证机制。 可带参数: debug:将调试信息写入日志 users=xxx,yyy:指定采用该模块进行认证的用户名,缺省为 ftp 和 anonymous,可以用逗 号进行分割; ignore:不对用户输入的密码(邮件地址)进行检验。 116 银河麒麟服务器操作系统管理员手册 第18章 日期和时间配置 时间和日期属性工具允许用户改变系统日期和时间;配置系统使用的时区;以及设置网络 时间协议(NTP)守护进程来与时间服务器的系统时钟同步。 您必须运行 X 窗口系统并具备根特权才能使用该工具。要从桌面上启动这个程序,点击「开 始」 => 「控制面板」 => 「高级」=> 「日期 & 时间」,或在 shell(如 XTerm 或 GNOME 终 端)提示下键入 redhat-config-date 命令。 18.1 时间和日期属性 如图 18.1 所示,所出现的第一个带活页标签的窗口被用来配置系统日期、时间和 NTP 守 护进程(ntpd)。 图 18.1 时间和日期属性 117 银河麒麟服务器操作系统管理员手册 要改变日期,使用箭头左右移动月份来改变月份;使用箭头左右移动年份来改变年份,然 后点击星期中的日期来改变星期日期。在点击「确定」按钮之前,这些改变不会生效。 要改变时间,使用上下箭头按钮,它们在「时间」部分中的「小时」、「分钟」、和「秒 钟」旁边。在您点击「确定」按钮之前,这些改变不会生效。 网络时间协议(NTP)守护进程使用远程时间服务器或时间源(如卫星)来同步系统时钟。 该程序允许您配置 NTP 守护进程来与远程服务器同步您的系统时钟。要启用这项功能,选择「启 用网络时间协议」按钮。这会启用「服务器」拉下菜单。您可以选择预定义的服务器中的一个, 或键入拉下菜单中的一个服务器名。在您点击「确定」之前,您的系统不会开始与 NTP 服务器 的同步。在您点击「确定」之后,配置就会被存盘,NTP 守护进程就会被启动(或重新启动, 如果它已在运行)。 点击「确定」按钮会应用您对日期和时间、NTP 守护进程设置、以及时区设置所做的改变, 然后退出程序。 18.2 时区配置 要配置系统时区,点击「时区」标签。时区可以通过互动地图来改变,也可以从地图下面 的列表中选择想要的时区。要使用地图,点击代表您所在时区的城市,一个红色的「X」会出现, 地图下的时区列表中的选择也会相应改变。点击「确定」来应用改变并退出程序。 图 18.2 时区属性 118 银河麒麟服务器操作系统管理员手册 如果您的系统时钟被设为使用 UTC,选择「系统时钟使用 UTC」选项。UTC 代表通用时间 协调(Universal Time, Coordinated),又称格林威治标准时间(GMT)。其它时区是通过从 UTC 时间中加减而得出的。 119 银河麒麟服务器操作系统管理员手册 第19章 键盘配置 安装程序允许用户为他们的系统配置键盘布局。要在安装后配置不同的键盘布局,请使用 键盘配置工具。 要启动键盘配置工具,选择面板上的「开始」 => 「控制面板」 => 「键盘鼠标」=> 「键 盘配置」,或在 shell 提示下键入 config-keyboard 命令。 图 19.1 键盘配置工具 从列表中选择键盘布局(如「美国英语式」),然后点击「确定」。要使改变立即生效, 您应该退出图形化桌面会话后再重新登录。 120 银河麒麟服务器操作系统管理员手册 第20章 鼠标配置 安装程序允许用户选择连接到系统上的鼠标类型。要为系统配置不同的鼠标,请使用鼠标 配置工具。 要启动鼠标配置工具,点击面板上的「开始」 => 「控制面板」 => 「键盘鼠标」=> 「鼠 标配置」,或者在 shell 提示(如 XTerm 或 GNOME 终端)下键入 config-mouse 命令。如果 您没有运行 X 窗口系统,所运行的就会是该工具的文本模式版本。 图 20.1 选择鼠标 为您的系统选择新的鼠标类型。如果您找不到确切的匹配,选择您肯定会与系统兼容的鼠 标类型。 内建的指示设备,如便携电脑上的触摸板,通常是 PS/2 兼容的。 所有的鼠标类型都在括号内注明了“PS/2”、“串口”或“USB”。它们指定鼠标的端口。 如果某种特定的鼠标没有被列出,请根据您的鼠标的键数和接口,选择「通用」项目中的 一个。 滑轮鼠标上的滑轮可以被当作鼠标中键使用,可以用来进行剪切、粘贴文本等鼠标中键功 能。如果鼠标只有两键,选择「模拟三键点击」来把两键鼠标当作三键鼠标使用。当您启用了 这个选项后,同时点击鼠标的两键就会模拟鼠标中键点击。 如果选择了串口鼠标,点击「串口设备」按钮来为鼠标配置正确的串口设备号码,如 /dev/ttyS0。 121 银河麒麟服务器操作系统管理员手册 点击「确定」来保存新的鼠标类型。您的选择被写入 /etc/sysconfig/mouse 文件,控制 台的鼠标服务以及 gpm 被重新启动。这些改变也被写入 X 窗口系统的配置文件 /etc/X11/XF86Config 中;不过,鼠标类型改变没有被自动应用到当前的 X 会话。要启用新的 鼠标类型,退出图形化桌面后再重新登录。 122 银河麒麟服务器操作系统管理员手册 第21章 X 窗口系统配置 21.1 概述 Kylin 使用 XFree86™ 来为用户提供一个功能 强大的图形用户接口。XFree86 是一个开放 源代码的 X Window 系统实现。这一章将介绍在 Kylin 系统上安装和配置 XFree86。有关 XFree86 和它所支持的显示卡硬件的更多 信息,请查看 XFree86 网站:http://xfree86.org。 21.2 理解 X 您不需要了解各种 X 组件的所有细节和它们是如何互相影响的;然而,了解一些基本的知 识可以让您很好地利用 X 的强大功能。 21.2.1 为什么要使用 X? X 不是第一个为 UNIX®而开发的视窗系统,但它是最流行的。 X 的原始开发团队在开发 X 之前就已经在另外一个视窗系统上工作了。 那个系统的名字叫做 “W” (就是 “Window”)。 X 只是罗马字母中 W 后面 的一个。 X 可以被叫做 “X”, “X Window 系统”, “X11”, 等等。把 X11 称做 “X Windows” 可能稍有不妥; 查看 X(7) 可以了解更多的信息。 21.2.2 X 客户机/服务器模型 X 一开始就是针对网络而设计的,所以 采用了 “client-server” 模型。在 X 模型中, “X server” 运行在有键盘,显示器,鼠标的计算机上。服务器用来管理显示信息,处理来自 键盘和鼠标的输入等。 每一个 X 应用程序 (比如 XTerm, 或者 Netscape®) 就是一个 “client”。 一个 client 给服务器发送信息,如 “Please draw a window at these coordinates” , 然后服务器就返回处理信息,如 “The user just clicked on the OK button”。 如果您在只有一台计算机的家里或小型办公环境中使用 Kylin,您就需要在同一台计算机 上运行 X server 和 X client。然而,如果您有很多运行 Kylin 的机器,您可以在您的桌面计 算机上运行 X server,而在比较高档 的服务器上运行 X 应用程序。在这样的环境中,X server 和 X client 之间的 通信就可以通过网络来进行。 这可能会对使一些人产生迷惑,因为 X 的术语和他们料想的有些不同。 他们以为 “X server” 是运行在功能强大的大型机上的,而 “X client” 是运行在他们桌面上的计算机 上的。 总之,X server 是有键盘和显示器的那台计算机,而 X client 是那些显示窗口的程序。 并不需要 client 和 server 都运行在同一种操作系统上,或甚至运行在同一种类型的计 算机上。在 Microsoft Windows 或者 Apple 公司的 Mac OS 上运行 一个 X server 也是可以 的,在它们上面也有很多免费的和商业化的应用程序。 123 银河麒麟服务器操作系统管理员手册 21.2.3 窗口管理器 X 的设计哲学很像 UNIX 的设计哲学,“tools, not policy”。这就意味着 X 不会试图去 规定任务应该如何去完成,而是,只给用户提供一些工具,至于决定如何使用这些工具是用户 自己的 事情。 这套哲学扩展了 X,它不会规定窗口在屏幕上应该是什么样子,要如何移动鼠标,什么键 应该用来切换窗体 (比如, Alt+Tab 按键,在 Microsoft Windows 环境中的作用), 每个窗口 的工具条应该看起来像什么,他们是否应该有关闭按钮等等。 实际上,X 行使了一种叫做 “窗口管理器” 的应用程序的职责。有很多这样的程序可用: AfterStep, Blackbox, ctwm, Enlightenment, fvwm, Sawfish, twm, Window Maker,等等。 每一个窗口管理器 都提供了不同的界面和观感;其中一些还支持 “虚拟桌面” ;有一些允许 您可以定制一些键来管理您的桌面; 一些有”开始” 按钮,或者其他类似的设计;一些有 “themeable” ,通过安装一个新的主题允许外观的完全改变。这些窗口管理器,还有很多其 他的,都可以在 Ports Collection 的 x11-wm 分类目录里找到。 另外,KDE 和 GNOME 桌面环境都有他们自己的窗口管理器 与桌面集成。 每个窗口管理器也有不同的配置机制;有些需要手工来写配置文件, 而另外一些则可以使 用 GUI 工具来完成大部分的配置任务,至少 (Sawfish) 有一个用 Lisp 语言来写的配置 文 件。 焦点策略: 窗口管理器的另一个特性是鼠标的 “focus policy” 。每个窗口系统都需要 有一个选择窗口的方法来接受键盘的输入信息,以及当前哪个窗口处于可用状态。 您通常比较熟悉的是一个叫做 “click-to-focus” 的焦点策略。 这是 Microsoft Windows 使用的典型焦点策略,也就是您在一个窗口上点击 一下鼠标,这个窗口就 处于当前可用的状态。 窗口管理器控制着在什么时候哪个窗口拥有焦点。不同的窗口管理器支持不同的焦点方案。 它们都支持点击即获得焦点,而且它们中的大多数都支持好几种方案。 最流行的焦点策略: focus-follows-mouse 鼠标指示器下面的窗口就是获得焦点的窗口。它可以不位于其他所有窗口顶部。您可以通 过将鼠标移到另一个窗口就可以来改变焦点,您不需要在它上面点击。 sloppy-focus 这种方式是对 focus-follows-mouse 策略的一个小小扩展。对于 focus-follows-mouse, 如果您在根窗口(或桌面背景)上移动鼠标,键盘的输入也会丢失。对于 sloppy-focus,只有 当指针在键入一个新窗口时,窗口焦点才会发生变化,当退出当前窗口时是不会变化的。 click-to-focus 当前窗口由鼠标点击来选择。窗口被”突出显示”,出现在所有其他窗口的前面。即使指 针被移向了另一个窗口,所有的键盘输入仍会被这个窗口接收。 许多窗口管理器支持其他的策略,与这些稍有不同。您可以看具体窗口管理器的文档。 124 银河麒麟服务器操作系统管理员手册 21.2.4 窗口部件 提供工具而非策略的 X 方法使得在每个应用程序屏幕上看到的窗口部件得到了大大的扩 展。 “Widget ”只是针对用户接口中所有列举项目的一个术语,它可以用某种方法来点击或操 作;如按钮,复选框,单选按钮,图标,列表框等等。 Microsoft Windows 把这些叫做`“控 件”。 Microsoft Windows 和苹果公司的 Mac OS 都有一个严格的窗口部件策略。应用程序开发 者被建议确保他们的应用程序共享一个普通的所见即所得的用户界面。 对于 X,它并不要求一 个特殊的图形风格或一套相结合的窗口部件集。 这样的结果是您不能期望 X 应用程序只拥有一个普通的所见即所得的界面。有很多的流行 的窗口部件集设置,包括来自于 MIT 的 Athena, Motif® (模仿 Microsoft Windows 的窗口 风格),OpenLook, 和其他一些窗口部件集。 今天,绝大多数比较新的 X 应用程序将使用一个现代风格的窗口设计, 像 Qt, 用来设计 KDE, 或 GTK, 用来设计 GNOME。 在这样一种窗口系统下,UNIX 桌面的一些所见即所得特性作 了一些收敛,以使初学者感到更容易一些。 21.3 XFree86™ 的配置 21.3.1 开始之前 在配置 XFree86 4.X 之前, 您必须知道目标系统的下面一些信息: z 显示器规格 z 显示卡的芯片类型 z 显示卡的显存容量 显示器的规格可以被 XFree86 用来决定显示的分辨率和刷新率。这些规格通常可以从显示 器所带的文档中找到,也可以从生产商的网站找到。需要知道两个数字范围:垂直刷新率和水 平刷新率。 显示卡的芯片类型定义了 XFree86 使用什么驱动模块来驱动硬件。对于绝大多数的硬件, 都能被自动检测,但是在自动检测出错的时候了解 这些还是很有用处的。 显示卡的显存大小决定了目标系统的分辨率和颜色深度。这非常重要,这样用户可以知道 目标系统的限制。 21.3.2 配置 XFree86 4.X 配置 XFree86 4.X 需要几步。 第一步是用 XFree86 的 -configure 选项建立一个初始化 的配置文件。 . 作为超级用户,简单的运行: # XFree86 -configure 125 银河麒麟服务器操作系统管理员手册 这会在 /root 目录下生成一个叫做 XF86Config.new 的大致的 XFree86 配置文件(事实 上使用的目录是由隐含的环境变量 $HOME 决定的,这取决于您得到超级用户权利的方式)。 XFree86 程序会试图检测系统上的图形显示卡并写入配置文件以便在目标系统上探测硬件时能 够加载正确的驱动程序。 下一步将测试当前的配置以检验 XFree86 是否能在当前系统的显示设备上正常工作。要完 成这个任务,只需要这样做: # XFree86 -xf86config XF86Config.new 如果用户看到一个黑灰的格子和一个 X 形的鼠标指针,那么配置就是成功的。要退出测试, 只要同时键入 Ctrl+Alt+Backspace。 下面,调整 XF86Config.new 配置文件以适应个人的口味。用文本编辑器 emacs(1) 或 ee(1) 打开文件。要做的第一件事是为当前系统的显示器添加频率。这些包括垂直和水平的刷 新率。这些值可以被添加到 XF86Config.new 文件的 "Monitor" 部分: Section "Monitor" Identifier "Monitor0" VendorName "Monitor Vendor" ModelName "Monitor Model" HorizSync 30-107 VertRefresh 48-120 EndSection HorizSync 和 VertRefresh 关键字可能不存在于配置文件中。 如果他们不存在,就需要 添加他们,正确的水平同步刷新率添加在 HorizSync 关键字后面,垂直的同步刷新率添加在 VertRefresh 关键字后面。在上面的例子中 已经添加了。 X 允许可能的显示器使用 DPMS(能源之星) 特性。 xset(1) 程序控制超时时间可以强制 待机,挂起或者关机。如果您希望启用您的显示器的 DPMS 特性, 您必须将下面一行添加到 monitor 部分: Option "DPMS" 当 XF86Config.new 配置文件被编辑器打开时,需要选择默认的分辨率和颜色深度, 这是 通过 "Screen" 部分来定义的: Section "Screen" Identifier "Screen0" Device "Card0" Monitor "Monitor0" DefaultDepth 24 SubSection "Display" Depth 24 Modes "1024x768" EndSubSection EndSection 126 银河麒麟服务器操作系统管理员手册 DefaultDepth 关键字描述了要运行的默认颜色深度。这可以通过使用 XFree86(1) 的 -bpp 选项来取代。 Modes 关键字 描述了给定颜色深度下屏幕的分辨率。注意目标系统的图形 硬件只支持 VESA 标准模式。在上面的例子中,默认的颜色深度是 24 位色。在这个颜色深度下, 可以接受的分辨率是 1024x768。 最后,用户可以写入配置文件,然后使用这个配置文件测试一下。如果一切正常,那配置 文件需要被安装在 XFree86(1) 能找得到的 地方。典型的比如 /etc/X11/XF86Config 或 /usr/X11R6/etc/X11/XF86Config. # cp XF86Config.new /etc/X11/XF86Config 一旦配置文件被放置在一个通用的位置,配置就完成了。为了用 startx(1) 启动 XFree86 4.X,需要安装 x11/wrapper port. XFree86 4.X 也可以用 xdm(1) 来启动。 图形 X 配置工具 要启动 X 配置工具,选择面板上的「开始」 => 「控制面板」 => 「显示」,或在 shell 提示(如 XTerm 或 GNOME 终端)下键入 config-xfree86 命令。如果 X 窗口系统没在运行, 一个小型的 X 会被启动来运行这个程序。 改变了这些设置后,退出图形化桌面后再重新登录来启用所做改变。 21.3.3 显示设置 「显示」活页标签会允许用户改变分辨率(resolution)和色彩深度(color depth)。显 示器的显示包含叫做像素(pixels)的小点。一次显示的像素数量叫做分辨率。例如:分辨率 1024x768 意味着使用了 1024 个水平像素,768 个垂直像素。分辨率数字越高,显示器在一次 显示中所显示的图像就越多。例如:分辨率越高,桌面图标就显得越小,填满整个桌面所需的 图标就越多。 显示的色彩深度决定可能被显示的颜色数量。色彩深度越大,颜色的对比度就越强烈。 127 银河麒麟服务器操作系统管理员手册 图 21.1 显示设置 21.3.4 高级设置 当程序被启动时,它会探测显示器和视频卡。如果硬件被正确探测了,这些信息就会被显 示在「高级」活页标签中。如图 21.2 所示。 128 银河麒麟服务器操作系统管理员手册 图 21.2 高级设置 要改变显示器类型或它的设置,点击相应的「配置」按钮。要改变视频卡类型或它的设置, 点击设置旁边的「配置」按钮。 129 银河麒麟服务器操作系统管理员手册 第22章 用户帐户管理 22.1 概述 在 Kylin 操作系统中,每一个用户都有一个帐号。帐号包括用户所有的文件、资源和属 于这个用户的资源的信息。 用户信息 Kylin 安装完成后,系统本身已创建了一些特殊用户,它们具有特殊的意义,其中最重要 的是超级用户,即 root。超级用户承担了系统管理的一切任务,可以不受限制地进行任何操作, 因此建议只有在完全必要的情况下才以 root 身份进行操作。由超级用户创建允许登录系统的 普通用户,一般超级用户也需要为自己建立一个用来处理一般事务的普通帐户。 下面是用户和组群管理的一些基本概念: 用户名: 系统中用来标识用户的名称,可以是字母、数字组成的字符串,区分大小写。 用户标识 UID: 系统中用来标识用户的数字。 用户主目录:系统为每个用户配置的单独使用环境,即用户登录系统后最初所在的目 录,用户的文件都放置在此目录下。 登录 shell: 用户登录后启动以接收用户的输入并执行输入相应命令的程序,如 /bin/bash、/bin/csh。 用户组/组群: 具有相似属性的多个用户被分配到一个组中。 组标识 GID: 用来表示用户组的数字标识。超级用户在系统中的用户 ID 和组 ID 都是 0。普通用户的用户 ID(UID)从 500 开始编号,并且默认属于与用户名 同名的组。组 ID(GID)也从 500 开始编号。 用户管理配置文件 1. /etc/passwd 文件 Kylin 操作系统中用于管理用户帐号的基本文件是/etc/passwd,该文件中包含了系统中所 有用户的用户名和他们的相关信息。每个用户帐号在文件中都有相对应一行,并且不同的七个 域之间用冒号隔开。每一行的形式如下: 用户名:加密的口令:用户 ID:组 ID:用户的全名或其他描述:登录目录:登录 shell 下面是 root 用户在此文件中对应的行: root:X:0:0:root:/root:/bin/bash KYLIN 系统将每一个用户仅仅看成是一个数字,即用每个用户惟一的用户 ID 来识别。 配置文件/etc/passwd 给出了系统用户 ID 与用户名之间及其他信息的对应关系。 /etc/passwd 文件对系统的所有用户都是可读的,这样的好处是每个用户都可以知道系统上有 哪些用户,但缺点是其他用户的口令容易受到攻击,尤其是当口令比较简单的情况。 用户登录名 用户加密后的口令,(若为空,表示该用户不需口令即可登录,若为*号, 表示该帐号被禁止) 从 1970 年 1 月 1 日至口令最近一次被修改的天数 130 银河麒麟服务器操作系统管理员手册 口令在多少天内不能被用户修改 口令在多少天后必须被修改 口令过期多少天后用户帐号被禁止 口令在到期多少天内给用户发出警告 口令自 1970 年 1 月 1 日被禁止的天数 保留域 3. /etc/group 文件 在 KYLIN 中,使用组来赋予用户访问文件的不同权限。组的划分可以采用多种标准,一个 用户可同时包含在多个组内。管理用户组的基本文件是/etc/group,其中包含了系统中所有用 户组的相关信息。每个用户组对应文件中的一行,并用冒号分成四个域。其中每一行的形式如 下: 用户组名:加密后的组口令:组 ID:组成员列表 下面是用户组 sys 在/etc/group 中对应的一行: sys::3:root,bin,adm 这一行代表的信息是:系统中有一个称为 sys 的用户组,没有口令,组 ID 为 3,组中的 成员有 root、bin、adm 三个用户。 KYLIN 在安装中同样创建了一些标准的用户组,在一般情况下,建议您不要对这些用户组 进行删除和修改,除非您完全明白它们的用途和意义。 22.2 用户管理器 用户管理器允许您查看、修改、添加和删除本地用户和组群。 要使用用户管理器,您必须 运行 X 窗口系统,具备根特权,并且安装了 config-users RPM 软件包。要从桌面启动用户管 理器,点击面板上的「开始」 => 「控制面部」 => 「用户和组群」。 131 银河麒麟服务器操作系统管理员手册 图 22.1 用户管理器 要查看包括系统内本地用户的列表,点击「用户」标签。要查看包括系统内本地组群的列 表,点击「组群」标签。 要寻找指定的用户或组群,在「搜索过滤器」字段内键入名称的前几个字符。按 [Enter] 键 或点击「应用过滤器」按钮。被过滤的列表就会被显示。 要给用户和组群排序,点击列名。用户或组群就会按照该列的信息被排序。 Kylin 把 500 以下的用户 ID 保留给系统用户。用户管理器默认不显示系统用户。要查看 包括系统用户在内的所有用户,从「首选项」拉下菜单中取消选择「过滤系统用户和组群」。 22.2.1 添加新用户 要添加新用户,点击「添加用户」按钮。一个如图 22.2 所示的窗口就会出现。在适当的 字段内键入新用户的用户名和完整姓名。在「口令」和「确认口令」字段内键入口令。口令必 须至少包含六个字符。 选择一个登录 shell。如果您不能确定应该选择哪一个 shell,就请接受默认的 /bin/bash。默认的主目录是 /home/用户名/。您可以改变为用户创建的主目录,或者通过取消 选择「创建主目录」来不为用户创建主目录。 如果您选择要创建主目录,默认的配置文件就会从 /etc/skel/ 目录中复制到新的主目录 中。 132 银河麒麟服务器操作系统管理员手册 Kylin 使用用户私人组群(user private group,UPG)方案。UPG 方案并不添加或改变 UNIX 处理组群的标准方法;它只不过提供了一个新约定。按照默认设置,每当您创建一个新用户的 时候,一个与用户名相同的独特组群就会被创建。如果您不想创建这个组群,取消选择「为该 用户创建私人组群」。 要为用户指定用户 ID,选择「手工指定用户 ID」。如果这个选项没有被选,从号码 500 开始后的下一个可用用户 ID 就会被分派给新用户。Kylin 把低于 500 的用户 ID 保留给系统 用户。 点击「确定」来创建该用户。 图 22.2 创建新用户 添加新组群 要添加新用户组群,点击「添加组群」按钮。一个类似图 22.3 的窗口就会出现。键入新 组群的名称来创建。要为新组群指定组群 ID,选择「手工指定组群 ID」,然后选择 GID。Kylin 把低于 500 的组群 ID 保留给系统组群。 点击「确定」来创建组群。新组群就会出现在组群列表中。 133 银河麒麟服务器操作系统管理员手册 图 22.4 创建新组群 22.3 命令行下用户管理 超级用户 root 系统安装完成后,系统本身已经创建了一些特殊用户,它们具有特殊的意义。其中最重要 的是超级用户,即 root 用户。超级用户承担了系统管理的一切任务,可以不受限制的进行任 何操作,系统内还建立使用者的普通帐户,用来处理一般事务。 超级用户在系统中的用户 ID 和组 ID 都是 0。而普通用户的用户 ID 和组 ID 都是从 500 开 始编号的,并且默认用户默认属于与用户名同名的组。 用户在使用过程中可以随时使用 su 命令来改变身份。系统管理员在日常工作的时候可以 用普通帐号登录,当需要进行系统维护的时候用 su 命令获得 root 权限,之后再用 su 命令回 到原来的普通帐号。 su 的用法是在 su 后面加上要切换的用户名,如果不指定用户名,则系统默认的将用户身 份切换为 root,同时会要求给出系统管理员的口令。 创建和删除用户 超级用户 root 可以使用 adduser 或 useradd 命令给系统添加用户。 例如在系统中添加一个名为 newuser 的新用户,可以运行如下命令 adduser newuser(或者 useradd) adduser 命令执行以后,要求管理员输入用户的详细信息,按照提示一步一步的进行就可 以了。 adduser 命令还有很多可选参数,用来设置新用户的属性,可以参考 man 手册。 useradd 命令的使用方法同上。 超级用户使用 passwd 命令来设定新用户的登录口令。格式为: passwd newuser 系统会提示输入新的口令,新的口令需要输入两次,第二次为确认。注意输入的口令不会 在屏幕上显示出来。 如果以后想更换用户口令,仍然使用 passwd 命令。超级用户可以更改所有用户的口令, 普通用户可以使用不带参数的 passwd 命令来修改自己的口令。 改变用户属性 改变用户属性有如下几条命令: chfn 改变全名域 chsh 改变登录 shell passwd 改变用户口令 超级用户可以用这些口令改变任何帐户的属性,而普通用户只能改变自己帐户的属性。 临时禁止一个用户 有写时侯,需要临时禁止一个用户帐号的使用而不是删除它。 临时禁止用户可以采用以下两种方法: 134 银河麒麟服务器操作系统管理员手册 z 把用户的记录从/etc/passwd 文件中去掉,保留其主目录和其它文件不变; z 在/etc/passwd 文件(或/etc/shadow)中关于该用户的 passwd 域的第一个字符前面 加一个“*”号。 删除用户 如果某个用户不可能再被使用,那么管理员将把该帐户从系统中彻底删除。完全删除用户 需要做的工作包括: z 删除/etc/passwd 文件中该用户的记录。 z 删除/etc/group 文件中该用户的相关信息。 z 删除该用户的主目录。 删除该用户创建的文件或属于该用户的文件。可以使用下面的命令来删除: userdel [-r] 使用-r 选项,表示用户主目录及其内部的文件将被删除。 22.4 命令行下用户组管理 建立组 groupadd 命令可以用来向系统中添加新的组。使用的格式如下: groupadd 典型情况下,组的 ID 和用户的 ID 完全一致。可以使用 groupadd 命令的相关选项对组的 设置进行修改,参看 man 手册。 在组中添加用户 在组中添加用户可以直接修改/etc/group 文件。例如:user1、user2 同属于组 group1, 组 ID 为 510,则组的设置为: group1::510:user1,user2 即只要把要加入该组的用户的用户名加入到用户列表中,用逗号分隔开。 删除组 删除组的命令是 groupdel。使用该命令的格式如下: groupdel 其中,groupname 是要删除的组名。 有两点需要注意: 1 、组中的文件不能自行删除,也不能自行改变所属的组; 2 、如果组是用户的基本组(即/etc/passwd 文件中显示为该用户的组),则这个组无法 删除。 135 银河麒麟服务器操作系统管理员手册 第23章 自动化的任务 在 Kylin 中,任务可以被配置在指定的时间段、指定的日期、或系统平均载量低于指定的 数量时自动运行。Kylin 预配置了对重要系统任务的运行,以便使系统能够时时被更新。譬如, 被 locate 命令使用的 slocate 数据库每日都被更新。系统管理员可使用自动化的任务来执行 定期备份、监控系统、运行定制脚本等等。 Kylin 随带几个自动化任务的工具:cron、at、和 batch。 23.1 cron cron 是一个可以用来根据时间、日期、月份、星期的组合来调度对重复任务的执行的守护 进程。 cron 假定系统持续运行。如果当某任务被调度时系统不在运行,该任务就不会被执行。 要使用 cron 服务,您必须安装了 vixie-cron RPM 软件包,而且必须在运行 crond 服务。 要判定该软件包是否已安装,使用 rpm –qa vixie-cron 命令。要判定该服务是否在运行,使 用 /sbin/service crond status 命令。 配置 cron 任务 cron 的主配置文件是 /etc/crontab,它包括下面几行: SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root HOME=/ # run-parts 01 * * * * root run-parts /etc/cron.hourly 02 4 * * * root run-parts /etc/cron.daily 22 4 * * 0 root run-parts /etc/cron.weekly 42 4 1 * * root run-parts /etc/cron.monthly 前四行是用来配置 cron 任务运行环境的变量。SHELL 变量的值告诉系统要使用哪个 shell 环境(在这个例子里是 bash shell);PATH 变量定义用来执行命令的路径。cron 任务 的输出被邮寄给 MAILTO 变量定义的用户名。如果 MAILTO 变量被定义为空白字符串 (MAILTO=""),电子邮件就不会被寄出。HOME 变量可以用来设置在执行命令或脚本时使用的 主目录。 /etc/crontab 文件中的每一行都代表一项任务,它的格式是: minute hour day month dayofweek command • minute — 分钟,从 0 到 59 之间的任何整数 • hour — 小时,从 0 到 23 之间的任何整数 136 银河麒麟服务器操作系统管理员手册 • day — 日期,从 1 到 31 之间的任何整数(如果指定了月份,必须是该月份的 有效日期) • month — 月份,从 1 到 12 之间的任何整数(或使用月份的英文简写如 jan、 feb 等等) • dayofweek — 星期,从 0 到 7 之间的任何整数,这里的 0 或 7 代表星期日(或 使用星期的英文简写如 sun、mon 等等) • command — 要执行的命令(命令可以是 ls /proc >> /tmp/proc 之类的命令, 也可以是执行您自行编写的脚本的命令。) 在以上任何值中,星号(*)可以用来代表所有有效的值。譬如,月份值中的星号意味着在 满足其它制约条件后每月都执行该命令。整数间的短线(-)指定一个整数范围。譬如,1-4 意 味着整数 1、2、3、4。 用逗号(,)隔开的一系列值指定一个列表。譬如,3, 4, 6, 8 标明 这四个指定的整数。 正斜线(/)可以用来指定间隔频率。在范围后加上 / 意味着 在范围内可以跳过 integer。譬如,0-59/2 可以用来在分钟字段定义每两分钟。间隔频率值还 可以和星号一起使用。例如,*/3 的值可以用在月份字段中表示每三个月运行一次任务。 开头 为井号(#)的行是注释,不会被处理。 如您在 /etc/crontab 文件中所见,它使用 run-parts 脚本来执行 /etc/cron.hourly、 /etc/cron.daily、/etc/cron.weekly 和 /etc/cron.monthly 目录中的脚本,这些脚本被相应 地每小时、每日、每周、或每月执行。这些目录中的文件应该是 shell 脚本。 如果某 cron 任务需要根据调度来执行,而不是每小时、每日、每周、或每月地执行,它 可以被添加到 /etc/cron.d 目录中。该目录中的所有文件使用和 /etc/crontab 中一样的语 法。 # record the memory usage of the system every monday # at 3:30AM in the file /tmp/meminfo 30 3 * * mon cat /proc/meminfo >> /tmp/meminfo # run custom script the first day of every month at 4:10AM 10 4 1 * * /root/scripts/backup.sh crontab 的例子 除根用户以外,其他用户可以使用 crontab 工具来配置 cron 任务。所有用户定义的 crontab 都被保存在 /var/spool/cron 目录中,并使用创建它们的用户身份来执行。要以某用 户身份创建一个 crontab 项目,登录为该用户,然后键入 crontab -e 命令,使用由 VISUAL 或 EDITOR 环境变量指定的编辑器来编辑该用户的 crontab。该文件使用的格式和 /etc/crontab 相同。当对 crontab 所做的改变被保存后,该 crontab 文件就会根据该用户名被保存,并写 入文件 /var/spool/cron/username 中。 cron 守护进程每分钟都检查 /etc/crontab 文件、etc/cron.d/ 目录、以及 /var/spool/cron 目录中的改变。如果发现了改变,它们就会被载入内存。这样,当某个 crontab 文件改变后就不必重新启动守护进程了。 控制对 cron 的使用 137 银河麒麟服务器操作系统管理员手册 /etc/cron.allow 和 /etc/cron.deny 文件被用来限制对 cron 的使用。这两个使用控制 文件的格式都是每行一个用户。两个文件都不允许空格。如果使用控制文件被修改了,cron 守 护进程(crond)不必被重启。使用控制文件在每次用户添加或删除一项 cron 任务时都会被读 取。 无论使用控制文件中的规定如何,根用户都总是可以使用 cron。 如果 cron.allow 文件 存在,只有其中列出的用户才被允许使用 cron,并且 cron.deny 文件会被忽略。 如果 cron.allow 文件不存在,所有在 cron.deny 中列出的用户都被禁止使用 cron。 启动和停止服务 要启动 cron 服务,使用 /sbin/service crond start 命令。要停止该服务,使用 /sbin/service crond stop 命令。推荐您在引导时启动该服务。 23.2 at 和 batch cron 被用来调度重复的任务,at 命令被用来在指定时间内调度一次性的任务。batch 命 令被用来在系统平均载量降到 0.8 以下时执行一次性的任务。 要使用 at 或 batch 命令,您必须安装了 at RPM 软件包,并且 atd 服务必须在运行。 要判定该软件包是否被安装了,使用 rpm -q at 命令。要判定该服务是否在运行,使用 /sbin/service atd status 命令。 z 配置 at 作业 要在某一指定时间内调度一项一次性作业,键入 at time 命令。这里的 time 是执行命令 的时间。 time 参数可以是下面格式中任何一种: • HH:MM 格式 — 譬如,04:00 代表 4:00AM。如果时间已过,它就会在第二天的这 一时间执行。 • midnight — 代表 12:00AM。 • noon — 代表 12:00PM。 • teatime — 代表 4:00PM。 • 英文月名 日期 年份 格式— 譬如,January 15 2002 代表 2002 年 1 月 15 日。 年份可有可无。 • MMDDYY、MM/DD/YY、或 MM.DD.YY 格式 — 譬如,011502 代表 2002 年 1 月 15 日。 • now + 时间 — 时间以 minutes、hours、days、或 weeks 为单位。譬如,now + 5 days 代表命令应该在 5 天之后的此时此刻执行。 时间必须要被先指定,接着是可有可无的日期。关于时间格式的详情,请阅读 /usr/share/doc/at- /timespec 文本文件。 键入了 at 命令和它的时间参数后,at> 提示就会出现。键入要执行的命令,按 [Enter] 键,然后键入 Ctrl-D。您可以指定多条命令, 方法是键入每一条命令后按 [Enter] 键。键入 所有命令后,按 [Enter] 键转入一个空行,然后再键入 Ctrl-D。或者,您也可以在提示后输 入 shell 脚本,在脚本的每一行后按 [Enter] 键,然后在空行处键入 Ctrl-D 来退出。如果 138 银河麒麟服务器操作系统管理员手册 输入的是脚本,所用的 shell 就会是用户的 SHELL 环境变量中设置的值,用户的登录 shell, 或是 /bin/sh(使用最先发现的)。 如果这组命令或脚本试图在标准输出中显示信息,该输出会用电子邮件方式被邮寄给用户。 使用命令 atq 来查看等待运行的作业。 z 配置 batch 作业 要在系统平均载量降到 0.8 以下时执行某项一次性的任务,使用 batch 命令。 键入 batch 命令后,at> 提示就会出现。键入要执行的命令,按 [Enter] 键,然后键入 Ctrl-D。您可以指定多条命令,方法是键入每一条命令后按 [Enter] 键。键入所有命令后,按 [Enter] 键转入一个空行,然后再键入 Ctrl-D。或者, 您也可以在提示后输入 shell 脚本, 在脚本的每一行后按 [Enter] 键,然后 在空行处键入 Ctrl-D 来退出。如果输入的是脚本, 所用的 shell 就会是用户的 SHELL 环境变量中设置的值,用户的登录 shell,或是 /bin/sh (使用最先发现的)。系统平均载量一降到 0.8 以下,这组命令或脚本就会被执行。 如果这组命令或脚本试图在标准输出中显示信息,该输出会用电子邮件方式被邮寄给用户。 使用命令 atq 来查看等待运行的作业。 z 查看等待运行的作业 要查看等待运行的 at 和 batch 作业,使用 atq 命令。它显示一列等待运行的作业,每 项作业只占据一行。每一行的格式都是:作业号码、日期、小时、作业类别、以及用户名。用 户只能查看他们自己的作业。如果根用户执行 atq 命令,所有用户的全部作业都会被显示。 其它的命令行选项 at 和 batch 的其它命令行选项包括: 表 37.1 at 和 batch 的命令行选项 选项 描述 -f 从文件中读取命令或 shell 脚本,而非在提示后指定它们。 -m 在作业完成后,给用户发送电子邮件。 -v 显示作业将被执行的时间。 控制对 at 和 batch 的使用 /etc/at.allow 和 /etc/at.deny 文件可以用来限制对 at 和 batch 命令的使用。这两个 使用控制文件的格式都是每行一个用户。两个文件都不允许使用空白字符。如果使用控制文件 被修改了,at 守护进程(atd) 不必被重启。每次用户试图执行 at 或 batch 命令时,使用 控制文件都会被读取。 不论使用控制文件如何规定,根用户都总是可以执行 at 和 batch 命令。 如果 at.allow 文件存在,只有其中列出的用户才能使用 at 或 batch 命令,at.deny 文 件会被忽略。 如果 at.allow 文件不存在,所有在 at.deny 文件中列出的用户都被禁止使用 at 和 batch 命令。 z 启动和停止服务 139 银河麒麟服务器操作系统管理员手册 要启动 at 服务,使用 /sbin/service atd start 命令。要停止该服务, 使用 /sbin/service atd stop 命令。建议您在引导时启动该服务。 140 银河麒麟服务器操作系统管理员手册 第24章 日志文件 日志文件(Log files)是包含关于系统消息的文件,包括内核、服务、在系统上运行的应 用程序等。不同的日志文件记载不同的信息。例如,有的是默认的系统日志文件,有的仅用于 安全消息,有的记载 cron 任务的日志。 当您在试图诊断和解决系统问题时,如试图载入内核驱动程序或寻找对系统未经授权的使 用企图时,日志文件会很有用。本章讨论要到哪里去寻找日志文件,如何查看日志文件,以及 在日志文件中查看什么。 某些日志文件被叫做 syslogd 的守护进程控制。被 syslogd 维护的日志消息列表可以在 /etc/syslog.conf 配置文件中找到。 24.1 定位日志文件 多数日志文件位于 /var/log/ 目录中。某些程序如 httpd 和 samba 在 /var/log/ 中有 单独的存放它们自己的日志文件的目录。 注意,日志文件目录中会有多个后面带有数字的文件。这些文件是在日志文件被循环时创 建的。日志文件被循环使用,因此文件不会变得太大。logrotate 软件包中包含一个能够自动 根据 /etc/logrotate.conf 配置文件和 /etc/logrotate.d 目录中的配置文件来循环使用日 志文件的 cron 任务。按照默认配置,日志每周都被循环,并被保留四周之久。 24.2 查看日志文件 多数日志文件使用纯文本格式。您可以使用任何文本编辑器如 Vi 或 Emacs 来查看它们。 某些日志文件可以被系统上所有用户查看;不过,您需要拥有根特权来阅读多数日志文件。 要在互动的、真实时间的应用程序中查看系统日志文件,使用日志查看器。要启动这个应 用程序,点击面板上的「开始」 => 「应用程序」=> 「系统工具」 => 「系统日志」,或在 shell 提示下键入 logviewer 命令。 这个应用程序只能显示存在的日志文件;因此,其列表可能会与图 24.1 所示的略有不同。 要过滤日志文件的内容来查找关键字,在「过滤:」文本字段中输入关键字,然后点击「过 滤器」。点击「重设」来重设内容。 141 银河麒麟服务器操作系统管理员手册 图 24.1 日志查看器 按照默认设置,当前的可查看的日志文件每隔 30 秒被刷新一次。要改变刷新率,从下拉 菜单中选择「编辑」 => 「首选项」。如图 24.2 所示的窗口会出现。在「日志文件」标签中, 点击 刷新率旁边的上下箭头来改变它。点击 「关闭」来返回到主窗口。刷新率会被立即改变。 要手工刷新当前可以查看的文件,选择「文件」 => 「即刻刷新」或按 [Ctrl]-[R]。 您可以在首选项的「日志文件」活页标签中改变日志文件的位置。从列表中选择日志文件, 然后点击「编辑」按钮。键入日志文件的新位置,或点击「浏览」按钮来从文件选择对话框中 定位文件位置。点击「确定」来返回到首选项窗口,然后点击「关闭」来返回到主窗口。 142 银河麒麟服务器操作系统管理员手册 图 24.2 日志文件的位置 24.3 添加日志文件 要在列表中添加一个日志文件,选择「编辑」 => 「首选项」,然后点击「日志文件」活 页标签中的「添加」按钮。 图 24.3 添加日志文件 提供要添加的日志文件的名称、描述和位置。点击了「确定」后,该文件若存在就会立即 被添加到查看区域。 143 银河麒麟服务器操作系统管理员手册 24.4 检查日志文件 日志查看器能够被配置来在包含报警词的行旁边显示一个报警图标;在包含警告词的行旁 边显示一个警告图标。 要添加报警词,从拉下菜单中选择「编辑」 => 「首选项」,然后点击「报警」活页标签 (界面是两个警告)。点击「添加」按钮来添加报警词。要删除一个报警词,从列表中选择它, 然后点击「删除」。 报警图标 显示在包含报警词的行的左侧。 图 24.4 警告 要添加警告词,从拉下菜单中选择「编辑」 => 「首选项」,然后点击「警告」标签。点 击「添加」按钮来添加警告词。要删除一个警告词,从列表中选择它,然后点击「删除」。 警告图标 显示在包含警告词的行的左侧。 144 银河麒麟服务器操作系统管理员手册 图 24.5 警告 145 银河麒麟服务器操作系统管理员手册 第25章 收集系统信息 在您学习如何配置系统之前,您应该学习如何收集基本的系统信息。譬如,您应该知道如 何找出关于空闲内存的数量、可用硬盘驱动器空间的数量,硬盘分区方案,以及正在运行进程 的信息。本章将讨论如何使用几个简单程序来从您的 Kylin 系统中检索这类信息。 25.1 系统进程 ps ax 命令显示一个当前系统进程的列表,该列表中包括其他用户拥有的进程。要显示进 程以及它们的所有者,使用 ps aux 命令。该列表是一个静态列表;换一句话说,它是在您启 用这项命令时正在运行的进程的快照。如果您需要一个时刻更新的运行进程列表,使用下面描 述的 top 命令。 ps 的输出会很长。要防止它快速从屏幕中滑过,您可以把它管道输出给 less 命令: ps aux | less 您可以使用 ps 命令和 grep 命令的组合来查看某进程是否在运行。譬如,要判定 Emacs 是否在运行,使用下面这个命令: ps ax | grep emacs top 命令显示了当前正运行的进程以及关于它们的重要信息,包括它们的内存和 CPU 用 量。该列表既是真实时间的也是互动的。以下提供了一个 top 的输出示例: last pid: 2632; load averages: 0.74, 0.35, 0.18 up 0+07:13:17 17:14:26 41 processes: 1 running, 40 sleeping Mem: 51M Active, 17M Inact, 27M Wired, 4144K Cache, 21M Buf, 8992K Free Swap: 600M Total, 33M Used, 567M Free, 5% Inuse PID USERNAME PRI NICE SIZE RES STATE TIME WCPU CPU COMMAND 8.98% 8.98% XFree86 1371 0 98 0 43232K 32044K select 4:00 2542 0 98 0 35676K 14164K select 1:18 8.59% 8.59% gnome-system- 2600 0 97 0 38952K 16292K select 0:01 9.41% 2.44% gnome-termina 189 0 96 0 0:42 0.44% 0.44% moused 2602 0 8 0 5508K 1984K wait 0:00 1.88% 0.34% bash 1475 0 96 0 39132K 16048K select 1:13 0.00% 0.00% gnome-panel 1477 0 96 0 48580K 16092K select 0:25 0.00% 0.00% nautilus 1471 0 96 0 31336K 9756K select 0:24 0.00% 0.00% metacity 1479 0 96 0 18192K 9212K select 0:11 0.00% 0.00% magicdev 1487 0 96 0 35424K 12656K select 0:07 0.00% 0.00% wnck-applet 324K 52K select 146 银河麒麟服务器操作系统管理员手册 365 0 96 0 10556K 1004K select 0:06 0.00% 0.00% cupsd 1457 0 96 0 16200K 6620K select 0:03 0.00% 0.00% gconfd-2 1481 0 96 0 29888K 0:03 0.00% 0.00% pam-panel-ico 1482 0 96 0 1576K 864K select 1384 0 96 0 35540K 9960K select 0:01 0.00% 0.00% gnome-session 1447 0 96 0 10040K 3496K select 0:01 0.00% 0.00% chinput 1483 0 96 0 48580K 16092K select 0:01 0.00% 0.00% nautilus 1462 0 96 0 18984K 0:01 0.00% 0.00% gnome-setting 8904K select 9008K select 0:02 0.00% 0.00% pam_timestamp 要退出 top,按 [q] 键。 可以和 top 一起使用的互动命令包括: 表 25.1 互动的 top 命令 命令 描述 [Space] 立即刷新显示 [h] 显示帮助屏幕 [k] 杀死某进程。您会被提示输入进程 ID 以 及要发送给它的信号。 [n] 改变要显示的进程数量。您会被提示输入 数量。 [u] 按用户排序。 [M] 按内存用量排序。 [P] 按 CPU 用量排序。 如果和 top 相比,您更喜欢使用图形化界面,您可以使用 GNOME 系统监视器。要从桌面 上启动它,选择面板上的「开始」 => 「应用程序」=> 「系统工具」 => 「系统监视器」或在 X 窗口系统的 shell 提示下键入 gnome-system-monitor。然后选择「进程列表」标签。 GNOME 系统监视器允许您在正运行的进程列表中搜索进程,还可以查看所有进程、您拥有 的进程、或活跃的进程。 要了解更多关于某进程的情况,选择该进程,然后点击「更多信息」按钮。关于该进程的 细节就会显示在窗口的底部。 要停止某进程,选择该进程,然后点击「结束进程」。这有助于结束对用户输入已不再做 出反应的进程。 要按指定列的信息来排序,点击该列的名称。信息被排序的那一列会用深灰色显示。 按照默认设置,GNOME 系统监控器不显示线程。要改变这个首选项,选择「编辑」 => 「首 选项」,点击「进程列表」标签,然后选择「显示线程」。首选项还允许您配置更新间隔;每 个进程默认显示的信息;以及系统监视器图表的颜色。 147 银河麒麟服务器操作系统管理员手册 图 25.1 GNOME 系统监视器 25.2 内存用量 free 命令显示系统的物理内存和交换区的总量,以及已使用的、空闲的、共享的、在内核 缓冲内的、和被缓存的内存数量。 total used free 256812 240668 16144 -/+ buffers/cache: 108300 148512 Swap: 264252 Mem: 265032 780 shared buffers 105176 cached 50520 81848 free -m 命令显示的信息和前面相同,但是它以 MB 为单位,便于阅读。 total used free shared buffers cached 250 235 15 102 49 79 -/+ buffers/cache: 105 145 0 258 Mem: Swap: 258 148 银河麒麟服务器操作系统管理员手册 如果和 free 相比,您更喜欢使用图形化界面,您可以使用 GNOME 系统监视器。要从桌面 上启动它,选择面板上的「开始」=> 「应用程序」 => 「系统工具」 => 「系统监视器」或在 X 窗口系统的 shell 提示下键入 gnome-system-monitor。然后选择「系统监视器」标签。 图 25.2 GNOME 系统监视器 25.3 文件系统 df 命令报告系统的磁盘空间用量。如果您在 shell 提示下键入了 df 命令,它的输出与 下面相似: 文件系统 1K-块 已用 可用 已用% 挂载点 /dev/ad0s1a 7660878 2329796 devfs 1 1 0 100% /dev proc 4 4 0 100% /proc 4718212 34% / 按照默认设置,该工具把分区大小显示为 1KB 的块,已用的和可用的磁盘空间以 KB 为单 位显示。要查看以 MB 和 GB 为单位的信息,使用 df -h 命令。-h 选项代表人可读格式。它 的输出类似于: 文件系统 容量 已用 可用 已用% 挂载点 149 银河麒麟服务器操作系统管理员手册 /dev/ad0s1a 7.4G 2.3G 4.5G 34% / devfs 1.0K 1.0K 0 100% /dev proc 4.0K 4.0K 0 100% /proc 在分区列表中,有一项是 /dev/shm。该项目代表系统的虚拟内存文件系统。 du 命令显示被目录中的文件使用的估计空间数量。如果您在 shell 提示下键入了 du 命 令,每个子目录的用量都会在列表中显示,当前目录和子目录的总和也会在列表的最后一行中 被显示。如果您不想查看每个子目录的用量,使用 du -hs 命令来使用人可读的格式只列出目 录用量总和。使用 du --help 命令来查看更多选项。 要查看图形化的系统分区和磁盘空间用量,使用「系统监视器」标签,如图 25.2 的底部 所示。 25.4 硬件 如果您在配置硬件时遇到问题,或者只是想了解一下您的系统中有哪些硬件,您可以使用 硬件浏览器程序来显示能被探测到的硬件。要在桌面环境下启动该程序,点击「开始」=> 「应 用程序」 => 「系统工具」 =>「硬件浏览器」,或在 shell 提示下键入 hwbrowser。如图 25-3 所示,它显示了您的光盘设备、软盘、硬盘驱动器和它们的分区、网络设备、指示设备、系统 设备、以及视频卡。点击左侧菜单上的类别名称,有关信息就会被显示。 图 25.3 硬件浏览器 150 银河麒麟服务器操作系统管理员手册 您还可以使用 lspci 命令来列举所有的 PCI 设备。使用 lspci -v 命令来获得详细的信 息,或使用 lspci -vv 命令来获得更详细的输出。 譬如,lspci 命令可以被用来判定系统视频卡的制造厂商、型号、以及内存大小: 01:00.0 VGA compatible controller: Matrox Graphics, Inc. MGA G400 AGP (rev 04) \ (prog-if 00 [VGA]) Subsystem: Matrox Graphics, Inc. Millennium G400 Dual Head Max Flags: medium devsel, IRQ 16 Memory at f4000000 (32-bit, prefetchable) [size=32M] Memory at fcffc000 (32-bit, non-prefetchable) [size=16K] Memory at fc000000 (32-bit, non-prefetchable) [size=8M] Expansion ROM at 80000000 [disabled] [size=64K] Capabilities: [dc] Power Management version 2 Capabilities: [f0] AGP version 2.0 如果您不知道系统网卡的制造商或型号,lspci 可以帮助您来判定这些信息。 151 银河麒麟服务器操作系统管理员手册 第26章 系统备份 世界上没有百分之百的安全,为了防止不可预料的网络攻击、系统硬件故障或用户的非法 操作而发生数据丢失,系统管理员必须制订一个备份计划,并定期对系统进行安全备份,以便 在系统崩溃时,可以及时将系统恢复到最佳状态。 26.1 备份前的准备 z 选择备份介质 有很多介质可以用来进行数据备份,目前比较常用的备份介质有软盘、磁带机、光盘和硬 盘。对于少量数据的存储,软盘就可以解决问题,但在有大量数据的情况下,就需要光盘等介 质了。用户需要根据自己系统备份计划的实际情况,从可靠性、速度、可用性、易用性和费用 成本几个方面考虑来进行备份介质的选择。 z 进行备份的时机 进行系统备份要定期执行,备份通常应该选择在系统比较空闲时进行,以免影响系统处理 正常任务,如可以选择在 0:00 之后进行。 z 备份策略的选择 1、 完全备份 每隔一定时间对系统进行一次全面备份的方法,是最基本的备份方案。但这样做工作量很 大,又需要过多的备份介质,因此不能频繁地进行全面备份,要隔一段较长时间,如一个月, 进行一次完整备份。但这样一旦发生数据丢失,就只能恢复到上次备份的数据。 2、 增量备份 先进行一次完全备份,然后每隔一个较短时间进行一次备份,仅备份在这个期间更改的内 容。当经过一个较长时间的积累后再进行一次完全备份。这样每次备份的工作量小,能够频繁 操作,而且也比较经济。 3、 更新备份 与增量备份方式有些相似。首先每月进行一次完全备份,然后每天进行一次更新数据的备 份。不同之处是:增量备份是备份该天更改的数据,而更新备份是备份从上次进行完全备份后 更改的全部数据文件。一旦发生数据丢失,可以使用前一个完全备份恢复到前一个月的状态, 再使用前一个更新备份恢复到前一天的情况。 增量备份和更新备份都能以较为经济的方式实现,在不同备份策略之间进行选择不但与系 统数据更新的方式有关,也依赖于管理员的习惯。 z 备份工具的选择 有许多工具可用于制作备份。Kylin 中提供了传统的 tar、bzip2、gzip、cpio 等工具, 当然也可以使用其他第三方的软件包。 z 常用备份命令 152 银河麒麟服务器操作系统管理员手册 有时候,我们需要把一组文件贮存成一个文件以便备份或传输到另一个目录甚至另一台计 算机上。我们还需要把一组文件压缩成一个文件,因而它占用少量的磁盘空间并能更快地通过 网络上下载。 下面介绍 Kylin 下最常用的归档压缩工具 tar、bzip2、gzip 和 zip。 26.1.1 tar 命令 利用 tar 可以将文件和目录归档,也可以在档案中改变文件,或者向档案中加入新的文件。 tar 最初被用来在磁带上创建档案,现在则可以在任何设备上使用。tar 命令实现把一大堆文 件和目录全部打成一个包的功能,这对于备份或将几个文件组合成一个文件以便网络传输是非 常有用的。 tar 命令的语法格式为: tar [主选项+辅助选项] 文件或目录 使用时,主选项是必须的,辅助选项可以选用。主选项主要包括: c: 创建新的档案文件。如果用户想备份一个目录或是一些文件,就选择此选项。 r: 把要存档的文件追加到档案文件末。如用户已完成备份文件,又发现还有一部分 文件或目录忘记了,就可以使用此选项。 t: 列出档案文件的内容,查看已经备份了哪些文件。 u: 更新文件。即用新增的文件取代原备份文件,如果在备份文件中找不到要更新的 文件,则把它追加到备份文件的最后。 x: 从档案文件中释放文件。 辅助选项主要有: b: 为磁带机而设定,其后跟一数字,用来说明区块的大小。 f: 使用档案文件或设备,此选项通常为必选项。 k: 保存已存在的文件,使用户在还原文件中,遇到相同的文件不会进行覆盖。 m: 在还原文件时,把所有文件的修改时间设定为现在。 M: 创建多卷的档案文件,以便在几个磁盘中存放。 v: 详细报告 tar 处理的文件信息。 w: 每一步都要求确认。 z: 用 gzip 来压缩/解压缩文件,加上此选项后可以将档案文件进行压缩,还原是 地一定要有该选项才能进行解压缩。 例 1:把 /home 目录包括其子目录全部做成备份文件 home.tar。 # tar cvf home.tar /home 例 2:把 /home 目录包括其子目录全部备份并进行压缩,生成文件名为 home.tar.gz。 # tar czvf home.tar.gz /home 例 3:把 home.tar.gz 文件还原并解压缩。 153 银河麒麟服务器操作系统管理员手册 # tar xzvf home.tar.gz 例 4:查看 home.tar 文件的内容,并以分屏方式显示在屏幕上。 # tar tvf home.tar |more 例 5:在软盘 /dev/fd0 中创建一个备份文件,将 /tmp 目录中所有的文件都拷贝进来。 # tar cf /dev/fd0 /tmp 要恢复设备磁盘中的文件,则可使用 xf 选项。 当需要备份的文件大小超过设备的可用存储空间时,可以创建一个多卷的 tar 文件,使用 M 选项向一个软盘存储过程中,系统在一张软盘已满时会提示放入新的软盘,以实现把 tar 档 案存入多张磁盘中。如 # tar cMf /dev/fd0 /home 26.1.2 bzip2 和 bunzip2 要使用 bzip2 来压缩文件,在 shell 提示符下键入以下命令: # bzip2 filename 该文件就会被压缩,并被保存为 filename.bz2。 要解开被压缩的文件,键入以下命令: # bunzip2 filename.bz2 filename.bz2 文件会被删除,而代之以 filename 文件。 可以使用 bzip2 命令同时处理多个文件和目录,方法是将它们逐一列出,并用空格隔开。 例如: # bzip2 filename.bz2 file1 file2 file3 /usr/local/rfinput 上面的命令把 file1、file2、file3 以及 /usr/local/rfinput 目录的内容压缩起来,存 放到 filename.bz2 文件中。 26.1.3 gzip 和 gunzip gzip 是一个经常使用的文件压缩和解压缩命令。该命令的语法格式为: gzip [选项] 压缩/解压缩的文件名 常用的选项参数如下: -c: 将输出写到标准输出上,并保留原有文件。 -d: 将压缩文件解压缩。 -l: 对每个压缩文件显示其大小、未压缩文件的大小、压缩比和名称等。 -r: 递归式地查找指定目录并压缩其中的所有文件或是解压缩。 -t: 测试、检查压缩文件是否完整。 -v: 对每一个压缩和解压缩文件,显示文件名和压缩比。 -num: 用指定的数字来调整压缩的速度。 154 银河麒麟服务器操作系统管理员手册 现在假设在目录 /home 下有文件 aa.txt、bb.txt、cc.txt,把它们压缩成 .gz 文件的命 令如下: gzip /home/* ls aa.txt.gz bb.txt.gz cc.txt.gz 要将上例中的文件解压,并列出详细的信息,使用命令 gzip –dv /home/* 要解开被压缩的文件,也可以使用以下命令: gunzip filename.gz filename.gz 会被删除,而代之以 filename。 26.1.4 zip 和 unzip 要使用 zip 命令压缩文件,在 shell 提示符下键入下面的命令: zip -r filename.zip filesdir 在上例中,filename.zip 表示要创建的压缩文件,filesdir 表示要压缩的文件目录。-r 选 项表示递归地压缩所有包括在 filesdir 目录中的文件。 要解压缩 filename.zip 文件,键入以下命令: unzip filename.zip 可以使用 zip 命令同时处理多个文件和目录,方法是将它们逐一列出,并用空格隔开: zip -r filename.zip file1 file2 file3 /usr/local/rfinput 上面的命令把 file1、file2、file3 以及 /usr/local/rfinput 目录的内容压缩起来,存 放到 filename.zip 文件中。 155 银河麒麟服务器操作系统管理员手册 附录 A:常见问题 本部分包括了一些在 Kylin 系统管理过程中常见的问题,并给出它们的解决办法。 ¾ 怎样让 ls 不显示颜色? 在 /etc/bashrc 里面删除 alias ls=“ls --color” 的那些语句,把用户目录下 的 .bashrc 文件也作如上处理。 ¾ 当键入 ls 后,大量的信息从屏幕上卷过,看不清目录的输出,应该怎样才能阅读输 出呢? 要防止 ls 命令的输出过快地从屏幕上卷过,可以利用管道的方法。 也可以使用 less 来 阅读 /etc 的内容,在 shell 提示下键入下列命令: ls -al /etc | less 使用另一个分页工具 more 来达到同样的效果。 ¾ 怎样才能使 root 用户通过 ssh 远程登录? 如果希望允许 root 用户直接登录 ssh,可以通过修改 OpenSSH 的服务器端配置文件 /etc/ssh/sshd_config 来实现。即将如下的一行 “PermitRootLogin no” 中的 no 改为 yes 后,重启 sshd 服务。 ¾ 基于 Apache 的 httpd 服务或 Sendmail 在启动时被挂起,为什么? 如果启动基于 Apache 的 httpd 服务或 Sendmail 时遇到问题,请确定 /etc/hosts 文件 中包括下面一行: 127.0.0.1 localhost.localdomain localhost ¾ 安装一个新的应用程序时,当在 shell 下键入它的名称,得到“command not found”。 为什么不能启动应用程序呢? 如果在 shell 下启动一个应用程序却不奏效,可以在应用程序的可执行名称前面添加一 个 ./ 。 假设您下载了 abcdef 客户应用程序,并在用户主目录中创建了一个叫做 abc/ 的子目录。 现在,除了使用该可执行文件的全路径来启动这个应用程序(如下所示): /home/xyz/abc/abcdef 之所以要使用全路径名来启动程序是因为:可执行文件的路径没有被放置在您的用户 shell 环境所知的目录中(如 /usr/local/bin)。 还可以在 /home/xyz/abc/ 下运行命令: ./abcdef 。 ¾ 如何在运行 Kylin 时访问 Windows 分区? 首先需要知道 Windows 分区的位置,即明确将访问的 Windows 分区在哪个硬盘的哪个分 区上。 然后,以超级用户身份执行以下命令: mkdir /mnt/windows 创建用于挂载 Windows 分区的目录 mount -t vfat /dev/ad0s3 /mnt/windows 将它挂载到创建的目录中 156 银河麒麟服务器操作系统管理员手册 cd /mnt/windows 进入加载了 Windows 分区的目录 如果想要在每次引导系统时自动挂载 Windows 分区,则必须修改 /etc/fstab 文件。在 /etc/fstab 文件中添加如下一个新行 /dev/ad0s3 /mnt/windows vfat auto,umask=0 0 0 在系统重新引导时,/etc/fstab 文件会被读取,Windows 分区会被自动挂载到目录 /mnt/windows 中。 附录 B:Kylin 和 DOS 常用命令对照表 功能 Kylin MS-DOS 复制文件 cp copy 移动文件 mv move 列举文件 ls dir 清除屏幕 clear cls 删除文件 rm del 创建目录 mkdir mkdir 查看文件 less more 文件重命名 mv ren 比较文件内容 diff fc 查看当前路径 pwd chdir 把输出回显到屏幕 echo echo 在文件中寻找字串 grep find 显示命令帮助 man 关闭和退出 exit exit 显示或设置日期 date date 显示时间 date time 157 命令 /? 银河麒麟服务器操作系统管理员手册 显示已被使用的内存 free mem 格式化软盘 newfs format 158 银河麒麟服务器操作系统管理员手册 附录 C:文件类型和文件名 在 Kylin 系统中,文件命名通常与它的文件类型相关,下面列出了常见文件名和它们所属 文件类型的对应关系: 压缩和归档文件 .bz2 使用 bzip2 程序压缩的文件 .gz 使用 gzip 程序压缩的文件 .tar 使用 tar 程序压缩的文件,又称 tar 文件 .tbz 用 tar 和 bzip 压缩的文件 .tgz 用 tar 和 gzip 压缩的文件 .zip 使用 ZIP 压缩的文件,常见于 MS-DOS 应用程序中。 系统文件 .conf 一种配置文件,有时也用 .cfg。 .lock 锁(lock)文件,用来判定程序或设备是否正在被使用。 .rpm 一种来自于 Red Hat 的软件包格式文件 编程和脚本文件 .c C 语言的源码文件 .cpp C++ 语言的源码文件 .h C 或 C++ 语言的头文件 .o 程序的对象文件 .pl Perl 脚本 .py Python 脚本 .so 库文件 .sh shell 脚本 159 银河麒麟服务器操作系统管理员手册 .tcl TCL 脚本 其它文件格式 .au 音频文件 .gif GIF 图像文件 .jpg JPEG 图像文件 .pdf Portable Document Format,可移植文档格式。 .png PNG 图像文件(Portable Network Graphic 的简写,可移植网络图形) .ps PostScript 文件,为打印而格式化过的文件。 .txt 纯 ASCII 文本文件 .wav 一种音频文件 .html/.htm HTML 文件 160 银河麒麟服务器操作系统管理员手册 附录 D:术语表 account 在 Unix 系统中,指允许个人连接到系统的登录名称、个人目录、密码以及 shell 的 组合。 alias 别名。在 shell 中为了能在执行命令时将某一字符串替换成另一个的一种机制。在提 示符中键入 alias 可了解当前所定义的全部别名。 ARP Address Resolution Protocol(地址解析协议)。该网际网络协议用于将网际网络地 址动态地对应到局域网络的硬件地址上。 ATAPI AT Attachment Packet Interface,AT 附件包装接口。最为人们所熟知的是 IDE;它 提供了额外的指令来控制 CDROM 以及磁带装置。而具有延伸功能的 IDE 控制器通常被称为 EIDE(Enhanced IDE,加强型 IDE 控制器)。 batch 批处理。将工作按顺序送到处理器,处理器一个接一个执行直到最后一个完成并准备好 接受另一组处理清单的一种处理模式。 boot 引导。即发生在按下计算机的电源开关,机器开始检测接口设备的状态,并把操作系统 加载到内存中的整个过程。 bootdisk 引导盘。包含来自硬盘(有时也可从其本身)加载操作系统的必要程序代码的可开机软 磁盘。 BSD Berkeley Software Distribution(伯克利软件发行套件)。一套由美国伯克利大学信 息相关科系所发展的 Unix 分支。 buffer 缓冲区。指内存中固定容量一个小区域,其中的 内容可以加载区域模式文件,系统分区表,以及执行中的进程等等。所有缓冲区的连贯性都 是由缓冲区内存来维护的。 buffer cache 缓冲区存取。这是操作系统核心中甚为重要的一部份,负责让所有的缓冲区保持在最新 的状态,在必要时可以缩小内存空间,清除不需要的缓冲区。 CHAP Challenge-Handshake Authentication Protocol(询问交互式身份验证协议):ISP 验证其客户端所采用的通信协议。它与 PAP 的不同处在于:进行最初的判别后,每隔固定 的时间周期它将会重新再验证一次。 client 161 银河麒麟服务器操作系统管理员手册 客户端。是指能够短暂地连接到其它程序或计算机上并对其下达命令或要求信息的一个 程序或一部计算机。它是服务器/客户端系统组件的一部分。 client/server system 服务器/客户端系统。由一个 server(服务器端)与一个或多个 client(客户端)所组 成的系统架构或通信协议。 compilation 编译。指把人们读得懂的以某种程序语言(例如 C 语言)书写的程序源代码转换成机 器可读的二进制文件的一种过程。 completion 自动补齐。只要系统内有能与之配合对象,shell 将自动把一个不完全的子字符串,延 展扩大成一个已存在的文件名、用户名或其它种种的能力。 compression 压缩。这是一种在通信连接的传送过程中缩小文件或减少字符数目的方法。压缩程序通 常包含有 compress,zip,gzip 及 bzip2。 console 控制台。也就是人们一般使用并称为终端的概念。它们是连接到一部巨型中央计算机的 使用者操作的机器。对 PC 而言,实际的终端就是指键盘与屏幕。 cookies 由远程 web 服务器写入到本地硬盘的临时文件。它让服务器可以在使用者再次连上网 站的时候可以知道其个人偏好。 DHCP Dynamic Host Configuration Protocol(动态主机配置协议)。一种以局域网络机器 为设计基础,能从 DHCP 服务器动态取得 IP 地址的通信协议。 DMA Direct Memory Access(直接内存存取)。一种运用在 PC 架构上的技术,它允许接口 设备可以从主存储器存取或读写资料而无须通过 CPU 联系。 DNS Domain Name System(网络域名系统)。用来负责分配名称/地址的机制。它可以将机 器名称对应到 IP 地址。同样 DNS 也允许反向搜寻,也就是说可以从 IP 地址得知其机器名 称。 DPMS Display Power Management System(显示器电源管理系统)。用于所有现今生产的显 示器以管理其电源使之能够延长使用年限的协议。 editor 编辑器。一般而言是指编辑文本文件所使用的程序(也就是文字编辑器)。 email 162 银河麒麟服务器操作系统管理员手册 电子邮件。是处于相同网络里的人们互相传送电子信息的一种方式。与定期邮件相同, email 需要收件人以及寄件人地址以便正确地传送信息。 environment variables 环境变量。可以直接通过 shell 查看环境变量。 ext2 「Extended 2 filesystem」的简称。是 GNU/Linux 原有的文件系统并且有任何 Unix 文 件系统的特色:支持特殊文件(字符设备,符号链结...),文件的权限与所有权等等。 FAT File Allocation Table(文件配置表)。使用于 DOS 以及 Windows 操作系统上的文 件系统。 FDDI Fiber Distributed Digital Interface(光纤分配式数字接口)。一种用于光纤通信 的高速网络物理层。 FIFO First In,First Out(先进先出)。一种内容项目被取出是依据其放入顺序的数据结 构或硬件缓冲区。管道是 FIFO 概念在实践中最为普遍的一个例子。 Filesystem 文件系统。为使文件储存在实际介质(硬盘、磁盘)上时能够保持其资料的一致性所做 的一种规划方式。 firewall 防火墙。在局域网络的拓扑中,负有与外界网络联系节点责任的机器或专属设备;同时 也负有过滤或控制某些通信端口的活动以及确定哪些特定接口能够予以存取等多重任务。 framebuffer 视频缓冲区。将显示卡上的 RAM 对应到机器内存地址空间的一种技术。它允许应用程 序存取显示卡上的 RAM 而无须与之直接沟通。 FTP File Transfer Protocol(文件传输协议)。这是用于机器间彼此传输文件的标准网际 网络通信协议。 Gateway 网关。用来连接两个 IP 网段之间的网络设备。 GIF Graphics Interchange Format(图形交换格式)。一种广泛用于 web 的影像文件格式, GIF 影像资料可被压缩或者存入动态画面。 GNU GNU’s Not Unix 的缩写。GNU 计划由 Richard Stallman 发起于 80 年代初期,其目 标是要发展出一套 free 的操作系统(“free” 代表 “自由” 而非免费)。 163 银河麒麟服务器操作系统管理员手册 GPL General Public License(通用公共许可证)。其理念与所有的商业软件授权大不相同: 对于软件本身的复制、修改以及重新散布没有任何的限制,用户可以取得源代码,唯一的限 制是将它散布给他人时,对方也将因相同的权利而获益。 GUI Graphical User Interface(图形用户接口)。使用菜单,按钮,以及图标等等组成窗 口外观的一种计算机操作界面。 host 主机,计算机的一种称呼。一般而言对连接到网络上的计算机时才会使用这个名词。 HTTP HyperText Transfer Protocol(超文本传输协议)。此种通信协议让您得以连上缤纷 多彩的网站并取回 HTML 文件或档案。 HTML HyperText Markup Language(超文本标记语言)。这种语言可以用来书写 web 网页文 件。 inode 在 Unix 类的文件系统中用来指向文件内容的进入点。每个 inode 皆可由这种独特的 方式作为识别,且同时包含着关于其所指向档案的相关信息,如存取时间、类型、文件大小。 Internet 网际网络。这是一个连接世界上众多计算机的巨大网络。 IP address IP 地址。一组在 Internet 上用来确认计算机的由四组数字组成的地址表示法,IP 地 址看起来像是 192.168.0.1 这种样子。而机器本身的地址有二种类型:静态或动态。静态 IP 地址不会变动;而动态 IP 地址则是指每次重新连上网络时,IP 地址都会有所不同。 IP masquerading IP 伪装。当使用防火墙时隐藏计算机真实 IP 地址以防止为外界所窥知的一种方法。 传统上任何越过防火墙而来的外界网络连结所取得的是防火墙的 IP 地址。 IRC Internet Relay Chat(网际网络接力聊天室)。一种网络上用来实时交谈的标准。它 允许建立一个频道(channel)进行私人秘密会谈,还可以传输文件。 ISA Industry Standard Architecture(工业标准结构)。用于个人计算机上非常早期的总 线规格,它正慢慢地被 PCI 总线所取代。 ISDN Integrated Services Digital Network(综合服务数字网络)。一组允许以单一线缆 或光纤传送声音、数字网络服务及影像的通信标准。 164 银河麒麟服务器操作系统管理员手册 ISO International Standards Organization(国际标准化组织)。 ISP Internet Service Provider(网络服务提供者)。是指对其顾客提供网络存取而不论 其介质是采用电话还是专用线路的公司。 kernel 核心。这是操作系统的关键所在。核心负责分配资源并区分各个使用者的进程。它处理 着允许程序与计算机硬件直接沟通的所有动作,包含管理缓冲区快速存取等等。 LAN Local Area Network(本地端局域网络)。一般而言是指当机器以相同实体线缆连接时 所构成的网络系统。 LDP Linux Documentation Project(Linux 文件计划)。一个维护 GNU/Linux 文件的非营 利组织。其最著名的成果为各式各样的 HOWTO 文件,除此之外它也维护着 FAQ,甚至是一 些书籍。 loopback 一个机器连接到其本身的虚拟网络接口,它允许执行中的程序不必去考虑两个网络实体 事实上都位于相同机器的这种特殊状况。 manual page 参考手册。包含指令及其用法定义,可以 man 这个指令查阅的小型文件。 MBR Master Boot Record(主引导记录)。指可引导硬盘的第一扇区所使用的名称。MBR 中 包含用来将操作系统加载到内存或开机加载程序(例如 LILO)的执行码,以及该硬盘的分 区表。 MIME Multipurpose Internet Mail Extensions(多用途网际网络邮件延伸格式)。在电子 邮件里,以型态/子型态(type/subtype)形式描述其包含文件内容的一段字符串。 MPEG Moving Pictures Experts Group(运动图像专家组)。一个制订影音压缩标准的 ISO 委员会;同时 MPEG 也是他们的算法名称。 NCP NetWare Core Protocol(NetWare 核心协议)。由 Novell 公司定义的用以存取 Novell NetWare 系统的文件及打印服务的通信协议。 newsgroups 新闻群组。能由新闻或 USENET 客户端程序加以存取以便让人阅读或写入信息到某新闻 群组的特定主题讨论区或新闻区。 165 银河麒麟服务器操作系统管理员手册 NFS Network FileSystem(网络文件系统)。提供通过网络来共享文件的网络文件系统。 NIC Network Interface Controller(网络接口控制器)。安装到计算机上并提供对网络实 体连接所使用的转接器,如 Ethernet 网卡。 NIS Network Information Service(网络信息服务),NIS 的目的在于分享跨越 NIS 网域 的共有信息,该 NIS 网域涵盖了整个局域网、部分的局域网或是数个局域网。它能够输出 密码数据库,服务数据库,以及群组信息等等。 open source 开放源代码。其理念在于一旦允许广大的程序设计师可以共同使用及修改原始程序代 码,最终将会产生出对所有人而言最有用的产品。一些受欢迎的开放源码程序包括 Apache, sendmail 以及 GNU/Linux。 patch 补丁。包含有需发布的源代码的修订列表,目的是为了增加新功能,修改 bug 或按某 些实际需要去修正。 Path 指定文件或目录在文件系统中的位置。在 GNU/Linux 中有两种不同的路径:相对路径指 的是文件或目录相对于当前目录的位置;绝对路径指的是文件或目录相对于根目录的位置。 PAP Password Authentication Protocol(密码认证程序)。一种许多 ISP 用来认证客户 端的协议,在这一设计中,客户端会送出一组未经编码的 ID 和密码给服务器。 PCI Peripheral Components Interconnect。由 Intel 制定的总线规格,现在已成为 PC 架 构中的总线标准。它是 ISA 的继承者,而且提供了许多服务:装置、设定信息、IRQ 分享、 总线控制及其它更多的功能。 PCMCIA Personal Computer Memory Card International Association(个人计算机存储卡国 际协会)通常被简称为 “PC Card”,是便携式计算机外接口的标准,如:调制解调器,硬 盘,存储卡,以太网卡等。 pipe 一种特别的 Unix 文件形式。一个程序将资料写入 pipe,而另一个程序由 pipe 读出 资料直到结束。管道采用 FIFO(先进先出),因此资料被另一个程序读入直到顺序结束。 pixmap “pixel map” 的缩写。是 bitmapped 影像的一种。 PNG 166 银河麒麟服务器操作系统管理员手册 Portable Network Graphics(可移植网络图像文件)。该文件格式主要是给 web 使用, 它被设计成无专利的,以取代具有专利权的 GIF,而且也有一些附加的功能。 PNP Plug’N’Play(随插即用)。首先被用于 ISA 装置以便新增设定的信息,如今更广泛 地用于所有装置以便回显设定参数。正如我们所知,所有的 PCI 装置都是即插即用的。 POP Post Office Protocol(邮局协议)。这种常见的通信协议用于从 ISP 下载电子邮件。 PPP Point to Point Protocol(点对点通信协议)。是一种通过序列信号线来传送资料的 通信协议。通常被用于传送 IP 封包到网际网络,也可以和其它的通信协议一起使用,如 Novell 的 IPX 协议。 preprocessors 前置处理器。指示编译器取代在源代码中特定资料或程序片段,例如 C 的前置处理器 为 #include,#define 等。 process 进程。在操作系统中,一个进程是伴随着一个程序的执行产生的。 prompt 提示符号。在 shell 中,它是在光标前的字符串。在其后输入字符命令。 Protocol 通信协议是指不同的机器经由网络通信的方式,不管是用软件或硬件,它们定义了数据 传输时的格式。有许多的有名的通信协议,如 HTTP,FTP,TCP,和 UDP 等。 proxy 代理服务器。一台位于某一网络和网际网络间的机器,主要任务是加速多数被广泛使用 的通信协议(如 HTTP、FTP)。它包含了一个预置的快速存取,可以降低重复资料被再次要 求的成本。 quota 配额限制是限制使用者对于磁盘空间使用的一种方法。在某些文件系统上,管理者可以 对各个使用者的目录做不同的大小限制。 RAID Redundant Array of Independent Disks。始于伯克利大学资料系的一个计划,目的是 让储存的资料分散于同一数组但不同的磁盘上。 RAM Random Access Memory(随机存取内存)。是指计算机的主存储器 “Random” 也指内 存的任何一部分都能被直接存取。 read-only mode 只读模式。表示不能写入文件,只能读取内容,当然也不能修改或删除文件。 167 银河麒麟服务器操作系统管理员手册 read-write mode 读写模式。表示文件是可以被写入的,可以读取或修改文件内容,如果拥有这一权限, 也可以删除文件。 root root 是任何 Unix 系统上的超级使用者。Root 负责管理并维护整个 Unix 系统。 RFC Request For Comments(计算机与通信技术文件)。RFC 是官方的 Internet 标准文件, 由 IETF(Internet Engineering Task Force)所发行。他们描述所有使用或被要求使用的 协议,如果想知道某一种通信协议是如何运作的,就可以去找对应的 RFC 文件来读。 RPM Redhat Package Manager(红帽子软件包管理器)。一种为了产生软件套件而由 Red Hat 开发的软件包格式。它被用于许多 GNU/Linux 发行版本上,包括红旗 Linux。 run level 运行级别。是一项关于只允许某些被选定的进程存在的系统设定。在文件 /etc/inittab 中清楚地定义每个运行级别有那些进程是被允许的。 SCSI Small Computers System Interface(小型计算机系统接口),一种高效且允许多种不 同外设都能使用的总线规格。不同于 IDE,SCSI 总线的效能并不会受限于外围能接受指令 的速度。只有高阶的机器才会在主板上内建 SCSI 总线,一般的 PC 用另外插卡的方式。 server 服务器。为程序或计算机提供功能或服务让客户端可以连接进来执行命令或是取得其所 需的信息。 shadow passwords 影子密码。Unix 中的一种密码管理方式,系统中某个不是所有人都能读取的档案中存 放着加过密的密码,是现在很常用的一种密码系统。它也提供了密码时间限制的功能。 shell shell 是操作系统核心的基本接口,它提供命令行让使用者输入指令以便执行程序或系 统命令。所有 shell 都有提供命令行的功能以便自动执行任务或是常用但复杂的任务。这 些 shell 命令类似于 DOS 操作系统中的批处理文件,但是更为强大。常见的 shells 有 Bash,sh,和 tcsh. 等。 SMB Server Message Block 是 Windows(9x/2000 或 NT)所使用的通信协议,用于通过网 络共享文件或打印机。 SMTP 168 银河麒麟服务器操作系统管理员手册 Simple Mail Transfer Protocol(简单邮件传输协议),是一种用来传送电子邮件的 协议。邮件传送代理者如 sendmail 或 postfix 都使用 SMTP,他们有时也会被称为 SMTP 服务器。 socket 一种符合于任何网络连结的文件形态。 TCP Transmission Control Protocol(传输控制协议)。这是所有使用 IP 来传送网络封 包中最可靠的通信协议。TCP 加入了必要的检查,在 IP 中来确保封包被传送。和 UDP 相 反,TCP 在连接模式下运行,即在交换信息前,两端的机器就要先建立连接。 telnet 开启一个连接到远程主机,telnet 是进行远程登录最常用的方式,也有更好更安全的 方式,如 ssh。 URL Uniform Resource Locator(统一资源定位器)。一种统一且特殊格式的字符串用以分 辨在网络上的资源。这个资源可能是一个文件,一个服务器或是其它。 virtual desktops 虚拟桌面。在 X 窗口系统中,可以提供多个桌面。这一功能可以使您灵活安排工作窗 口,避免让大量的程序都挤在同一桌面上。 WAN Wide Area Network(广域网络)。 window manager 窗口管理器。一个负责图形环境 “看起来的感觉” 的程序。主要负责处理窗口的标题 栏,框架,按钮,开始和一些快捷键方式。 169

相关文章