为何Solaris 11中root本地登录正常,rsh访问却提示‘account expired’?
Solaris 11下root用rsh提示"account expired"的解决办法
问题根源
Solaris 11的in.rshd服务对root用户的验证逻辑和本地登录不一样——本地登录不会卡密码过期属性,但rsh会严格检查,哪怕你本地登root完全没问题,只要密码有效期相关配置不对,rsh就会扔出"account expired"。
先排查确认问题
查root的密码状态:
passwd -s root输出字段依次是用户名、密码状态、最后修改日期、最小期限、最大期限、警告天数、不活动期限。要是最大期限是0或者不活动期限有数值,大概率就是这个问题。
直接查看
/etc/shadow里的root条目:grep root /etc/shadow重点看第5个字段(最大密码有效期),正常应该设为99999(永不过期);第7个字段(账号过期日期)得是空值,不能有具体日期。
修复方案
方法1:把root密码设为永久有效
直接执行以下命令,拉满最大密码期限,同时设置不活动期限为无限制:
passwd -x 99999 root passwd -i -1 root
方法2:放宽rsh的root验证(仅限封闭网络)
编辑/etc/default/login文件,添加一行配置:
PERMIT_ROOT_LOGIN=yes
之后重启rsh服务:
svcadm restart network/rpc/rsh
方法3:检查.rhosts权限
别忽略/root/.rhosts的权限要求,必须是600,所有者得是root,否则rsh可能返回异常错误:
chmod 600 /root/.rhosts chown root:root /root/.rhosts
验证修复
执行测试命令确认:
rsh <目标服务器IP> whoami
如果返回root,说明问题解决,后续可以正常用rsh/rcp执行文件复制操作。
内容的提问来源于stack exchange,提问作者Martin
相关产品推荐
相关产品推荐

