本章介绍在修改与计算机相关的数据库文件之后如何启动 UUCP 操作。本章包含有关在运行 Solaris OS 的计算机上设置和维护 UUCP 的过程和疑难解答的信息,如下所示:
下表除了提供本章中包含的每个过程的简短说明外,还提供了指向这些过程的链接。
表 25–1 UUCP 管理的任务列表
任务 |
说明 |
参考 |
---|---|---|
允许远程计算机访问您的系统 |
编辑 /etc/passwd 文件以添加用于标识计算机的项,将允许这些计算机访问您的系统。 | |
启动 UUCP |
使用所提供的 shell 脚本启动 UUCP。 | |
启用 UUCP 以使用 TCP/IP |
编辑 /etc/inetd.conf 和 /etc/uucp/Systems 文件以激活将使用 TCP/IP 的 UUCP。 | |
解决一些常见的 UUCP 问题 |
使用诊断步骤检查有故障的调制解调器或 ACU。 | |
使用诊断步骤调试传输。 |
要正确处理来自远程计算机的传入 UUCP (uucico) 请求,每台计算机都必须登录到您的系统中。
要允许远程计算机访问您的系统,需要按照以下步骤向 /etc/passwd 文件中添加项:
成为超级用户或承担等效角色。
角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”。有关如何使用主管理员配置文件配置角色,请参见《系统管理指南:基本管理》中的第 2 章 “使用 Solaris Management Console(任务)”。
编辑 /etc/passwd 文件并添加用于标识计算机的项,以允许该计算机访问您的系统。
对于允许使用 UUCP 连接访问您的系统的远程计算机,放入 /etc/passwd 文件中的项通常为:
Ugobi:*:5:5:gobi:/var/spool/uucppublic:/usr/lib/uucp/uucico |
根据约定,远程计算机的登录名是前面带有大写字母 U 的计算机名。请注意,名称不应超过八个字符。否则,可能需要截断或缩写该名称。
上面的项说明,Ugobi 请求的登录由 /usr/lib/uucp/uucico 回答。起始目录为 /var/spool/uucppublic。口令从 /etc/shadow 文件中获取。您必须与远程计算机的 UUCP 管理员协调口令和登录名。然后,远程管理员必须将包含登录名和未加密的口令的相应项添加到远程计算机的 Systems 文件中。
与其他系统的 UUCP 管理员协调您的计算机名。
UUCP 包含执行以下操作的四种 shell 脚本:轮询远程计算机、重新安排传输、清除旧的日志文件和不成功的传输。这些脚本如下所示:
uudemon.poll
uudemon.hour
uudemon.admin
uudemon.cleanup
这些 shell 脚本应定期执行以确保 UUCP 运行正常。如果选择完全安装,则在 Solaris 安装期间,会自动在 /usr/lib/uucp/uudemon.crontab 中创建用于运行这些脚本的 crontab 文件。否则,该文件将在安装 UUCP 软件包时创建。
您也可以手动运行 UUCP shell 脚本。以下是可以针对特定计算机进行调整的原型 uudemon.crontab 文件:
# #ident "@(#)uudemon.crontab 1.5 97/12/09 SMI" # # This crontab is provided as a sample. For systems # running UUCP edit the time schedule to suit, uncomment # the following lines, and use crontab(1) to activate the # new schedule. # #48 8,12,16 * * * /usr/lib/uucp/uudemon.admin #20 3 * * * /usr/lib/uucp/uudemon.cleanup #0 * * * * /usr/lib/uucp/uudemon.poll #11,41 * * * * /usr/lib/uucp/uudemon.hour |
缺省情况下,UUCP 操作被禁用。要启用 UUCP,请在 uudemon.crontab 文件中编辑时间安排并取消对相应行的注释。
要激活 uudemon.crontab 文件,请执行以下操作:
成为超级用户或承担等效角色。
角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”。有关如何使用主管理员配置文件配置角色,请参见《系统管理指南:基本管理》中的第 2 章 “使用 Solaris Management Console(任务)”。
根据需要,编辑 /usr/lib/uucp/uudemon.crontab 文件并更改相应项。
通过发出以下命令激活 uudemon.crontab 文件:
crontab < /usr/lib/uucp/uudemon.crontab |
缺省 uudemon.poll shell 脚本每小时读取一次 /etc/uucp/Poll 文件。如果安排轮询 Poll 文件中的所有计算机,则会将工作文件 (C.sysnxxxx) 放在 /var/spool/uucp/nodename 目录中。nodename 表示计算机的 UUCP 节点名称。
安排 shell 脚本在 uudemon.hour 之前每小时运行一次,以便在调用 uudemon.hour 时工作文件处于正确位置。
缺省 uudemon.hour shell 脚本执行以下操作:
调用 uusched 程序以在假脱机目录中搜索尚未处理的工作文件 (C.)。然后,脚本会安排将这些文件传输到远程计算机。
调用 uuxqt 守护进程以在假脱机目录中搜索执行文件 (X.),这些文件已传送到您的计算机,但在传送时尚未对其进行处理。
缺省情况下,uudemon.hour 每小时运行两次。如果预计远程计算机调用失败率比较高,则可能需要更频繁地运行 uudemon.hour。
缺省 uudemon.admin shell 脚本执行以下操作:
运行带有 p 和 q 选项的 uustat 命令。q 报告已排队的工作文件 (C.)、数据文件 (D.) 和执行文件 (X.) 的状态。p 列显锁定文件 (/var/spool/locks ) 中列出的联网进程的进程信息。
缺省 uudemon.cleanup shell 脚本执行以下操作:
从 /var/uucp/.Log 目录中收集各台计算机的日志文件,合并这些文件,并将这些文件放入包含其他旧日志信息的 /var/uucp/.Old 目录中。
删除假脱机文件中保存了七天或七天以上的工作文件 (C.) 和数据文件 (D.),以及保存了两天或两天以上的执行文件 (X.)。
将无法传送的邮件返回给发件人。
要在 TCP/IP 网络中运行 UUCP,需要按照本节中的说明进行一些修改。
成为超级用户或承担等效角色。
角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”。有关如何使用主管理员配置文件配置角色,请参见《系统管理指南:基本管理》中的第 2 章 “使用 Solaris Management Console(任务)”。
编辑 /etc/uucp/Systems 文件以确保项中具有以下字段:
System-Name Time TCP Port networkname Standard-Login-Chat
典型项与以下内容类似:
rochester Any TCP - ur-seneca login: Umachine password: xxx |
请注意,networkname 字段允许您显式指定 TCP/IP 主机名。此功能对于一些站点很重要。在上面的示例中,该站点具有 UUCP 节点名称 rochester,该名称与 TCP/IP 主机名 ur-seneca 不同。此外,完全不同的计算机可以轻易运行 UUCP 并具有 TCP/IP 主机名 rochester。
Systems 文件中的 Port 字段应具有项 -。此语法等效于将该项列为 uucp。几乎在所有情况下,networkname 都与系统名相同,并且 Port 字段为 -,这表示将使用 services 数据库中的标准 uucp 端口。in.uucpd 守护进程期望远程计算机发送其登录名和口令以进行验证,并且 in.uucpd 会提示输入登录名和口令,这与 getty 和 login 很相似。
编辑 /etc/inet/services 文件以设置 UUCP 端口:
uucp 540/tcp uucpd # uucp daemon |
您不需要更改项。但是,如果计算机运行的是 NIS 或 NIS+ 名称服务,则应更改 /etc/services 的 /etc/nsswitch.conf 项以便先检查 files,然后检查 nis 或 nisplus。
验证是否已启用 UUCP。
# svcs network/uucp |
UUCP 服务由服务管理工具管理。要查询此服务的状态,可以使用 svcs 命令。有关服务管理工具的概述,请参阅《系统管理指南:基本管理》中的第 14 章 “管理服务(概述)”。
(可选的)如果需要,请通过键入以下内容来启用 UUCP:
# inetadm -e network/uucp |
设置 UUCP 之后,很显然需要进行维护。本节介绍与安全、维护和疑难解答有关的各项 UUCP 任务。
缺省 /etc/uucp/Permissions 文件可最大程度地确保 UUCP 链路的安全。缺省 Permissions 文件不包含任何项。
可以为每台远程计算机设置其他参数以定义以下内容:
远程计算机从您的计算机接收文件的方法
远程计算机具有读写权限的目录
远程计算机可用于远程执行的命令
典型 Permissions 项如下所示:
MACHINE=datsun LOGNAME=Udatsun VALIDATE=datsun COMMANDS=rmail REQUEST=yes SENDFILES=yes |
此项允许向“标准”UUCP 目录(而非系统中的任何位置)发送文件,或从该目录接收文件。此项还将使 UUCP 用户名在登录时得到验证。
UUCP 不需要很多维护工作。但是,必须确保 crontab 文件位于如何启动 UUCP一节中所述的位置。您应关注邮件文件和公共目录大小的增加。
UUCP 程序和脚本生成的所有电子邮件都将发送到用户 ID uucp。如果不经常以该用户身份登录,可能不会意识到邮件不断地增加并占用了磁盘空间。要解决此问题,请在 /etc/mail/aliases 中创建一个别名,并将此类电子邮件重定向到 root 或您自己以及负责维护 UUCP 的其他人员。修改 aliases 文件之后,请记住运行 newaliases 命令。
目录 /var/spool/uucppublic 是每个系统中缺省情况下 UUCP 可以复制文件的位置。每个用户都具有转至 /var/spool/uucppublic 并读写该目录中的文件的权限。但是,该目录的 Sticky 位已设置,目录的模式为 01777。因此,用户不能删除已复制到该目录中的文件和属于 uucp 的文件。只有您(以 root 或 uucp 身份登录的 UUCP 管理员)可以删除该目录中的文件。要防止该目录中的文件毫无控制地增加,应确保定期删除其中的文件。
如果用户不方便进行此维护,建议使用 uuto 和 uupick,而不要删除出于安全原因而设置的 Sticky 位。有关使用 uuto 和 uupick 的说明,请参见 uuto(1C) 手册页。也可以将目录的模式限制为仅适用于某组用户。如果不希望出现某用户将磁盘填满的情况,甚至可以拒绝 UUCP 访问磁盘。
可以使用多种方法检查调制解调器或其他 ACU 工作是否正常。
成为超级用户或承担等效角色。
角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”。有关如何使用主管理员配置文件配置角色,请参见《系统管理指南:基本管理》中的第 2 章 “使用 Solaris Management Console(任务)”。
# uustat -q |
通过特定线路呼叫并尝试列显调试信息。
必须在 /etc/uucp/Devices 文件中将该线路定义为 direct。如果要将该线路连接至自动拨号器,必须在命令行的结尾添加电话号码,否则必须将该设备设置为 direct。请键入:
# cu -d -lline |
line 为 /dev/cua/a。
如果无法联系特定计算机,可以使用 Uutry 和 uucp 检查与该计算机的通信。
成为超级用户或承担等效角色。
角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”。有关如何使用主管理员配置文件配置角色,请参见《系统管理指南:基本管理》中的第 2 章 “使用 Solaris Management Console(任务)”。
# /usr/lib/uucp/Uutry -r machine |
将 machine 替换为无法联系的计算机的主机名。此命令执行以下操作:
启动包含调试的传送守护进程 (uucico)。如果您是 root,则可以获取更多调试信息。
将调试输出定向到 /tmp/machine。
通过发出以下命令将调试输出列显到终端:
# tail -f |
按 Ctrl-C 组合键以终止输出。如果要保存输出,可以从 /tmp/machine 中复制输出。
# uucp -r file machine\!/dir/file |
使用要传送的文件的名称。
使用要复制到的计算机的名称。
指定其他计算机的文件的位置。
发出以下命令:
# Uutry |
如果仍然无法解决问题,可能需要联系当地的支持代表。请保存可以帮助诊断问题的调试输出。
也可以通过 -x n 选项来降低或升高 Uutry 提供的调试级别。n 表示调试级别。Uutry 的缺省调试级别为 5。
调试级别 3 提供有关建立连接的时间和方式的基本信息,而不提供很多关于传输的信息。但是,调试级别 9 会提供有关传输过程的详细信息。请注意,调试在传送开始和结束时都将进行。如果要对中等大小的文本使用高于 5 的级别,可以联系其他站点的管理员以决定更改该级别的时间。
如果在联系特定计算机时出现问题,请验证 Systems 文件中是否具有最新的信息。对于某个计算机而言,可能过期的信息包括:
UUCP 有两种类型的错误消息:ASSERT 和 STATUS。
异常中止进程时,将会在 /var/uucp/.Admin/errors 中记录 ASSERT 错误消息。这些消息包括文件名、sccsid、行号和文本。这些消息通常由于系统问题而产生。
STATUS 错误消息存储在 /var/uucp/.Status 目录中。该目录包含您的计算机尝试与其通信的每台远程计算机的独立文件。这些文件包含已尝试通信的状态信息以及通信是否成功的状态信息。