BNU 的系统文件格式

用途

使用基本联网实用程序 (BNU) 列出并描述本地系统可访问的远程系统。

描述

缺省情况下, BNU Systems 文件 /etc/uucp/Systems 列出本地系统的用户可以使用基本联网实用程序 (BNU) 与之通信的远程计算机。 可以配置 /etc/uucp/Sysfiles 文件中指定的其他文件以及 BNU Systems 文件。 系统 文件中的每个条目都表示一个远程系统,并且本地系统上的用户无法与远程系统通信,除非该系统列示在本地 系统 文件中。 使用 BNU 设施的站点上的每台计算机上都必须存在 系统 文件。

系统 文件中的每个条目都包含:

  • 远程系统的名称
  • 用户可以连接到远程系统的时间
  • 链路类型 (直接线路或调制解调器链路)
  • 通过链路的传输速度
  • 登录到远程系统时需要的信息
    注意:
    1. 当未在 Systems 文件中列出的远程系统尝试与远程系统联系时, BNU 程序将调用 /usr/sbin/uucp/remote.unknown shell 过程。
    2. 只有具有 root 用户权限的用户才能编辑 系统 文件,该文件由 乌奇普 程序登录标识拥有。

系统文件中的字段

系统 文件中的每个条目都是包含字段和可选子字段的逻辑行。 这些字段按以下顺序显示:

SystemName 时间 [; 重试时间 ] 类型 [, 对话协议 ] 电话 登录

系统 文件中的行的每个字段中都必须有一个条目。 如果某个字段不适用于特定远程系统 (例如,在 电话 字段中,硬连线连接将不需要电话号码) ,请使用-(减号) 作为占位符。

系统 文件中的行无法换行。 此外,每个条目必须仅位于文件中的一行上。 但是, 系统 文件可以包含空行和注释行。 注释行以一个 #(磅符号)号开始。 空行将被忽略。

系统名称

SystemName 字段包含远程系统的名称。 您可以多次列出 系统 文件中的单个远程系统。 系统的每个附加条目都表示 BNU 程序在尝试在本地系统和远程系统之间建立连接时按顺序使用的备用通信路径。

时间

时间 字段包含一个字符串,该字符串指示本地系统上的用户可以与指定的远程系统进行通信的星期几和一天中的时间。 例如,以下是MoTuTh0800-1730string 指示本地用户可以在周一,周二和周四从 8 a.m联系指定的远程系统。 直到 5:30 p.m。

条目的日期部分可以是一个列表,包括由以下内容表示的任何日期或日期:Mo,Tu,We,Th,Fr,Sa,或Su. 日条目也可能是Wk如果用户可以在任何工作日联系远程系统,或者Any是否可以在每周的任何一天 (包括星期六和星期日) 使用远程系统。

使用 24 小时制表示法,输入用户可以与远程系统联系的时间作为时间范围。 例如,如果用户只能在早上时段与指定的远程系统进行通信,那么输入如下范围:0800-1200。如果用户可以在白天或晚上的任何时间与远程计算机联系,只需将时间范围留空。

还可以通过指定跨系统的时间范围来指定用户无法与远程系统进行通信的时间0000. 例如,输入0800-0600表示用户可以在 6 a.m 和 8 a.m之间的任何时候联系指定的系统。 如果为了将远程系统用于管理目的而需要在一天中的某个时间使用空闲线路,那么这很有用。

如果远程系统调用本地系统,但本地系统上的用户无法调用远程系统,那么该时间条目可能为Never.

多个 时间 字段由以下字段分隔:,(逗号)。 例如,Wk1800-0600,Sa,Su表示用户可以在任何工作日随时联系远程系统,但 6 p.m的小时之间除外。 和 6 a.m。 并随时在周六和周日进行。

RetryTime 子字段

RetryTime 子字段是一个可选子字段,用于指定尝试访问远程系统失败与 BNU 程序再次尝试与该系统通信时的重试时间之间的最短时间 (以分钟为单位)。 此子字段与字符串的其余部分之间由;(分号)。 例如,Wk1800-0600,Sa,Su;2指示如果第一次尝试建立通信失败, BNU 应继续尝试以不小于 2 分钟的时间间隔与远程系统联系。

注意:
  1. 此子字段 (如果存在) 将覆盖缺省重试时间 5 5 分钟)。
  2. 重试时间 会导致 BNU 在经过该时间后尝试与系统联系。 它指定 BNU 在尝试联系远程系统之前必须等待的 最小 时间。

TYPE

类型 字段标识用于与远程系统进行通信的连接的类型。 可用连接类型为:ACU用于使用调制解调器的电话连接,用于硬连线连接的远程系统名称 (如 SystemName 字段中所示) ,以及TCP用于使用 TCP/IP 的连接。 对于 /etc/uucp/Devices 文件或 /etc/uucp/Sysfiles 文件中指定的 Devices 文件中的连接类型,必须有相应的条目。

对话协议子字段

如果您使用TCP类型 字段中的条目,与呼叫者关联的 ConversationProtocol 子字段指定对话协议。 缺省值为 G 协议。 要使用其他子字段,请输入,(逗号) 和表示其他对话协议之一的字母 ( E)。 这些协议比 G 协议更快速,更高效。

协议 说明
g 这是缺省情况。 对于调制解调器连接, G 协议是首选的,但是它在运行 BNU 命令时涉及大量开销,因为它使用校验和和打包功能。
t 协议假定了一个没有错误的通道,并且本质上是 G 协议,而没有校验和和分组功能。 使用 协议:
  • 要与正在运行 BNU 程序的操作系统版本的站点通信
  • 与运行 Berkeley 版本的 UNIX-to-UNIX 复制程序 (UUCP) 的站点进行通信。

类型 字段为以下值时,无法使用 协议:ACU或者当正在使用调制解调器连接时。

e 使用 E 协议:
  • 要与运行 BNU 程序的站点进行通信,请执行以下操作:
  • 要与正在运行 BNU 程序的操作系统版本的站点通信。

对于调制解调器连接, E 协议不可靠。

使用 E 协议与正在运行 BNU 程序的操作系统版本的站点进行通信。 对于运行 BNU 程序的非操作系统版本的站点,请使用 E 协议。 对于运行 UNIX-to-UNIX 复制程序 (UUCP) 的 Berkeley 版本的站点,请使用 协议。

CLASS

字段通常指定指定的硬连线线路或电话线传输数据的速度。 一般是300,1200,2400,或更高版本的硬件连接设备,以及300,1200,或2400用于电话连接。

此字段还可以包含一个具有速度的字母 (例如,C1200,D1200) 来区分不同类别的拨号器。 例如,一些办事处有一个以上的电话网络,一个供内部使用,另一个供外部通讯使用。 在这种情况下,必须区分每个连接应使用哪些线。

如果 类型 字段中的条目为ACU,那么 系统 文件中的 字段将与 设备 文件中的 字段匹配,以查找要用于连接的设备。 例如,如果针对系统的 系统 文件条目hera是:

hera Any ACU 1200 3-3-5-2 ogin: nuucp ssword: oldoaktree

BNU 在 设备 文件中搜索具有以下值的条目: 类型ACU1200并连接到系统hera使用符合这些规范的第一个可用设备。

如果设备可以匹配任何速度,请输入单词Any 字段中。 注意这个词Any以大写开头A.

请不要包括 TCP/IP 连接的传输速率。 如果您未在 字段中输入传输速率,请使用-(减号) 作为占位符。

电话

对于通过调制解调器进行的电话连接, 电话 字段指定用于访问远程调制解调器的电话号码。 如果此条目表示硬连线连接,请输入一个-(减号) 作为占位符。 如果此项表示使用调制解调器的电话连接,请输入远程调制解调器的电话号码。

电话连接的 电话 字段必须包含以下所有适用项 (按以下顺序):

  1. 外部行代码
  2. 远程访问代码
  3. 数字 1 (一) 加上区域代码 (如果调制解调器不在本地区域)
  4. 三位数交换号
  5. 四位数调制解调器号

如果您的站点仅使用相对较少的电话连接,那么输入完整的电话号码是包含电话号码的最高效方法。 但是,如果您的站点包含大量使用电话线和调制解调器建立的远程连接,那么您可能更愿意使用 /etc/uucp/Dialcodes 文件来设置拨号代码缩写。

例如,如果您的站点使用调制解调器定期与同一远程站点上的其他系统进行通信,那么在 系统 文件中使用拨号代码缩写比输入每个远程调制解调器的完整电话号码更有效。

/etc/uucp/Dialcodes 文件中的拨号代码条目定义了一个字母缩写,表示电话号码的以下部分:

  • 外部行代码
  • 远程访问代码
  • 数字 1 (一) 加上区域代码 (如果调制解调器不在本地区域)
  • 三位数交换号

系统 文件条目中的 电话 字段内,输入字母缩写,后跟四位调制解调器号。

注: 对于 Systems 文件中列出的所有远程调制解调器,请在 /etc/uucp/Dialcodes 文件中 仅输入一次 字母缩写。 然后对该站点上的调制解调器的 系统 文件中的所有条目使用相同的缩写。

对于实际是交换机的调用者, 电话 字段是交换机需要到达特定计算机的令牌。 您在此处输入的令牌由 /etc/uucp/Dialcodes 文件的 Type 字段中指定的函数使用。

登录名

登录 字段指定远程系统在允许调用本地系统建立连接之前必须接收到的登录信息。 登录 字段是一系列名为 预期发送 个字符的字段和子字段。

期望-在登录字段中发送字符

输入必需的登录信息,如下所示:

[Expect Send] ...

预期 子字段包含本地系统期望从远程系统中接收的字符。 一旦本地系统接收到这些字符,它将发送另一个组成 发送 子字段的字符串。

例如,第一个 预期 子字段通常包含远程系统的登录提示,而第一个 发送 子字段通常包含远程系统登录标识。 第二个 预期 子字段包含远程密码提示,第二个 发送 子字段包含远程系统密码。

预期 子字段可以包括以以下格式输入的子字段:

Expect[-Send-Expect] ...

在这种情况下,第一个 预期 子字段仍然表示本地系统期望从远程系统接收的字符串。 但是,如果本地系统未接收到 (或无法读取) 第一个 预期 字符串,那么它会将自己的字符串 (括在方括号内的 发送 字符串) 发送到远程系统。 然后,本地系统期望从远程系统接收另一个 预期 字符串。

例如, 预期 字符串可能包含下列字符:

login:--login:

本地系统预期将接收login:请指定有效字符串。 如果远程系统发送该字符串,并且本地系统正确接收该字符串,那么 BNU 程序将继续到期望发送序列中的下一个字段。 但是,如果本地系统未接收到 login:字符串,它发送一个空字符,后跟一个新行,然后期望接收到第二个login:远程计算机的字符串。

如果远程系统未将 预期 字符串发送到本地系统,请输入""(两个双引号) ,表示空字符串,位于第一个 预期 子字段中。

每次本地系统发送字段时,它会自动在该 发送 子字段之后发送新行。 要禁用此自动换行,请输入\c(反斜杠和字母)c) 作为 发送 字符串中的最后两个字符。

可以在登录序列中包含两个特殊字符串。 该EOT字符串发送一个 ASCII EOT (传输结束) 字符,并且BREAK字符串尝试发送 ASCII BREAK 字符。

有效预期-发送序列

以下是 登录 字段的有效 expect-send 字符串:

String 说明
\N 空字符。
\b 退格字符。
\c 在字段的末尾,禁止显示通常跟在 发送 子字段中的字符后面的新行。 否则,请忽略此字符串。
\d 在发送或读取更多字符之前延迟 2 秒。
\p 暂停大约 .25 到 .50 秒。
\E 打开回显检查。
\e 关闭回显检查。
\K 发送 BREAK 字符。 这与输入的BREAK。此字符可以用于 循环调制解调器的速度
\n 新建行字符。
\r 回车符。
\s 空格字符。
\t 跳进字符。
\\ 反斜杠字符。
EOT EOT 字符。 当您输入此字符串时,系统会发送两个 EOT 换行符。
BREAK BREAK 字符。 可以将此字符用于 循环调制解调器速度
\ddd 折叠八进制数字 (ddd) 输入单个字符并发送该字符。

使用 BREAK 字符来循环一个调制解调器

通常会发送一个 BREAK 或 \K 字符来循环具有多速调制解调器的计算机上的线路速度。 例如,如果您使用 2400 波特调制解调器来联系具有多速调制解调器的远程系统,该调制解调器通常以 9600 波特的速度接听电话,那么您可以使用 \K 字符开始该系统的交谈脚本,以导致远程系统调制解调器循环到 2400 波特。

用于 TCP/IP 的条目

如果您的站点正在使用 TCP/IP ,请在 系统 文件中包含 相关 TCP/IP 条目 。 对于通过TCP/IP连接到本地系统的远程系统 ,其SystemNameTime 和Login 字段的条目与使用其他类型连接的远程系统相同。 对于 “类型 ”字段,请确定应在TCP ConversationProtocol 子字段中输入的适当TCP/IP通信协议。 输入TCP之后是一个,(逗号) ,后跟表示协议的字母。 在 电话 字段中,输入-(减号) 作为占位符。

示例

使用调制解调器来设置条目

  1. 使用调制解调器进行电话连接的标准项如下所示:
    merlin 0830-1730 ACU 1200 123-4567 in:--in: uucp1 word: rainday

    此条目允许用户联系系统merlin每天 8:30 a.m。 和 5:30 p.m。 使用ACUat1200bps。 电话号码为:123-4567. 登录名称位于merlinuucp1并且密码为rainday。本地系统期望该短语in:在发送登录名之前。 如果本地系统未接收到该短语in:,它将发送一个空字符和一个换行符,并再次期望该短语。

  2. 要使用1200baud 调制解调器与具有多速调制解调器的系统联系,进行类似于以下内容的输入:
    athena Any ACU 1200 123-7654 \K\K in:--in: uucpa word:  shield

    \K在登录脚本的前面指示远程调制解调器向下循环一个速度。 如果调制解调器有三个速度,9600,24001200,第一个\K字符导致它循环到2400baud 设置,以及第二个\K字符导致它使用1200baud 设置。 (第三次\K使调制解调器重新开始循环,返回至9600波特率

使用直接连接设置条目

本地系统和远程系统之间的硬连线连接的标准条目如下所示:

hera  Any  hera  1200  -  login:--login: uzeus  word:  thunder

远程系统是hera,在任何时候都可以调用。 类型 字段中的条目也为hera,指示以下位置的目录连接:1200bps ( 字段)。 电话 字段中有一个占位符,因为不需要任何电话号码。

使用 TCP/IP 连接设置条目

为了在 系统 文件中生成适当的条目,请决定要在 TCP 调用者 子字段中输入的适当 TCP/IP 对话协议。 例如,在 系统 文件中输入以下内容以使用 TCP/IP 来连接到系统venus使用缺省 G 协议:
venus  Any  TCP  -  -  in:--in: uzeus  word: lamplight

将样本登录字段中的 期望 字符替换为您要为其建立连接的远程系统的相应登录提示,登录提示,密码提示和密码。

使用 Dialcode 缩写

要使用 /etc/uucp/Dialcodes 文件中定义的拨号代码缩写,请在 Systems 文件中输入以下内容:

merlin Any ACU 1200 local8784 in:--in: uucp1 word: magic

这假定有一个拨号代码的条目local存在于 迪亚科德斯 文件中。 例如,如下条目:

local 9=445

迪亚科德斯 文件中,将导致 BNU 将电话号码扩展为9=4458784.

为本地系统和远程系统设置条目

对于两个系统之间的直接连接,系统上的 系统 文件zeus包含远程系统的以下条目hera:

hera Any hera 1200 - "" \r\d\r\d\r in:--in: uzeus word: thunder

系统上的 系统 文件hera包含系统的以下条目zeus:

zeus Any zeus 1200 - "" \r\d\r\d\r in:--in: uhera word: lostleaf

文件

描述
/etc/uucp 目录 包含 BNU 的所有配置文件,其中包括一个 系统 文件。
/etc/uucp/Sysfiles 文件 /etc/uucp/Systems 文件指定可能的备用文件夹。
/etc/uucp/Devices 文件 包含有关可用设备的信息。
/etc/uucp/Dialcodes 文件 包含拨号代码缩写。
/etc/uucp/Permissions 文件 描述远程系统的访问权限。
/usr/sbin/uucp/remote.unknown 文件 记录来自未知系统的联系人。