BNU 的许可权文件格式

用途

为调用或由本地系统调用的远程系统指定 BNU 许可权。

描述

/etc/uucp/Permissions 文件指定使用基本联网实用程序 (BNU) 程序与本地系统通信的远程系统的访问权。 对于本地系统使用 BNU 联系的每个系统, 许可权 文件都包含一个条目。 这些条目对应于 /etc/uucp/Systems 文件中的条目或 /etc/uucp/Sysfiles 文件中列出的格式相同的其他系统文件。 对于允许远程系统在使用 BNU 登录到本地系统时使用的每个登录标识, 许可权 文件也包含一个条目。

许可权 文件中的条目指定:

  • 这是远程系统的登录标识
  • 允许远程系统将文件发送到本地系统以及从本地系统接收文件的情况
  • 允许在本地系统上执行的远程系统命令。

许可权 文件中设置的访问许可权会影响整个远程系统。 它们与在这些远程系统上工作的各个用户有关。 许可权限制 乌奇科乌克斯特 守护程序活动限制 全部 用户在指定远程系统上对本地系统进行 BNU 访问。 发送和接收文件以及执行命令的缺省许可权是非常严格的。 但是,该文件还提供了一些选项,如果您希望允许远程系统对本地系统具有较少限制的访问权,那么可以使用这些选项来更改这些缺省值。

许可权 文件中的每个条目都是逻辑行。 如果条目过长而无法在屏幕上显示,请将该物理行中的最后一个字符设置为\(反斜杠) ,它指示连续,然后在下一个物理行上输入条目的剩余部分。

每个逻辑行都包含一个必需条目,用于指定登录标识 (LOGNAME 条目) 或远程系统的名称 (MACHINE 条目) ,后跟可选的选项/值对 (用空格或制表符分隔)。 LOGNAME 和 MACHINE 条目选项/值对 都由 "名称/值" 对组成。 "名称/值" 对由条目或选项的名称组成,后跟=(等号) 以及条目或选项的值,并且在对中不允许使用空格。

许可权 文件还可以包含注释行和空白行。 注释行以 a 开头#(英镑符号) 并占领整个物理线。 空行将被忽略。

注意:
  1. 许可权 文件中设置的访问许可权会影响所有 BNU 通信,包括通过邮件设施或 TCP/IP 连接进行的通信。 许可权 文件中的条目 会影响在指定本地系统上具有有效登录权限的远程系统用户。 远程登录命令 (例如 国际特恩) 连接到系统并在系统上登录,而不考虑本地许可权 文件中设置的限制。 具有有效登录标识的用户仅受针对该用户的用户标识 (UID) 和组标识 (GID) 建立的许可权代码的约束。
  2. 提供了使用 许可权 文件的 示例 。 这些示例包括对远程系统发出缺省或受限访问,以及组合 LOGNAME 和 MACHINE 条目。

LOGNAME 和 MACHINE 条目

许可权 文件包含两种类型的必需条目:

描述
LOGNAME 指定允许与本地系统联系的远程系统的登录标识和访问权限。
机器 指定本地系统可以访问的远程系统的名称和访问许可权。

LOGNAME 和 MACHINE 条目都指定了 远程系统可以在本地系统上执行的操作。 当远程系统与本地系统联系时, LOGNAME 条目生效。 当本地系统与远程系统联系时, MACHINE 条目生效。 在两种类型的条目中,授予远程系统的许可权可以相同,也可以不同。

例如,如果远程系统hera联系本地系统zeus并以以下身份登录:uheraLOGNAME=uhera许可权 文件中的条目zeus控制哪些操作系统hera可以接受系统zeus. 如果系统zeus联系人系统heraMACHINE=hera许可权 文件中的条目zeus控制哪些操作系统hera可以接受系统zeus.

最严格的 LOGNAME 和 MACHINE 条目是一个没有任何选项/值对的条目,这意味着远程系统对本地系统的访问权是由缺省许可权定义的。 要覆盖这些缺省值,请在条目中包含选项/值对。 可用选项如下:

这些选项允许不同的远程系统在使用 BNU 文件传输和命令执行程序时对本地系统进行不同类型的访问。 如果 LOGNAME 和 MACHINE 条目都包含相同的选项,那么这两个条目可以是 合并为单个条目

LOGNAME 条目

LOGNAME 条目为允许登录到本地系统以执行 乌奇科乌克斯特 守护程序事务的远程系统指定一个或多个登录标识,并指定这些远程系统的访问许可权。 登录标识可以是任何有效的登录名。 LOGNAME 条目指定远程系统在与本地系统联系时对该系统的许可权。 LOGNAME 条目的格式如下所示:

LOG NAME=登录ID [ : 登录ID...] [选项=值 . . .]

远程系统使用 LoginID 列表中列出的其中一个标识登录。 在使用该标识登录时,远程系统具有在 选项= 列表中指定的许可权。 正在调用的远程系统必须列示在本地系统上的 /etc/uucp/Systems 文件或 /etc/uucp/Sysfiles 中指定的备用 uucico 服务系统文件中。

要指定多个具有相同选项/值对的登录标识,请在同一 LOGNAME 条目中列出这些标识,用冒号分隔,但不带空格。 要指定具有不同选项/值对的多个登录标识,请在单独的 LOGNAME 条目中列出这些标识。

最严格的 LOGNAME 条目是没有任何选项/值对的条目。 然后,远程系统对本地系统的访问权由以下缺省许可权定义:

  • 远程系统无法要求从本地系统接收任何已排队的文件。
  • 当远程系统已完成其当前操作时,本地系统无法将已排队的工作发送至调用远程系统。 相反,仅当本地系统与远程系统联系时,才能发送已排队的工作。
  • 除了本地系统上的 BNU 公共目录 (/var/spool/uucppublic/Syste mName) 之外,远程系统无法将文件发送到 (写入) 或从 (读取) 任何位置传输文件。
  • 远程系统上的用户仅可以在本地系统上执行缺省命令。 (缺省命令集仅包含 邮件 命令,用户通过发出 邮件 命令来隐式执行此命令。)

要覆盖这些缺省值,请在 LOGNAME 条目中包含 选项/值对

注: 登录标识只能出现在一个 LOGNAME 条目中。 如果有一个用于登录标识的条目,那么仅该条目就足以用于使用该登录标识的所有远程系统。

注意: 允许远程系统使用 乌奇普 登录标识登录到本地系统会严重危害系统的安全性。 使用 乌奇普 标识登录的远程系统可以显示并可能修改本地 系统许可权 文件 (这取决于 LOGNAME 条目中指定的其他许可权)。 强烈建议您为远程系统创建其他 BNU 登录标识,并将 乌奇普 登录标识保留给负责在本地系统上管理 BNU 的人员。 与本地系统联系的每个远程系统都应该具有具有唯一 UID 的唯一登录标识。

MACHINE 条目

对于允许本地系统访问的每个远程系统, 许可权 文件都包含一个 MACHINE 条目。 当本地系统与远程系统联系时, MACHINE 条目中指定的访问权限会影响远程系统对本地系统的访问。 以下为 MACHINE 条目的格式:

M ACHINE=系统名称 [ : 系统名称...] [选项=值 . . .]

MACHINE = 其他 [选项=值 . . .]

最严格的 MACHINE 条目类型 (使用缺省许可权) 是:

M ACHINE=系统名称 [ : 系统名称...]

系统名称之间用冒号分隔。 该条目不包含空格或跳进字符。 没有选项/值对,表示远程系统对本地系统的访问权由以下缺省许可权定义:

  • 远程系统无法要求接收任何排队等待在调用远程系统上运行的本地系统文件。
  • 远程系统无法访问 (读取) 任何文件,但本地系统上公共目录中的文件除外。
  • 远程系统只能将 (写入) 文件发送到本地公共目录。
  • 远程系统只能执行在本地系统上设置的缺省命令中的那些命令。

要覆盖这些缺省值,请在 LOGNAME 条目中包含 选项/值对

MACHINE 条目中的 SystemName 列表可能包含多个不同的远程系统。 MACHINE 条目也可以是:

MACHINE = 其他 [选项=值 . . .]

其中单词 OTHER 表示系统名称。 这将为 许可权 文件中的现有 MACHINE 条目中未指定的远程系统设置访问许可权。 MACHINE = 其他 条目在以下情况下很有用:

  • 当您的安装包含大量远程系统时,本地系统会定期联系这些系统以获取 乌奇科乌克斯特 守护程序事务
  • 当偶尔需要更改 MACHINE 条目中的 COMMANDS 选项中指定的缺省命令集时。

不是为一大组远程系统中的每个系统创建单独的 MACHINE 条目,而是设置一个 MACHINE = 其他 条目,其中包含在 COMMANDS 选项条目中指定的相应命令。 然后,当需要更改缺省命令集时,仅更改一个条目中的命令列表,而不是更改多个条目中的命令列表。 通常, MACHINE = 其他 条目还会为未识别的远程系统指定更严格的选项值。

注: 除非本地系统上的 许可权 文件中有一个 MACHINE = 其他 条目,否则本地系统无法调用任何未按名称列示在 MACHINE 条目中的远程系统。

选项/值对

选项/值对可以与 LOGNAME 和 MACHINE 条目一起使用。 缺省许可权是限制性的,但可以使用一个或多个选项/值对更改缺省许可权。 这些选项允许不同的远程系统在使用 BNU 文件传输和命令执行程序时对本地系统进行不同类型的访问。

CALLBACK 选项

包含在 LOGNAME 条目中的 CALLBACK 选项指定在本地系统与目标远程系统联系之前不会发生任何文件传输事务。 CALLER 选项的格式为:

回调=否

回调=是
注: 如果两个系统都在各自的 许可权 文件中包含 CALLBACK=yes 选项,那么它们无法使用 BNU 相互通信。

缺省值 CALLBACK=no指定远程系统可以与本地系统联系并开始传输文件,而不需要本地系统启动操作。

为了实现更严格的安全性,请使用 CALLBACK=yes 选项来指定本地系统必须先与远程系统联系,然后远程系统才能将任何文件传输到本地系统。

如果您在 LOGNAME 条目中包含 CALLBACK=yes 选项,那么还必须具有该系统的 MACHINE 条目,以便您的系统可以将其回调。 您可以具有一个 MACHINE = 其他 条目,以允许系统调用任何远程系统,包括指定了 CALLBACK=yes 选项的远程系统。

对于大多数站点而言,缺省值 CALLBACK=no通常已足够。

COMMANDS 选项

仅包含在 MACHINE 条目中的 COMMANDS 选项指定在该 MACHINE 条目中列出的远程系统可以在本地系统上执行的命令。 COMMANDS 选项的格式为以下任一值:

命令 =命令名称 [ : 命令名称...]

COMMANDS=ALL

缺省值为 COMMANDS=rmail:uucp。 在缺省情况下,远程系统仅可以在本地系统上运行 邮件乌奇普 命令。 (用户输入 邮件 命令,然后该命令将调用 邮件 命令。)

COMMANDS 选项中列出的命令将覆盖缺省值。 您还可以指定本地系统上存储用户在远程系统上发出的命令的那些位置的路径名。 当 乌克斯特 守护程序的缺省路径不包含命令所在的目录时,指定路径名非常有用。

注: uuxqt 守护程序的缺省路径仅包含 /usr/bin 目录。

要允许某个远程系统在本地系统上执行所有可用命令,请使用 COMMANDS=ALL 格式。 这指定可用于指定的远程系统的命令集包括本地系统上的用户可用的所有命令。

注: COMMANDS 选项可能危及系统的安全。 请非常谨慎地使用它。

NOREAD 和 NOWRITE 选项

在 LOGNAME 和 MACHINE 条目中同时使用的 NOREAD 和 NOWRITE 选项通过明确禁止远程系统访问本地系统上的目录和文件来描述 READ 和 WRITE 选项 的例外情况。

这些选项的格式如下:

N OREAD=路径名 [ : 路径名...]

N OWRITE=路径名 [ : 路径名...]
注: 您使用 READ , WRITE , NOREAD 和 NOWRITE 选项输入的规范会影响 BNU 事务的本地系统的安全性。

READ 和 WRITE 选项

在 LOGNAME 和 MACHINE 条目中使用的 READ 和 WRITE 选项指定乌奇科 守护程序在将文件传输到本地系统或从本地系统传输文件时可以访问的目录的路径名。 您可以为 乌奇科 守护程序活动指定多个路径。

READ 和 WRITE 选项的缺省位置是本地系统上的 /var/spool/uucppublic 目录 (BNU 公用目录)。 这些选项的格式如下:

READ =路径名 [ : PathName...]

WR ITE=路径名 [ : PathName...]

源文件,目标文件或目录必须是可读或可写的, BNU 程序才能访问该文件,目标文件或目录。 使用 Chmod 命令设置这些许可权。 没有 root 用户权限的用户可以取消由 READ 和 WRITE 选项授予的许可权,但该用户不能授予这些选项所拒绝的许可权。

如果 许可权 文件中不存在 READ 和 WRITE 选项,那么 BNU 程序仅将文件传输到/var/spool/uucppublic 目录。 但是,如果在这些选项中指定路径名,请输入每个源和目标的路径名,包括 /var/spool/uucppublic 目录 (如果允许远程系统访问该目录)。

注意: 具有 READ , WRITE , NOREAD 和 NOWRITE 选项的规范会影响 BNU 事务方面的本地系统的安全性。 远程系统也可以访问在 READ 和 WRITE 选项中指定的目录的子目录,除非这些子目录被 NOREAD 或 NOWRITE 选项禁止使用。

REQUEST 选项

同时在 LOGNAME 和 MACHINE 条目中使用的 REQUEST 选项使远程系统能够请求接收任何包含本地系统上的用户已请求在该远程系统上执行的工作的排队文件。 缺省情况是不允许此类请求。

当远程系统与本地系统联系以传输文件或执行命令时,远程系统还可以请求许可以接收在本地系统上排队的任何文件,以便传输到该远程系统或在该远程系统上执行。 此格式的 REQUEST 选项允许此类请求:

请求 = 是

不需要输入缺省值 REQUEST = 否。 这指定远程系统不能要求接收在本地系统上排队为它进行的任何工作。 在将本地系统上排队的文件和执行命令传送至远程系统之前,本地系统必须与远程系统联系。

在 LOGNAME 和 MACHINE 条目中使用 请求 = 是 选项,以允许远程系统用户将文件传输到本地系统并根据需要在本地系统上执行命令。 使用 REQUEST = 否 选项限制访问,以便本地系统保留对远程系统启动的文件传输和命令执行的控制。

许可权 文件中的 注: 条目仅影响 BNU 事务。 它们不会影响在本地系统上具有有效登录的远程系统用户。

SENDFILES 选项

仅当本地系统与远程系统联系时,缺省值才允许本地系统将排队的工作传送至远程系统。 但是,当远程系统完成向本地系统传输文件或在本地系统上执行命令时,该本地系统可能会尝试立即将排队的工作发送至呼叫远程系统。 要启用即时传输,请使用以下 SENDFILES 选项:

SENDFILES=是

SENDFILES=yes 选项允许在远程系统完成其操作后,将已排队的工作从本地系统传输到远程系统。 缺省值 SENDFILES= 调用指定仅当本地系统与远程系统联系时,才会发送排队在远程系统上运行的本地文件。

注意:
  1. 当 SENDFILES 选项包含在 MACHINE 条目中时,它将被忽略。
  2. 许可权 文件中的条目仅影响 BNU 事务。 它们不会影响在本地系统上具有有效登录的远程系统用户。

VALIDATE 选项

当将命令包括在缺省命令集中时,如果在本地系统上由远程系统执行可能会导致损坏,那么 VALIDATE 选项将提供更高的安全性。 将此选项与 COMMANDS 选项一起使用,仅在 MACHINE 条目中指定。 VALIDATE 选项的格式为:

VAL IDATE=登录名 [ : LoginName...]

VALIDATE 选项用于验证调用远程系统的身份。 将此选项包括在 MACHINE 条目中意味着调用远程系统必须具有唯一的登录标识和密码才能执行文件传输和命令。
注: 仅当登录标识和密码受保护时,此选项才有意义。 为远程系统提供特殊登录和密码,以提供无限制的文件访问和远程命令执行能力,相当于为该远程系统上的任何用户提供本地系统上的正常登录和密码,除非特殊登录和密码受到良好保护。

VALIDATE 选项将 MACHINE 条目 (包括指定的 COMMANDS 选项) 链接到与特权登录关联的 LOGNAME 条目。 乌克斯特 守护程序,它代表远程系统上的用户在本地系统上执行命令,但在远程系统登录时未运行。 因此, 乌克斯特 守护程序不知道哪个远程系统发送了执行请求。

允许登录到本地系统的每个远程系统在该本地系统上都有自己的假脱机目录。 只允许 BNU 文件传输和命令执行程序对这些目录进行写操作。 例如,当 乌奇科 守护程序从远程系统传输执行文件时hera到本地系统zeus,它将这些文件放置在/var/spool/uucppublic/hera系统上的目录zeus.

乌克斯特 守护程序尝试执行指定的命令时,它会确定调用远程系统的名称 (hera) 从远程系统假脱机目录的路径名中 (/var/spool/uucppublic/hera)。 然后,守护程序在 许可权 文件的 MACHINE 条目中检查该名称。 守护程序还会检查 MACHINE 条目中的 COMMANDS 选项中指定的命令,以确定是否可以在本地系统上执行所请求的命令。

安全性

访问控制: 只有具有 root 用户权限的用户才能编辑 许可权 文件。

示例

以下是有关使用 许可权 文件的示例。

提供对远程系统的缺省访问权

  1. 要为任何系统登录提供缺省许可权,请执行以下操作:uucp1,请输入:
    LOGNAME=uucp1
  2. 提供对系统的缺省许可权venus,apolloathena当本地系统调用时,请输入:
    MACHINE=venus:apollo:athena

提供较少限制的远程系统访问

  1. 以下 LOGNAME 条目允许远程系统merlin读取和写入更多目录,而不仅仅是假脱机目录:
    LOGNAME=umerlin READ=/ NOREAD=/etc:/usr/sbin/uucp
    WRITE=/home/merlin:/var/spool/uucppublic

    系统以用户身份登录umerlin可以读取除 /usr/sbin/uucp/etc 目录以外的所有目录,但只能写入 /home/merlin 和公共目录。 因为登录名称umerlin可以访问超过标准的信息, BNU 在允许之前先验证系统merlin登录。

  2. 以下示例允许远程系统hera不受限制地访问系统zeus,并显示 LOGNAME 和 MACHINE 条目之间的关系:
    LOGNAME=uhera REQUEST=yes SENDFILES=yes READ
    =/ WRITE=/MACHINE=hera VALIDATE=uhera REQUEST=yes \COMMANDS=ALL READ=/ WRITE=/
    远程系统hera可能与系统进行以下 乌奇科乌克斯特 事务zeus:
    • 系统hera可能请求从系统发送文件zeus,无论哪个系统发出了呼叫 (REQUEST=yes出现在两个条目中);
    • 系统zeus可以将文件发送到系统hera当系统hera联系人系统zeus(SENDFILES=yes在 LOGNAME 条目中);
    • 系统hera可以在系统上执行所有可用命令zeus(COMMANDS=ALL在 MACHINE 条目中);
    • 系统hera可以读取和写入系统上 目录下的所有目录和文件zeus,无论哪个系统发出了呼叫 (READ=/ WRITE=/在两个条目中)。
    因为条目提供系统hera具有相对不受限制的系统访问权zeus, BNU 在允许系统之前验证日志名称hera登录。
注: 此条目允许 MACHINE 条目中列出的远程系统对本地系统进行无限制的访问。 此条目可能危及系统的安全。

组合 LOGNAME 和 MACHINE 条目

  1. 以下是系统的 LOGNAME 和 MACHINE 条目hera:
    LOGNAME=uhera REQUEST=yes SENDFILES=yes
    MACHINE=hera VALIDATE=uhera REQUEST=yes COMMANDS=rmail:news:uucp
    由于这些条目具有相同的许可权并应用于相同的远程系统,因此可以将这些条目组合为:
    LOGNAME=uhera SENDFILES=yes REQUEST=yes \
    MACHINE=hera VALIDATE=uhera COMMANDS=rmail:news:uucp
  2. 如果用于多个远程系统的 LOGNAME 和 MACHINE 条目具有相同的许可权,那么可以将它们组合在一起。 例如:
    LOGNAME=uucp1 REQUEST=yes SENDFILES=yes
    MACHINE=zeus:apollo:merlin REQUEST=yes COMMANDS=rmail:uucp
    可以组合为:
    LOGNAME=uucp1 REQUEST=yes SENDFILES=yes \MACHINE=zeus:apollo:
    merlin COMMANDS=rmail:uucp
    任一形式的条目允许系统zeus,apollomerlin相同的许可权。 他们还可以:
    • 以以下身份登录到本地系统:uucp1.
    • 执行 邮件乌奇普 命令。
    • 从本地系统请求文件,而不考虑哪个系统发出调用。

允许访问未命名的系统

要允许系统调用未在 MACHINE 条目中按名称指定的系统,请按如下所示使用 MACHINE=OTHER 条目:

MACHINE=OTHER COMMANDS=rmail

此条目允许您的系统调用任何机器。 调用的机器将能够请求 邮件 命令的执行。 否则,缺省许可权适用。

三个系统的许可权文件条目

以下示例显示了三个已连接系统的 许可权 文件:

在系统上venus:
LOGNAME=uhera MACHINE=hera \
READ=/ WRITE=/ COMMANDS=ALL \
NOREAD=/usr/secure:/etc/uucp \
NOWRITE=/usr/secure:/etc/uucp
SENDFILES=yes REQUEST=yes VALIDATE=hera
在系统上hera:
LOGNAME=uvenus MACHINE=venus \
READ=/ WRITE=/ COMMANDS=rmail:who:lp:uucp \
SENDFILES=yes REQUEST=yes

LOGNAME=uucp1 MACHINE=OTHER \
REQUEST=yes SENDFILES=yes
在系统上apollo:
LOGNAME=uhera MACHINE=hera \
READ=/var/spool/uucppublic:/home/hera \
REQUEST=no SENDFILES=call

授予以下许可权:

  • 系统hera登录到系统venusasuhera。它可以请求或发送文件,而不管谁发起了调用,并且可以读取或写入除 /usr/secure/usr/sbin/uucp以外的所有目录。 它可以执行任何命令。 但是,在系统之前venus允许任何系统以用户身份登录uhera,它会进行检查以确保系统hera.
  • 系统venus登录到系统heraasuvenus。它登录后,可以读取或写入系统上的所有目录hera并且可以请求或发送命令,而不考虑谁发起了呼叫。 它仅可以执行 邮件勒普乌奇普 命令。
  • 系统hera登录到系统apolloasuhera。登录后,它可以发送文件,但接收文件的请求将被拒绝。 它只能从公用目录和 /home/hera 目录读写,并且只能执行缺省命令列表。
  • 系统apollo登录到系统heraasuucp1,因为它在系统上没有唯一的登录标识hera它可以请求和发送文件,而不管谁发起了呼叫。 它只能从公共目录 (缺省值) 中进行读写,并且只能执行缺省命令列表。
    注:uucp1系统上定义的登录标识hera可以由任何远程系统使用,而不只是由系统apollo. 此外, MACHINE=OTHER 入口允许系统的存在hera调用 许可权 文件中其他位置未指定的机器。 如果系统hera调用未知机器, MACHINE=OTHER 条目中的许可权生效。

文件

描述
/etc/uucp/Permissions 文件 描述远程系统的访问权限。
/etc/uucp/Systems 文件 描述可访问的远程系统。
/etc/uucp/Sysfiles 文件 /etc/uucp/Systems 文件指定可能的备用文件。
/var/spool/uucppublic 目录 包含已传输的文件。