zoukankan      html  css  js  c++  java
  • (转载)hosts.equiv和.rhosts文件

    (转自http://www.linuxmine.com/825.html

    远程用户启动rlogin访问你的本地主机,此时做如下安全性检查:

    1. 本地rlogind在本地/etc/passwd文件中寻找远程用户名,没有则拒绝访问

    2. /etc/passwd中存在远程用户名,rlogind在/etc/hosts.equiv寻找远程主机名,找到则允许访问。

    3. /etc/hosts.equiv无远程主机名,rlogind在$HOME/.rhosts寻找远程主机名,找到且该项后无用户名则允许访问,找到且该项后有用户名,若远程用户名位于其中,则允许访问。注意这里的$HOME是与远程用户同名的本机用户的主目录。

    4. 若通过了/etc/passwd的检查,但没有通过/etc/hosts.equiv或者$HOME/.rhosts的检查,远程用户给出口令可以登录本机,但无法使用rcp、rsh等。反之则可以使用rcp或者rsh。

    5. /etc/hosts.equiv中的+意味着任意主机,此时与/etc/hosts无关。netterm下rlogin除root外的所有用户可以成功,solaris下简单的rlogin hostname同netterm,但是rlogin -l username hostname不成功。这个事实说明netterm下rlogin的时候,指定的参数实际上是远程主机的当前用户名。还说明hosts.equiv文件不支持rlogin -l username hostname,不支持root的rlogin。

    值得注意的是两个+号出现在$HOME/.rhosts中是非常危险的,意味着任意主机任意用户都可以不用口令登录到你的用户上来。.rhosts中的第一个+意味着所有主机,与/etc/hosts文件无关。.rhosts中的第二个+意味着所有用户,与/etc/passwd文件无关。若只有一个+,netterm中的rlogin可以成功,但来自sco root下的rlogin -l jhli hostname不成功,来自sco jhli的rlogin -l jhli hostname和rlogin hostname都成功。说明当.rhosts文件中只有主机名时,不支持rlogin -l username hostname,这点和/etc/hosts.equiv一样。若+ root,则netterm因无法实现rlogin -l username hostname而失败(只能实现rlogin hostname),来自sco root下的rlogin -l jhli hostname成功。+ +则都成功。注意,$HOME/.rhosts支持root的rlogin。

    当这两个文件中没有使用+号代表所有主机时,与/etc/hosts文件有关。这两个文件中指定的hostname必须是/etc/hosts文件中出现的,而且必须是主机名,IP地址和别名无效。在/etc/hosts文件中别名位于第三列。做主机判断时与在远程主机上hostname命令所显示的东西无关,与远程主机上的/etc/hosts定义无关。如果出现与这里讲述不符合的,是因为缓冲没有得到刷新的缘故,可以通过ping相关名字得到检验。此外,若没有使用+号,rlogin localhost、rlogin 127.0.0.1的效果和rlogin 134.*.*.*、rlogin zhuzhou的效果不一样,前者的检查不会通过。当hosts.equiv中定义为localhost时,效果则反过来。

    6. rlogin -l username hostname和rlogin hostname的检查有点细微的差别,首先在/etc/passwd的检查中是以-l的参数为准的,没有-l参数才使用远程主机的当前用户名,所谓当前用户名是考虑了su出来的用户。其次,$HOME也是先以-l参数为准。第三,$HOME/.rhosts文件中的用户名不是针对-l参数来的,而是针对远程主机的当前用户名来的,但是对于这个远程主机的当前用户名,并不要求出现在/etc/passwd文件中。这第6条尤其重要,许多不成功的$HOME/.rhost就是因为对第6条的不了解。

    7. $HOME/.rhosts文件的权限问题,chmod 0都没有影响,不过当时是处理root用户。对于一般用户,一定要保证.rhosts文件对于$HOME的属主是可读的。一般来说,这个文件最好chmod 400。对于root,如果不希望某个用户建立自己的.rhosts或者想替该用户建立.rhosts后不允许该用户自己修改,可以通过chown root .rhosts然后chmod 444 .rhosts实现。除了root,如果$HOME/.rhosts文件的属主和$HOME的属主不一致,检查将失败。

    8. $HOME/.rhosts文件中每行只跟一个用户名,若想多个指定,只好分多行指定用户名。

    9. sco unix下$HOME/.rhosts中若用+代表主机,与其他Unix系统不同,这里的+没有任何特殊的意义,所以检查将失败。但是用户名仍然可以用+代表。并且sco unix下若root的.rhosts文件go+w,则检查失败。

    10. 建议man rhosts看看,各个系统有许多细微的差别。

  • 相关阅读:
    如何配置wamp多站点主机
    一些类和对象问题的探索,简单易懂的命名空间及use的使用
    [4] Git使用流程
    [正则] JS常用正则
    [3] Django返回json数据
    [8] Eclipse各版本代号一览表以及官网上有很多版本的eclipse的比较
    [7] MySQL数据库--学生管理系统数据库设计
    [11]Docker02 Docker重要概念
    [12]Docker03 Centos7安装Docker
    [小程序]小程序环境搭建
  • 原文地址:https://www.cnblogs.com/amonw/p/694345.html
Copyright © 2011-2022 走看看