系统管理指南:网络服务

第 25 章 管理 UUCP(任务)

本章介绍在修改与计算机相关的数据库文件之后如何启动 UUCP 操作。本章包含有关在运行 Solaris OS 的计算机上设置和维护 UUCP 的过程和疑难解答的信息,如下所示:

UUCP 管理(任务列表)

下表除了提供本章中包含的每个过程的简短说明外,还提供了指向这些过程的链接。

表 25–1 UUCP 管理的任务列表

任务 

说明 

参考 

允许远程计算机访问您的系统 

编辑 /etc/passwd 文件以添加用于标识计算机的项,将允许这些计算机访问您的系统。

如何添加 UUCP 登录

启动 UUCP 

使用所提供的 shell 脚本启动 UUCP。 

如何启动 UUCP

启用 UUCP 以使用 TCP/IP 

编辑 /etc/inetd.conf 和 /etc/uucp/Systems 文件以激活将使用 TCP/IP 的 UUCP。

如何针对 TCP/IP 激活 UUCP

解决一些常见的 UUCP 问题 

使用诊断步骤检查有故障的调制解调器或 ACU。 

如何检查有故障的调制解调器或 ACU

 

使用诊断步骤调试传输。  

如何调试传输

添加 UUCP 登录

要正确处理来自远程计算机的传入 UUCP (uucico) 请求,每台计算机都必须登录到您的系统中。

Procedure如何添加 UUCP 登录

要允许远程计算机访问您的系统,需要按照以下步骤向 /etc/passwd 文件中添加项:

  1. 成为超级用户或承担等效角色。

    角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”。有关如何使用主管理员配置文件配置角色,请参见《系统管理指南:基本管理》中的第 2  章 “使用 Solaris Management Console(任务)”。

  2. 编辑 /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 文件中。

  3. 与其他系统的 UUCP 管理员协调您的计算机名。

    同样,必须与希望通过 UUCP 访问的所有计算机的 UUCP 管理员协调您的计算机名和口令。

启动 UUCP

UUCP 包含执行以下操作的四种 shell 脚本:轮询远程计算机、重新安排传输、清除旧的日志文件和不成功的传输。这些脚本如下所示:

这些 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 文件中编辑时间安排并取消对相应行的注释。


Procedure如何启动 UUCP

要激活 uudemon.crontab 文件,请执行以下操作:

  1. 成为超级用户或承担等效角色。

    角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”。有关如何使用主管理员配置文件配置角色,请参见《系统管理指南:基本管理》中的第 2  章 “使用 Solaris Management Console(任务)”。

  2. 根据需要,编辑 /usr/lib/uucp/uudemon.crontab 文件并更改相应项。

  3. 通过发出以下命令激活 uudemon.crontab 文件:


    crontab < /usr/lib/uucp/uudemon.crontab
    

uudemon.poll Shell 脚本

缺省 uudemon.poll shell 脚本每小时读取一次 /etc/uucp/Poll 文件。如果安排轮询 Poll 文件中的所有计算机,则会将工作文件 (C.sysnxxxx) 放在 /var/spool/uucp/nodename 目录中。nodename 表示计算机的 UUCP 节点名称。

安排 shell 脚本在 uudemon.hour 之前每小时运行一次,以便在调用 uudemon.hour 时工作文件处于正确位置。

uudemon.hour Shell 脚本

缺省 uudemon.hour shell 脚本执行以下操作:

缺省情况下,uudemon.hour 每小时运行两次。如果预计远程计算机调用失败率比较高,则可能需要更频繁地运行 uudemon.hour。

uudemon.admin Shell 脚本

缺省 uudemon.admin shell 脚本执行以下操作:

uudemon.cleanup Shell 脚本

缺省 uudemon.cleanup shell 脚本执行以下操作:

运行基于 TCP/IP 的 UUCP

要在 TCP/IP 网络中运行 UUCP,需要按照本节中的说明进行一些修改。

Procedure如何针对 TCP/IP 激活 UUCP

  1. 成为超级用户或承担等效角色。

    角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”。有关如何使用主管理员配置文件配置角色,请参见《系统管理指南:基本管理》中的第 2  章 “使用 Solaris Management Console(任务)”。

  2. 编辑 /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 很相似。

  3. 编辑 /etc/inet/services 文件以设置 UUCP 端口:


    uucp    540/tcp    uucpd        # uucp daemon

    您不需要更改项。但是,如果计算机运行的是 NIS 或 NIS+ 名称服务,则应更改 /etc/services 的 /etc/nsswitch.conf 项以便先检查 files,然后检查 nis 或 nisplus。

  4. 验证是否已启用 UUCP。


    # svcs network/uucp
    

    UUCP 服务由服务管理工具管理。要查询此服务的状态,可以使用 svcs 命令。有关服务管理工具的概述,请参阅《系统管理指南:基本管理》中的第 14  章 “管理服务(概述)”。

  5. (可选的)如果需要,请通过键入以下内容来启用 UUCP:


    # inetadm -e network/uucp
    

UUCP 安全和维护

设置 UUCP 之后,很显然需要进行维护。本节介绍与安全、维护和疑难解答有关的各项 UUCP 任务。

设置 UUCP 安全

缺省 /etc/uucp/Permissions 文件可最大程度地确保 UUCP 链路的安全。缺省 Permissions 文件不包含任何项。

可以为每台远程计算机设置其他参数以定义以下内容:

典型 Permissions 项如下所示:


MACHINE=datsun LOGNAME=Udatsun VALIDATE=datsun 

COMMANDS=rmail REQUEST=yes SENDFILES=yes

此项允许向“标准”UUCP 目录(而非系统中的任何位置)发送文件,或从该目录接收文件。此项还将使 UUCP 用户名在登录时得到验证。

定期 UUCP 维护

UUCP 不需要很多维护工作。但是,必须确保 crontab 文件位于如何启动 UUCP一节中所述的位置。您应关注邮件文件和公共目录大小的增加。

UUCP 电子邮件

UUCP 程序和脚本生成的所有电子邮件都将发送到用户 ID uucp。如果不经常以该用户身份登录,可能不会意识到邮件不断地增加并占用了磁盘空间。要解决此问题,请在 /etc/mail/aliases 中创建一个别名,并将此类电子邮件重定向到 root 或您自己以及负责维护 UUCP 的其他人员。修改 aliases 文件之后,请记住运行 newaliases 命令。

UUCP 公共目录

目录 /var/spool/uucppublic 是每个系统中缺省情况下 UUCP 可以复制文件的位置。每个用户都具有转至 /var/spool/uucppublic 并读写该目录中的文件的权限。但是,该目录的 Sticky 位已设置,目录的模式为 01777。因此,用户不能删除已复制到该目录中的文件和属于 uucp 的文件。只有您(以 root 或 uucp 身份登录的 UUCP 管理员)可以删除该目录中的文件。要防止该目录中的文件毫无控制地增加,应确保定期删除其中的文件。

如果用户不方便进行此维护,建议使用 uuto 和 uupick,而不要删除出于安全原因而设置的 Sticky 位。有关使用 uuto 和 uupick 的说明,请参见 uuto(1C) 手册页。也可以将目录的模式限制为仅适用于某组用户。如果不希望出现某用户将磁盘填满的情况,甚至可以拒绝 UUCP 访问磁盘。

UUCP 疑难解答

这些过程介绍如何解决常见 UUCP 问题。

Procedure如何检查有故障的调制解调器或 ACU

可以使用多种方法检查调制解调器或其他 ACU 工作是否正常。

  1. 成为超级用户或承担等效角色。

    角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”。有关如何使用主管理员配置文件配置角色,请参见《系统管理指南:基本管理》中的第 2  章 “使用 Solaris Management Console(任务)”。

  2. 通过运行以下命令获取联系失败的计数和原因:


    # uustat -q
    
  3. 通过特定线路呼叫并尝试列显调试信息。

    必须在 /etc/uucp/Devices 文件中将该线路定义为 direct。如果要将该线路连接至自动拨号器,必须在命令行的结尾添加电话号码,否则必须将该设备设置为 direct。请键入:


    # cu -d -lline
    

    line 为 /dev/cua/a。

Procedure如何调试传输

如果无法联系特定计算机,可以使用 Uutry 和 uucp 检查与该计算机的通信。

  1. 成为超级用户或承担等效角色。

    角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”。有关如何使用主管理员配置文件配置角色,请参见《系统管理指南:基本管理》中的第 2  章 “使用 Solaris Management Console(任务)”。

  2. 尝试联系:


    # /usr/lib/uucp/Uutry -r machine
    

    将 machine 替换为无法联系的计算机的主机名。此命令执行以下操作:

    • 启动包含调试的传送守护进程 (uucico)。如果您是 root,则可以获取更多调试信息。

    • 将调试输出定向到 /tmp/machine。

    • 通过发出以下命令将调试输出列显到终端:


      # tail -f
      

      按 Ctrl-C 组合键以终止输出。如果要保存输出,可以从 /tmp/machine 中复制输出。

  3. 如果 Uutry 未确定该问题,请尝试将作业排队:


    # uucp -r file machine\!/dir/file
    
    file

    使用要传送的文件的名称。

    machine

    使用要复制到的计算机的名称。

    /dir/file

    指定其他计算机的文件的位置。

  4. 发出以下命令:


    # Uutry
    

    如果仍然无法解决问题,可能需要联系当地的支持代表。请保存可以帮助诊断问题的调试输出。


    注 –

    也可以通过 -x n 选项来降低或升高 Uutry 提供的调试级别。n 表示调试级别。Uutry 的缺省调试级别为 5。

    调试级别 3 提供有关建立连接的时间和方式的基本信息,而不提供很多关于传输的信息。但是,调试级别 9 会提供有关传输过程的详细信息。请注意,调试在传送开始和结束时都将进行。如果要对中等大小的文本使用高于 5 的级别,可以联系其他站点的管理员以决定更改该级别的时间。


检查 UUCP /etc/uucp/Systems 文件

如果在联系特定计算机时出现问题,请验证 Systems 文件中是否具有最新的信息。对于某个计算机而言,可能过期的信息包括:

检查 UUCP 错误消息

UUCP 有两种类型的错误消息:ASSERT 和 STATUS。

检查基本信息

可以使用多个命令检查基本联网信息: