首页 > 技术文档 > hosts.equiv文件的用途与格式
2011
02-07

hosts.equiv文件的用途与格式

  北街最近在研究两台或者多台 UNIX 主机之间的信任关系,这样就用到了系统中的 hosts.equiv 文件,它就是为了便于远程主机在本地计算机上执行远程命令而设计的,下面就总结一下 hosts.equiv 文件的用途与格式。

  一、 hosts.equiv 文件的用途

  /etc/hosts.equiv$HOME/.rhosts 定义了哪些计算机和用户可以不用提供口令就在本地计算机上执行远程命令,如 rexec,rcp,rlogin 等等。这些不需要提供口令的计算机和用户称为受信任的。

  当本地计算机收到执行远程命令的请求时,相应的远程命令服务进程,如 rlogind ,首先检查 /etc/hosts.equiv 来确认请求是否来自受信任的计算机和用户。如果这个文件不存在或者虽然存在但不包括相应的计算机和用户,服务进程就会去检查 $HOME/.rhosts 文件。

  /etc/hosts.equiv 的权限必须设置为只有 root 能够写,建议权限为600。如果这个文件被设置为同组或其它用户可写,远程命令服务进程就会忽略它的存在。

  如果远程命令是由 root 用户发起的,远程命令服务进程会忽略 /etc/hosts.equiv 文件的存在而去直接检查 $HOME/.rhosts 文件。

  在指定受信任的计算机和用户时要非常小心,因为这有可能会造成安全漏洞。

  二、 hosts.equiv 文件的格式

  添加对计算机/用户的信任:

  hostname:信任计算机 hostname 上的所有普通用户

  hostname username:信任计算机 hostname 上的用户 username

  +:信任所有计算机上的所有普通用户

  禁止对计算机/用户的信任:

  如果计算机名和用户都没有在 /etc/hosts.equiv 中被定义为受信任的,那么它们就是不受信任的。另外,您还可以用以下方法明确地禁止对计算机/用户的信任。

  -hostname:不信任计算机 hostname 上的所有用户

  hostname -username: 不信任计算机 hostname 上的用户 username

  hosts.equiv 与 NIS :

  在 /etc/hosts.equiv 中也可以指定是否信任 NIS 网络组(NETGROUP)。

  +@netgroup:信任网络组 netgroup 中的所有计算机

  -@netgroup:禁止信任网络组 netgroup 中的所有计算机

  hostname +@netgroup:信任来自计算机 hostname 的所有网络组 netgroup 的成员用户的请求

  hostname -@netgroup:禁止信任来自计算机 hostname 的所有网络组 netgroup 的成员用户的请求

  /etc/hosts.equiv 中记录的顺序:

  在 /etc/hosts.equiv 文件中,记录的顺序十分重要。远程命令服务进程在检查 /etc/hosts.equiv 文件时会在第一个匹配发现后返回,也就是说,下面这个例子中的禁止信任记录是不起作用的:

hostname
hostname -user1

  计算机 hostname 上的用户 user1 将能够在不提供口令的情况下在本地计算机上执行远程命令。而下面这个例子能够提供期望中的结果:

hostname -user1
hostname

  三、/etc/hosts.equiv示例

  1. 允许远程计算机 emerald 和 amethyst 上的所有用户在本地执行远程命令而无须提供口令:

emerald
amethyst

  2. 允许远程计算机 emerald 上的所有用户和 amethyst 上的用户 greygory 在本地执行远程命令而无须提供口令:

emerald
amethyst gregory

  3. 允许用户 peter 从任何远程计算机在本地执行远程命令而无须提供口令:

emerald
amethyst gregory
+ peter

  4. 允许所有是 century 网络组成员的远程计算机上的所有用户在本地执行远程命令而无须提供口令:

emerald
amethyst gregory
+ peter
+@century

  5. 允许所有在计算机 citrine 上又是 engineers 网络组成员的用户在本地执行远程命令而无须提供口令:

emerald
amethyst gregory
+ peter
+@century
citrine +@engineers

  6. 允许所有是 servers 网络组成员的远程计算机上的所有属于 sysadmins 网络组的用户在本地执行远程命令而无须提供口令:

emerald
amethyst gregory
+ peter
+@century
citrine +@engineers
+@server
+@sysadmins
最后编辑:
作者:北街
身高八尺,腰围也是八尺!
捐 赠如果您觉得这篇文章有用处,请支持作者!鼓励作者写出更好更多的文章!

hosts.equiv文件的用途与格式》有 8 条评论

  1. 若雁 说:

    看过,的确不错。谢谢博主

  2. 北街 说:

    @软件盒子 谢谢!兔年大吉! 🙄

  3. 软件盒子 说:

    新年了来看看北街

  4. 秦大少 说:

    这个真的就完全看不懂了

  5. 博客之家 说:

    这个还真没接触过呢。

  6. Charlie 说:

    Greatings, Amazing! Not clear for me, how offen you updating your http://www.ibeijie.cn.

  7. 有点小问题!

  8. gowers 说:

    hosts.equiv好像是不同主机间的信任关系,.rhosts是同一用户在不同主机间的信任。不知道对不对~N长时间没碰UNIX了~

留下一个回复

你的email不会被公开。

This site uses Akismet to reduce spam. Learn how your comment data is processed.