免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3533 | 回复: 3
打印 上一主题 下一主题

请高手帮忙看看为什么root修改不了密码? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-07-27 14:19 |只看该作者 |倒序浏览
我的系统版本为RehHat EnterPrise AS release 4 (Nahant Update 7),早两天发现root密码修改不了,报错如下:passwd: Module is unknown 。
下面为我用ldd检查到的一些信息,与我在虚拟机(RehHat AS 4.7,root的passwd命令正常)上检查到的一样。
[root@VERITAS ~]# ldd /usr/bin/passwd
        libuser.so.1 => /usr/lib/libuser.so.1 (0x00c2e000)
        libcrypt.so.1 => /lib/libcrypt.so.1 (0x00a8f000)
        libgobject-2.0.so.0 => /usr/lib/libgobject-2.0.so.0 (0x00367000)
        libgmodule-2.0.so.0 => /usr/lib/libgmodule-2.0.so.0 (0x00305000)
        libdl.so.2 => /lib/libdl.so.2 (0x00c28000)
        libglib-2.0.so.0 => /usr/lib/libglib-2.0.so.0 (0x0016e000)
        libpopt.so.0 => /usr/lib/libpopt.so.0 (0x0030a000)
        libpam_misc.so.0 => /lib/libpam_misc.so.0 (0x00c53000)
        libaudit.so.0 => /lib/libaudit.so.0 (0x00deb000)
        libselinux.so.1 => /lib/libselinux.so.1 (0x001eb000)
        libc.so.6 => /lib/tls/libc.so.6 (0x00af7000)
        libpam.so.0 => /lib/libpam.so.0 (0x00dba000)
        /lib/ld-linux.so.2 (0x00add000)


下面为/var/log/messages中的信息,我检查了虚拟机下/lib/security/pam_nxdrv.so这个文件也是不存在的
Jul 21 15:42:38 VERITAS sshd(pam_unix)[8025]: session opened for user hisun by (uid=0)
Jul 21 15:42:43 VERITAS su(pam_unix)[8058]: session opened for user root by hisun(uid=500)
Jul 21 15:43:19 VERITAS passwd: PAM unable to dlopen(/lib/security/pam_nxdrv.so)
Jul 21 15:43:19 VERITAS passwd: PAM [dlerror: /lib/security/pam_nxdrv.so: cannot open shared object file: No such file or directory]
Jul 21 15:43:19 VERITAS passwd: PAM adding faulty module: /lib/security/pam_nxdrv.so
Jul 21 15:44:22 VERITAS passwd: PAM unable to dlopen(/lib/security/pam_nxdrv.so)
Jul 21 15:44:22 VERITAS passwd: PAM [dlerror: /lib/security/pam_nxdrv.so: cannot open shared object file: No such file or directory]
Jul 21 15:44:22 VERITAS passwd: PAM adding faulty module: /lib/security/pam_nxdrv.so
Jul 21 15:45:00 VERITAS sshd(pam_unix)[8025]: session closed for user hisun
Jul 21 15:45:00 VERITAS su(pam_unix)[8058]: session closed for user root
Jul 21 15:57:14 VERITAS sshd(pam_unix)[8503]: session opened for user hisun by (uid=0)
Jul 21 15:57:43 VERITAS su(pam_unix)[8540]: session opened for user root by hisun(uid=500)

下面为我用strace -o passwd.log passwd 抓到passwd命令允行到log,将log中我认为的错误信息列出如下:
4行: access("/etc/ld.so.preload", R_OK)      = -1 ENOENT (No such file or directory)    #/etc/ld.so.preload在虚拟机中不存在
116行:  connect(4, {sa_family=AF_FILE, path="/var/run/nscd/socket"}, 110) = -1 ENOENT (No such file or directory)    #/var/run/nscd/socket目录在虚拟机中不存在
121行: connect(4, {sa_family=AF_FILE, path="/var/run/nscd/socket"}, 110) = -1 ENOENT (No such file or directory)     #/var/run/nscd/socket目录在虚拟机中不存在
175行: open("/lib/security/pam_nxdrv.so", O_RDONLY) = -1 ENOENT (No such file or directory)    #虚拟机中也不存在/lib/security/pam_nxdrv.so这个文件
208行: open("/lib/security/$ISA/pam_deny.so", O_RDONLY) = -1 ENOENT (No such file or directory)  #echo $ISA 不存在$ISA变量,pam_deny.so文件存在于/lib/security/pam_deny.so
226行: open("/lib/security/$ISA/pam_env.so", O_RDONLY) = -1 ENOENT (No such file or directory)  #echo $ISA 不存在$ISA变量,pam_env.so文件存在于/lib/security/pam_env.so
233行: open("/lib/security/$ISA/pam_unix.so", O_RDONLY) = -1 ENOENT (No such file or directory)  #echo $ISA 不存在$ISA变量,pam_unix.so文件存在于/lib/security/pam_unix.so
254行: open("/lib/security/$ISA/pam_deny.so", O_RDONLY) = -1 ENOENT (No such file or directory) #同上
255行: open("/lib/security/$ISA/pam_succeed_if.so", O_RDONLY) = -1 ENOENT (No such file or directory)  #echo $ISA 不存在$ISA变量,pam_succeed_if.so文件存在于/lib/security/pam_succeed_if.so
262行: open("/lib/security/$ISA/pam_permit.so", O_RDONLY) = -1 ENOENT (No such file or directory) #echo $ISA 不存在$ISA变量,pam_permit.so文件存在于/lib/security/pam_permit.so
269行: open("/lib/security/$ISA/pam_cracklib.so", O_RDONLY) = -1 ENOENT (No such file or directory) #echo $ISA 不存在$ISA变量,pam_cracklib.so文件存在于/lib/security/pam_cracklib.so
289行: open("/lib/security/$ISA/pam_limits.so", O_RDONLY) = -1 ENOENT (No such file or directory) #echo $ISA 不存在$ISA变量,pam_limits.so文件存在于/lib/security/pam_limits.so

附件为passwd.log和messages详细信息,请高手看看是什么原因导致root不能修改密码了,非常感谢。

log.rar

7.46 KB, 下载次数: 23

论坛徽章:
0
2 [报告]
发表于 2009-07-27 15:54 |只看该作者

module is unknown

解决passwd命令的“module is unknown”的错误
  /******************************************************************
  *本文首发于bbs.bluegem.org的linux区
  *本人email:chenfei@sohu.com
  *如转载本文,请保留首发地和本人联络方式,以方便交流,谢谢!
  ******************************************************************/
  背景:
  还是那个Minilinux的项目。我以rh9为蓝本,从一穷二白开始一点点加东西,最后做到2
  1m。但是执行passwd命令的时候系统报告“module is unknown”错误,我用ldd命令确
  认了所有和passwd有关的动态库,但是还是报同样的错误。
  解决过程:
  我先用# ldd /usr/bin/passwd找到所有和passwd命令有关的动态库,并且cp到相关的系
  统目录。还是有问题,我又考虑可能和ldconfig有关,我查看了ldconfig的配置文件/et
  c/ldconfig.conf,只有与kerbro等有关的配置。
  在google上查,老外说跟pam有关,什么ldopen有问题。但是没有人给出确切的答案。
  后来问了个朋友,他也确定是和Pam有关,但是也说不准确且的原因。他推荐我用strace
  跟踪一下,我就用# strace -o passwd.log passwd,把运行结果存到passwd.log里和正
  常的系统里的passwd运行结果比对,发现缺个库/usr/lib/libcrack.so.3,加上在运行
  ,还是不行,在用同样的方法,发现缺少/usr/lib/crack_dict*。
  至此,Passwd可以正常运行。
  
  单位不能上bbs了,完全凭写的,hoho。
  重要的不是如何解决问题,而是解决问题的思路。

论坛徽章:
0
3 [报告]
发表于 2009-07-27 22:21 |只看该作者
pam一般系统都有。

搜搜重新安装pam试试

论坛徽章:
0
4 [报告]
发表于 2009-07-28 20:18 |只看该作者

回复 #2 jine6666 的帖子

我在网上查找了就是按照你回复出来到方法做的,问题是根据passwd.log中的信息和我安装的linux虚拟机比较基本上没有什么不同的啊。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP