contents
下一个: 网络信息系统 上一级: 各种网络应用 上一个: 远程过程调用

配置 r 命令

有一些命令用于在远程主机上执行命令。这些命令包括 rlogin、rsh、rcp 和 rcmd。它们都会在远程主机上启动一个 shell,并允许用户执行命令。当然,客户端需要在命令要执行的主机上拥有一个账户。因此,所有这些命令都会执行身份验证过程。通常,客户端会将其用户的登录名告知服务器,然后服务器会请求密码,并按照惯例进行验证。

                #
                # /etc/rpc - miscellaneous RPC-based services
                #
                portmapper      100000  portmap sunrpc
                rstatd          100001  rstat rstat svc rup perfmeter
                rusersd         100002  rusers
                nfs             100003  nfsprog
                ypserv          100004  ypprog
                mountd          100005  mount showmount
                ypbind          100007
                walld           100008  rwall shutdown
                yppasswdd       100009  yppasswd
                bootparam       100026
                ypupdated       100028  ypupdate

然而,有时希望为某些用户放宽身份验证检查。例如,如果您经常需要登录到局域网上的其他机器,您可能希望在无需每次都输入密码的情况下被允许登录。

仅在少量密码数据库同步的主机上,或者对于需要访问许多机器进行管理工作的少量特权用户,禁用身份验证才是明智的。每当您想允许人们无需指定登录 ID 或密码即可登录您的主机时,请确保您不会意外地向任何人授予访问权限。

有两种方法可以禁用 r 命令的身份验证检查。一种方法是让超级用户允许特定或所有主机上的特定或所有用户(后者绝对不是一个好主意)在不被要求输入密码的情况下登录。此访问权限由名为 /etc/hosts.equiv 的文件控制。它包含一个主机和用户名列表,这些主机和用户名被认为与本地主机上的用户等效。另一种选择是用户允许特定主机上的其他用户访问其帐户。这些用户可以列在用户主目录下的 .rhosts 文件中。出于安全原因,此文件必须归用户或超级用户所有,并且不能是符号链接,否则将被忽略。gif

当客户端请求 r 服务时,将在 /etc/hosts.equiv 文件中搜索其主机名和用户名,然后在她想要以其身份登录的用户的 .rhosts 文件中搜索。例如,假设 janet 在 gauss 上工作,并尝试登录到 euler 上 joe 的帐户。在下文中,我们将 Janet 称为客户端用户,将 Joe 称为本地用户。现在,当 Janet 输入

           $ rlogin -l joe euler
 
在 gauss 上时,服务器将首先检查 hosts.equivgif 以确定是否应授予 Janet 免费访问权限,如果失败,它将尝试在 joe 的主目录中的 .rhosts 文件中查找她。

euler 上的 hosts.equiv 文件如下所示

           gauss
           euler
           -public
           quark.physics.groucho.edu     andres

 
一个条目由一个主机名组成,可选地后跟一个用户名。如果一个主机名单独出现,则来自该主机的所有用户都将被允许免检访问其本地帐户。在上面的示例中,Janet 将被允许从 gauss 登录到她的帐户 janet,任何其他用户(root 用户除外)也是如此。但是,如果 Janet 想以 joe 的身份登录,系统将像往常一样提示她输入密码。

如果主机名后跟一个用户名,如上述示例文件的最后一行所示,则此用户将被授予对所有帐户(root 帐户除外)的免密码访问权限。

主机名也可以以减号开头,如条目 ``-public'' 中所示。这要求对 public 上的所有帐户进行身份验证,无论个别用户在其 .rhosts 文件中授予什么权限。

.rhosts 文件的格式与 hosts.equiv 的格式相同,但其含义略有不同。考虑 euler 上 Joe 的 .rhosts 文件

           chomp.cs.groucho.edu
           gauss      janet
第一个条目授予 joe 从 chomp.cs.groucho.edu 登录时免检访问权限,但不影响 euler 或 chomp 上任何其他帐户的权限。第二个条目是它的一个变体,它授予 janet 从 gauss 登录时免检访问 Joe 的帐户的权限。

请注意,客户端的主机名是通过反向映射调用者的地址到名称来获得的,因此此功能在解析器未知的主机上将失败。在以下情况之一中,客户端的主机名被认为与 hosts 文件中的名称匹配


contents
下一个: 网络信息系统 上一级: 各种网络应用 上一个: 远程过程调用

安德鲁·安德森
1996 年 3 月 7 日 星期四 23:22:06 美国东部标准时间