rcp用途:在本地主机和远程主机之间或者两个远程主机之间传输文件。详细用法可man rcp查看。
现在要把主机192.168.100.200的/tmp/work.sh(属主为root用户)拷贝到远程主机192.168.100.202的/tmp,配置过程如下:
1、在两台主机的/etc/hosts文件添加对方iphostname映射
在192.168.100.200的/etc/hosts添加一行内容:
192.168.100.202 tux2
在192.168.100.202的/etc/hosts添加一行内容:
192.168.100.200 tux1
2、在两台主机的root用户家目录中的.rhosts文件中添加以下内容:
格式为: 主机名 用户名
192.168.100.200的root $HOME/.rhosts中添加:tux2 root
192.168.100.202的root $HOME/.rhosts中添加:tux1 root
3、通过rcp执行远程复制
在192.168.100.200主机以root用户执行以下命令:
# rcp /tmp/work.sh tux2:/tmp #此时要确保tux2主机/tmp目录下没有work.sh文件,如果有,将被自动覆盖。
如果要把192.168.100.200上的一个目录(包括子目录及其文件)复制到远程主机,可通过rcp命令参数:-r
rcp -r /tmp/test tux2:/tmp(注:test是一个文件夹)
关于/etc/hosts.equiv和$HOME/.rhosts文件的区别如下:
首先这两个文件都是和主机间的信任关系相关的,也就是允许另外一台机器上的用户不用输密码就可以rlogin到本机。但是,这两个文件之间的区别在哪里呢?
总结一下:
1.首先这两个文件里面的有效格式是一样的,也就是都可以是下面的格式
主机名
主机名 用户名
+
2.首先明确如果有远程主机想rlogin到本机,本机都要做什么
1)rlogind检查本机/etc/passwd中是否有远程的用户名,没有则拒绝访问
2)如果本机/etc/passwd中有远程的用户名,并且该用户名不是root,则先检查/etc/hosts.equiv,看看里面是否存在远程主机名,如果存在,则允许访问。
如果是root,则跳过对etc/hosts.equiv的检查,只检查“~home/.rhosts”。
3)/etc/hosts.equiv中只有远程主机名的话,表示允许远程主机上的所有非root用户可以登录本地主机,并且不需要密码
/etc/hosts.equiv 文件中如果加入了一台远程主机和一个用户,在远程主机上的那个用户(非root用户)就可以用rlogin登录本地机上的所有非root账号,而且不需要密码。
4)$HOME/.rhosts文件中如果是远程主机名的话,则只信任由远程主机上与.rhosts属主同名的用户。
$HOME/.rhosts文件中如果是远程主机名+用户名的话,则远程主机上对应的那些用户都可以登录过来到本地主机,但是在本地主机上显示的用户权限是对应$HOME的那个本地用户
联系客服