内容提要:
本篇文档适用于AIX 5L版本以及AIX 4.3版本。
当某个用户使用一些远程命令,如rsh,rcp,rexec,rlogin以及rdist命令时,如果系统产生“权限被拒绝”的错误,如何找出错误的原因?本篇文档介绍了一些查找问题的方法和步骤。
下面的例子是用户使用rcp命令时产生出的错误信息:
rcp 0826-813 - permission denied
说明:
1.远程命令使用的设置以及查找问题的相关步骤
若要使用一些远程命令,如rsh,rcp,rlogin以及rdist命令,需要在系统中设置$HOME/.rhosts文件或者/etc/hosts.equiv文件,它们的权限应该为600。文件中应该包含允许远程访问的主机的主机名以及相应的用户名。
例如,如果你希望从fozzie主机上rsh到bert主机,并且以root用户的身份执行date命令,进行下面的操作。
在fozzie主机上,执行下面的命令:
# rsh bert date
系统返回了下面的错误信息:
#rshd: 0826-813 Permission is denied.
在bert主机上,我们检查下面的内容:
# cat /.rhosts |grep fozzie
#fozzie root
(上面一行的内容是正确的)
# ls -l /.rhosts
# -rw------- (.rhosts文件的权限为600,也是正确的)
# cat /etc/netsvc.conf
# hosts=local,bind4
(上面返回的信息说明主机名及IP地址的解析是先通过/etc/hosts文件,再通过DNS服务器进行的).
# cat /etc/hosts |grep fozzie
# not found (因此主机 bert 将通过DNS解析fozzie主机)
# host fozzie
#fozzie.austin.ibm.com is 10.1.4.18
# host 10.1.4.18
#fozzie.austin.ibm.com is 10.1.4.18
上面有关fozzie主机的信息与.rhosts文件中的不匹配。要更正这一错误,可以修改/etc/hosts文件,使用fozzie主机的短名,即,不包含域名的主机名,或者是修改.rhosts文件,使用fozzie主机的包含域名的长名。为了和/etc/netsvc.conf文件中的设置保持一致,我们修改/etc/hosts文件:
# vi /etc/hosts
增加下面一行:
10.1.4.18 fozzie
下面的命令及其返回的信息显示如下:
# host fozzie
fozzie is 10.1.4.18
# host 10.1.4.18
fozzie is 10.1.4.18
现在返回到fozzie主机,再次执行下面的命令:
# rsh bert date
系统返回下面的信息:
#Tue May 21 10:16:39 CDT 2004
命令成功执行。
2.使用“who am i”命令查找问题的原因
查找使用远程命令中产生的名字解析错误原因的另一个方法是使用命令“who am i”。
例如:
从fozzie主机telnet或者rlogin到bert主机上,然后执行命令“who am i”:
#who am i
#root pts/0 Sep 21 10:18 (10.1.4.18)
上面返回的信息说明我的身份是root,我是从10.1.4.18的IP地址登录到bert主机上的。如果要在fozzie主机上执行远程命令到bert主机,bert主机上的
.rhosts文件需要指定fozzie的IP地址,应该包含下面的内容:
10.1.4.18 root
3.其它可能需要查看的信息
在使用远程命令出现问题时,还有一些其它的项目可能需要查看并确认设置的正确性:
(1)检查系统授权的正确性:
# lsauthent-->krb5 standard AIX
也许需要进行如下的修改:
将系统的授权更改为std
# lsauthent -> 空白...更改为std
# chauthent -std
# lsauthent-> 显示为Standard AIX
(2)检查需要使用的各种命令的权限是否正确:
# ls -al /usr/bin/rsh
#-r-sr-xr-x 2 root system 303506 Feb 10 14:11 /usr/bin/rsh
#ls -l /usr/sbin/rshd
#-r-sr-xr-- 1 root system 24556 Feb 10 14:12 /usr/sbin/rshd
#ls -l /usr/bin/rcp
#-r-sr-xr-x 1 root system 319972 Apr 08 2001 /usr/bin/rcp
#ls -al /usr/bin/rlogin
#-r-sr-xr-x 1 root bin 306328 Apr 10 2002 /usr/bin/rlogin
# ls -al /usr/sbin/rlogind
#-r-sr-xr-- 1 root system 33864 Jul 17 2002/usr/sbin/rlogind
上面的命令除了rshd 和rlogind 是4554外,所有其它命令的权限都应该是 4555 -r-sr-xr-x 。
阅读(16909) | 评论(0) | 转发(0) |