跳过导航链接 | |
退出打印视图 | |
系统管理指南:网络服务 Oracle Solaris 10 8/11 Information Library (简体中文) |
23. 从异步 Solaris PPP 迁移至 Solaris PPP 4.0(任务)
/etc/uucp/Devices 文件中的拨号器-令牌对字段
/etc/uucp/Devices 文件中的拨号器-令牌对字段的结构
/etc/uucp/Permissions 文件指定远程计算机在登录、访问文件和执行命令方面具有的权限。某些选项可限制远程计算机请求文件的能力及其接收本地计算机放入队列中的文件的能力。其他选项可用于指定远程计算机能够在本地计算机上执行的命令。
每项都是一个逻辑行,物理行以反斜杠 (\) 结尾以指示连续性。以空格分隔的选项组成了项。每个选项都是采用以下格式的名称-值对:
name=value
Values 可以是以冒号分隔的列表。指定的选项中不允许包含空格。
注释行以井号 (#) 开头,且占用整行,直到换行符。空白行将被忽略,即使是在多行项中。
Permissions 文件项的类型如下所示:
LOGNAME 项包含一个 LOGNAME 选项。MACHINE 项包含一个 MACHINE 选项。一个项可以同时包含这两个选项。
使用 Permissions 文件限制授予远程计算机的访问权限级别时,应该考虑以下几点:
远程计算机呼叫您的计算机并请求接收文件时,该请求可能会被授权,也可能会被拒绝。REQUEST 选项指定远程计算机是否可以请求从您的计算机建立文件传输。字符串 REQUEST=yes 指定远程计算机可以请求从您的计算机传输文件。字符串 REQUEST=no 指定远程计算机不能请求从您的计算机接收文件。如果未指定 REQUEST 选项,则将使用缺省值 REQUEST=no。REQUEST 选项可以出现在 LOGNAME 项中(这样远程计算机就能呼叫您的计算机),也可以出现在 MACHINE 项中(这样您的计算机就可以呼叫远程计算机)。
远程计算机调用您的计算机并完成其工作后,即会尝试检索您的计算机针对远程计算机排入队列的工作。SENDFILES 选项指定您的计算机是否可以发送针对远程计算机排入队列的工作。
如果远程计算机使用 LOGNAME 选项中的一个名称进行登录,字符串 SENDFILES=yes 将指定您的计算机可以发送针对远程计算机排入队列的工作。如果在 /etc/uucp/Systems 的时间字段中输入了 Never,则此字符串是必需的。Never 项将本地计算机设置为被动模式,但是不允许启动对此特定远程计算机的呼叫。有关更多信息,请参见UUCP /etc/uucp/Systems 文件。
字符串 SENDFILES=call 指定仅当您的计算机呼叫远程计算机时才发送在您的计算机中排入队列的文件。call 值是 SENDFILES 选项的缺省值。此选项仅在 LOGNAME 项中有意义,因为将呼叫发送到远程计算机时将应用 MACHINE 项。如果该选项与 MACHINE 项结合使用,则会忽略该选项。
使用此选项,除您的计算机的 TCP/IP 主机名(通过 hostname 命令返回)外,还可以指定其唯一的 UUCP 节点名。例如,如果您无意中为您的主机指定的名称与某个其他系统的名称相同,则可以设置 Permissions 文件的 MYNAME 选项。假设您希望将您的组织称为 widget。如果您的所有调制解调器都与主机名为 gadget 的计算机相连,则 gadget 的 Permissions 文件中的项如下:
service=uucico systems=Systems.cico:Systems dialers=Dialers.cico:Dialers \ devices=Devices.cico:Devices service=cu systems=Systems.cu:Systems \ dialers=Dialers.cu:Dialers \ devices=Devices.cu:Devices
现在,系统 world 可以登录计算机 gadget,就像登录 widget 一样。为了在您呼叫计算机 world 时,也能使其通过别名 widget 识别您的计算机,可以定义如下项:
MACHINE=world MYNAME=widget
也可以使用 MYNAME 选项进行测试,因为此选项允许计算机呼叫其本身。但是,由于可能会使用此选项屏蔽计算机的实际标识,因此应使用UUCP VALIDATE 选项中介绍的 VALIDATE 选项。
这些选项指定 uucico 可以读取或写入的文件系统的各个部分。可以在 MACHINE 或 LOGNAME 项中指定 READ 和 WRITE 选项。
READ 和 WRITE 选项的缺省值都为 uucppublic 目录,如以下字符串所示:
READ=/var/spool/uucppublic WRITE=/var/spool/uucppublic
字符串 READ=/ 和 WRITE=/ 指定具有对“其他”权限的本地用户可访问的任何文件的访问权限。
这些项的值是以冒号分隔的路径名称的列表。READ 选项用于请求文件,而 WRITE 选项用于存储文件。其中的一个值必须是要进入或退出的文件的全路径名的前缀。要授予在 /usr/news 和公共目录中存储文件的权限,请对 WRITE 选项使用以下值:
WRITE=/var/spool/uucppublic:/usr/news
如果使用 READ 和 WRITE 选项,则必须指定所有的路径名,因为系统不会将这些路径名添加到缺省列表中。例如,如果 /usr/news 路径名是 WRITE 选项中指定的唯一路径,则系统将拒绝在公共目录中存储文件的权限。
在设置可供远程系统进行读写访问的目录时需格外小心。例如,/etc 目录包含许多关键的系统文件。远程用户不应拥有在此目录中存储文件的权限。
NOREAD 和 NOWRITE 选项指定除 READ 和 WRITE 选项或缺省值之外的其他情况。以下项允许读取除 /etc 目录(及其子目录,请记住,这些选项是前缀)中的文件以外的任何文件。
READ=/ NOREAD=/etc WRITE=/var/spool/uucppublic
此项只允许向缺省目录 /var/spool/uucppublic 中写入内容。NOWRITE 与 NOREAD 选项的工作方式相同。可以在 LOGNAME 和 MACHINE 项中使用 NOREAD 和 NOWRITE 选项。
可以在 LOGNAME 项中使用 CALLBACK 选项指定在回调调用系统之前不执行任何事务。以下是设置 CALLBACK 的原因:
字符串 CALLBACK=yes 指定您的计算机必须回叫远程计算机,然后才能进行文件传输。
CALLBACK 选项的缺省值为 CALLBACK=no。如果将 CALLBACK 设置为 yes,则必须在对应于呼叫者的 MACHINE 项中指定影响其余会话的权限。请勿在 LOGNAME 或远程计算机针对您的主机设置的 LOGNAME 项中指定这些权限。
可以在 MACHINE 项中使用 COMMANDS 选项指定远程计算机可在您的计算机上执行的命令。uux 程序生成远程执行请求,并对要传输到远程计算机的请求进行排队。文件和命令将被发送到目标计算机进行远程执行,这对于仅在您的系统发出呼叫时才会应用 MACHINE 项而言,是一个例外。
请注意,不能在 LOGNAME 项中使用 COMMANDS。MACHINE 项中的 COMMANDS 定义命令权限,无论是您呼叫远程系统还是远程系统呼叫您。
字符串 COMMANDS=rmail 指定远程计算机可在您的计算机上执行的缺省命令。如果在 MACHINE 项中使用命令字符串,则将忽略缺省命令。例如,以下项将忽略 COMMAND 缺省值,以使名为 owl、raven、hawk 和 dove 的计算机可在您的计算机上执行 rmail、rnews 和 lp。
MACHINE=owl:raven:hawk:dove COMMANDS=rmail:rnews:lp
除以上指定的名称外,还可以指定命令的全路径名。例如,以下项指定命令 rmail 使用缺省搜索路径。
COMMANDS=rmail:/usr/local/rnews:/usr/local/lp
UUCP 的缺省搜索路径为 /bin 和 /usr/bin。远程计算机为要执行的命令指定 rnews 或 /usr/local/rnews 时,则无论缺省路径是什么,始终执行 /usr/local/rnews。同样,/usr/local/lp 是要执行的 lp 命令。
在列表中包含 ALL 值意味着,系统将执行该项中指定的远程计算机的任何命令。如果使用此值,则将授予远程计算机对您的计算机的完全访问权限。
注意 - 此值允许的访问权限远远多于普通用户拥有的访问权限。仅当两台计算机都位于同一个站点、紧密连接,且用户可信时,才应使用此值。 |
以下是添加了 ALL 值的字符串:
COMMANDS=/usr/local/rnews:ALL:/usr/local/lp
此字符串说明了两点:
只要指定了存在潜在危险的命令(如带有 COMMANDS 选项的 cat 和 uucp),就应使用 VALIDATE 选项。通过 UUCP 远程执行守护进程 (uuxqt) 执行命令时,读写文件的任何命令都会对本地安全性造成潜在危险。
只要指定的命令对您的计算机的安全造成潜在危险,就应同时使用 VALIDATE 选项和 COMMANDS 选项。尽管 VALIDATE 提供的命令访问权限比 ALL 更安全,但它也不过是在 COMMANDS 选项之上提高了安全性级别。
VALIDATE 通过交叉检查呼叫计算机的主机名与它使用的登录名,提供一定程度的呼叫者身份验证。以下字符串可确保除 widget 或 gadget 之外的任何计算机尝试以 Uwidget 身份进行登录时会拒绝连接。
LOGNAME=Uwidget VALIDATE=widget:gadget
VALIDATE 选项要求拥有特权的计算机具有处理 UUCP 事务的唯一登录名和口令。此验证的重要特征是使与此项关联的登录名和口令受到保护。如果外界人员获取了该信息,便不能再将特定的 VALIDATE 选项视为安全选项。
请认真考虑要对哪些远程计算机授予能够处理 UUCP 事务的拥有特权的登录名和口令。为远程计算机提供具有文件访问和远程执行功能的特殊登录名和口令等同于为该计算机上的任何人提供访问您计算机的普通登录名和口令。因此,如果您不信任远程计算机上的某个人,请勿为该计算机提供拥有特权的登录名和口令。
以下 LOGNAME 项指定:如果声明为 eagle、owl 或 hawk 的某个远程计算机登录了您的计算机,则它一定使用了登录名 uucpfriend:
LOGNAME=uucpfriend VALIDATE=eagle:owl:hawk
如果外界人员获取了 uucpfriend 登录名和口令,便很容易进行伪装。
但是,此项与仅在 MACHINE 项中显示的 COMMANDS 选项有什么关系呢?此项会将 MACHINE 项(和 COMMANDS 选项)与 LOGNAME 项(该项与拥有特权的登录名关联)相链接。由于登录远程计算机时不会运行执行守护进程,因此需要此链接。实际上,该链接是不知道哪个计算机发送执行请求的异步进程。因此,真正的问题是:您的计算机如何识别执行文件的来源?
每个远程计算机在您的本地计算机上都有其自己的假脱机目录。这些假脱机目录具有仅为 UUCP 程序提供的写入权限。远程计算机中的执行文件在传输到您的计算机后将被置于其假脱机目录中。uuxqt 守护进程运行时,即可使用假脱机目录名称在 Permissions 文件中查找 MACHINE 项,并获取 COMMANDS 列表。或者,如果该计算机名称未出现在 Permissions 文件中,则将使用缺省列表。
以下示例显示 MACHINE 项与 LOGNAME 项之间的关系:
MACHINE=eagle:owl:hawk REQUEST=yes \ COMMANDS=rmail:/usr/local/rnews \ READ=/ WRITE=/ LOGNAME=uucpz VALIDATE=eagle:owl:hawk \ REQUEST=yes SENDFILES=yes \ READ=/ WRITE=/
COMMANDS 选项中的值表示,远程用户可以执行 rmail 和 /usr/local/rnews。
在第一项中,必须假定在想要呼叫列出的某一台计算机时,实际呼叫的是 eagle、owl 或 hawk。因此,eagle、owl 或 hawk 假脱机目录中的所有文件都是由这些计算机中的某一台放入的。如果远程计算机登录并声明它是这三台计算机中的某一台,则其执行文件也将被置于拥有特权的假脱机目录中。因此,必须确认该计算机具有拥有特权的登录名 uucpz。
可以为特定的 MACHINE 项中未提到的远程计算机指定不同的选项值。当许多计算机呼叫您的主机,且命令集不断发生变化时,可能会产生这种需要。可将 OTHER 作为计算机名称用于此项,如以下示例所示:
MACHINE=OTHER \ COMMANDS=rmail:rnews:/usr/local/Photo:/usr/local/xp
也可以针对其他 MACHINE 项中未提到的计算机设置 MACHINE 项可用的所有其他选项。
当常用选项相同时,可以将 MACHINE 和 LOGNAME 项合并为一个项。例如,以下两组项具有相同的 REQUEST、READ 和 WRITE 选项:
MACHINE=eagle:owl:hawk REQUEST=yes \ READ=/ WRITE=/
和
LOGNAME=uupz REQUEST=yes SENDFILES=yes \ READ=/ WRITE=/
可以合并这些项,如下所示:
MACHINE=eagle:owl:hawk REQUEST=yes \ logname=uucpz SENDFILES-yes \ READ=/ WRITE=/
通过合并 MACHINE 和 LOGNAME 项,提高了 Permissions 文件的可管理性和有效性。
通过一系列计算机发送文件时,中间计算机在其 COMMANDS 选项中必须具有命令 uucp。如果键入以下命令,则仅在计算机 willow 允许计算机 oak 执行 uucp 程序时才执行转发操作。
% uucp sample.txt oak\!willow\!pine\!/usr/spool/uucppublic
计算机 oak 还必须允许您的计算机执行 uucp 程序。计算机 pine(指定的最后一个计算机)不必允许执行 uucp 命令,因为该计算机不会执行任何转发操作。通常情况下,不会以该方式设置计算机。