# # /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 文件中。出于安全原因,此文件必须归用户或超级用户所有,并且不能是符号链接,否则将被忽略。
当客户端请求 r 服务时,将在 /etc/hosts.equiv 文件中搜索其主机名和用户名,然后在她想要以其身份登录的用户的 .rhosts 文件中搜索。例如,假设 janet 在 gauss 上工作,并尝试登录到 euler 上 joe 的帐户。在下文中,我们将 Janet 称为客户端用户,将 Joe 称为本地用户。现在,当 Janet 输入
$ rlogin -l joe euler在 gauss 上时,服务器将首先检查 hosts.equiv
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 文件中的名称匹配