一、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文件的存在而去直接检查/.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
阅读(1460) | 评论(0) | 转发(0) |