Chinaunix首页 | 论坛 | 博客
  • 博客访问: 104298
  • 博文数量: 23
  • 博客积分: 1583
  • 博客等级: 上尉
  • 技术积分: 250
  • 用 户 组: 普通用户
  • 注册时间: 2010-03-06 00:49
文章分类

全部博文(23)

文章存档

2011年(2)

2010年(21)

分类: LINUX

2011-01-14 15:57:51

今天有同事打电话来说有台机器不能更改root密码,而且root用户也没密码,于是普通用户登录上去,su到root,执行passwd命令
root@[/root]$ passwd

结果就一直挂在这了,没反应了,看日志也没消息。看见root用户后的提示符是$不是#,看是不是这里出了问题,查看下PS1变量
root@[/root]$ echo $PS1
root@[`pwd`]$
一切正常 ,没问题。
然后查看/etc/passwd 和/etc/shadow,一切正常,文件没问题。开始同事说是root用户不能改密码,于是我试了下别的用户,也是同样的效果。

然后试试:
mas@[/mas]$ echo "redhat"|passwd --stdin mas
z&rbbc]r#@^V
mas@[/mas]$
居然出现这样一堆东西。。。。

突然想了下,是不是别人把passwd这个文件的内容给改了,于是执行习惯性的执行下which passwd。。问题找到了。。
root@[/root]$ which passwd
/mas/bin/passwd ---很明显位置不对啊。
root@[/root]$
根本就不是系统的passwd命令,于是在查看环境变量
root@[/root]$ echo $PATH
/mas/bin:/app/jdk1.5.0_15/bin:/usr/lib64/qt-3.3/bin:/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

root@[/root]$ ls -l /mas/bin/passwd
-rwxr-xr-x 1 mas mas 6248 2007-05-26 /mas/bin/passwd
这下真相大白了,原来是应用里面也有个passwd文件, 而且正好在PATH路径的最前面,所以执行passwd命令的时候就执行的是/mas/bin/passwd,而不是系统的passwd命令。找个好的机器看下passwd路径
[oracle@xxx]$ which passwd
/usr/bin/passwd
于是在故障机上执行/usr/bin/passwd能改密码了。。问题解决

root@[/root]$ /usr/bin/passwd
Changing password for user root.
New UNIX password:
BAD PASSWORD: it is too short
Retype new UNIX password:
passwd: all authentication tokens updated successfully.
root@[/root]$
以上就是解决这次小故障的过程和思路。。





阅读(1674) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

chinaunix网友2011-03-08 20:55:02

很好的, 收藏了 推荐一个博客,提供很多免费软件编程电子书下载: http://free-ebooks.appspot.com