当前位置: 首页 > 工具软件 > RCP100 > 使用案例 >

aix 到 linux的 rcp配置

桂玉石
2023-12-01

需求: 将数据文件从后台主机aix拷贝到报表系统linux。
后台主机是aix 5.3 (IP:192.168.1.100), 报表系统是linux(IP:192.168.1.102 ),由于系统比较老旧,采用rcp.

一、先要安装 rsh (具体略)
1、linux下检查有无安装
#rpm -qa rsh-server
没有则安装rsh-server包,可以使用 yum install rsh-server 进行安装,更方便
# yum -y install rsh
# yum -y install rsh-server
# yum -y install xinetd

3. aix下检查有无安装
lslpp -l|grep -i xxx (略)


二、服务端主机的配置 (linux, 用root用户操作)

1、配置对方主机名,注意主机名要与实际一致,可以让对方提供主机名(hostname 命令查看)
# vi /etc/hosts (用root修改)
192.168.1.100 host_aix

上述配置表示对方主机(客户端)名为 host_aix,ip为192.168.1.100

2、配置访问许可,将对方主机名配置在此处,格式: 主机名 [用户名]。
#vi /etc/hosts.equiv (用root修改)
host_aix

主机名后面可以带用户名,不带用户名表示所有用户都可以访问。

如果担心权限过大,不想配置 hosts.equiv ,也可配置访问用户(客户端访问过来的用户)主目录下的.rhosts文件,配置方式与hosts.equiv相同。
若hosts.equiv, .rhosts 两个同时有配置时,hosts.equiv 优先

3、配置rsh访问许可
#vi /etc/xinetd.d/rsh 做如下修改并保存(用root修改)
disable = yes --> disable = no

4、重启 xinetd 服务,使用配置生效
# service xinetd restart
查看启动结果
netstat -an |grep xinetd


客户端普通用户登录,以上设置就可以了。
若是允许客户端主机采用root用户登录,还是进行如下几步设置:

5、配置rlogin,rexec 访问许可
编辑/etc/xinetd.d/rlogin,rexec 两个文件 做如下修改并保存(用root修改)
 disable = yes --> disable = no

6、配置securetty
编辑/etc/securetty 文件中添加rexec,rsh,rlogin三行并保存 (对方通过root远程访问)
# vi /etc/securetty
rexec
rsh
rlogin

7、重启 xinetd 服务,使用配置生效
--linux启动xinetd服务
# service xinetd restart


三、客户端主机配置(aix)
1、配置对方主机名,注意主机名要与实际一致,可以用 hostname 命令查看,本次服务端机器主机名为 host_linux
# vi /etc/hosts (用root修改)
192.168.1.102 host_linux

四、验证
命令:rcp -r 本地目录 远程主机IP或主机名:远程目录
#rcp -r /tmp/report/* 192.168.1.100:/home/report

服务端主机linux的日志在 /var/log/messages 
可以看到成功的日志如下:
Apr 8 07:22:14 localhost pam_rhosts_auth[7808]: allowed to usera@host_aix as I
Apr 8 07:22:14 localhost rsh(pam_unix)[7808]: session opened for user usera by (uid=0)

失败的日志如下:
Apr 8 08:17:19 localhost pam_rhosts_auth[10710]: denied to usera@host_aix as userb: access not allowed
Apr 8 08:17:19 localhost in.rshd[10710]: rsh denied to usera@host_aix as userb: Permission denied.

五、常见问题
1、直接报 Permission denied
现象:
客户端主机登录usera用户, 执行不带用户名的rcp命令成功(命令中不带用户名,默认为当前登录用户)
#rcp -r /tmp/report/* 192.168.1.100:/home/report
等价于
#rcp -r /tmp/report/* usera@192.168.1.100:/home/report

客户端主机登录usera用户,执行带用户名的rcp命令失败
#rcp -r /tmp/report/* userb@192.168.1.100:/home/report
Permission denied.

检查hosts.equiv,/etc/xinetd.d/rsh 都已正常配置
检查服务端主机日志能看到
pam_rhosts_auth[10710]: denied to usera@host_aix as userb: access not allowed
in.rshd[10710]: rsh denied to usera@host_aix as userb: Permission denied.

解决办法:
rcp命令中不能带其它用户名,若客户端主机当前登录为usera用户,那么rcp命令登录远程服务端主机也必须是usera用户。
客户端主机和服务端主机的用户名必须相同,两边都要建好。

(这个问题折腾了一两天) (参考https://blog.csdn.net/houqd2012/article/details/8651243)

注: 这个报错的原因有很多,这里只是说明本次实例中的报错原因和解决办法。


2、远程目录拒绝访问
例 客户端登录usera用户,执行命令
#rcp -r /tmp/report/* 192.168.1.100:/home/report 
报错 rcp: /home/report/441234 : Permission denied

检查 192.168.1.100 远程服务器上的usera用户有没有写 /home/report目录的权限,权限放开即可

3、报找不到文件或目录, /sbin/nologin: No such file or directory
检查远程服务端主机该用户usera是否允许登录 ,若/etc/passwd 有设置/sbin/nologin,表示禁止登录,删除/sbin/nologin即可

 类似资料: