开发者社区> 科技小能手> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

无法更改密码的解决办法--passwd: User not known

简介:
+关注继续查看
公司内部有台记录客户信息的小系统,搭建在Linux平台,平时一切都很正常,公司搞程序开发的需要修改内容了就通过ftp上去直接修改文件,但是今天通过ftp就是无法登陆上去,ftp是用proftpd搭建的,开始还以为是proftpd配置出了问题,但是经检查一点问题都没有,再接着修改密码,可是改密码的时候提示一个以前没见过的信息:passwd: User not known to the underlying authentication module
在网上查了N久资料也没搞清楚,之后看到有说pwck,pwconv命令可以解决。
pwck 的作用就是检查 /etc/passwd 这个帐号设定档内的内容,与实际的家目录是否存在等, 还可以比对 /etc/passwd /etc/shadow 的内容是否一致,另外, 如果 /etc/passwd 内的资料栏位错误时,会提示使用者修订。
# pwck
用户 adm:目录 /var/adm 不存在
用户 news:目录 /etc/news 不存在
用户 uucp:目录 /var/spool/uucp 不存在
用户 gopher:目录 /var/gopher 不存在
用户 pcap:目录 /var/arpwatch 不存在
用户 sabayon:目录 /home/sabayon 不存在
无效的用户名“#tom”
pwck:无改变
上面仅是告知我,这些帐号并没有家目录,由于那些帐号绝大部分都是系统帐号, 确实也不需要家目录的,所以,那是‘正常的错误!’,相对应的群组检查可以使用 grpck 这个指令。
pwck 确保系统鉴认信息的完整性,pwck 对每一项的以下域进行检查:
-是否有唯一的用户名
-是否有合法的用户ID和组ID
-是否有合法的主组-是否有合法的家目录
-是否有合法的壳(命令解释器,如bash)
对于每一项的域数目和唯一用户名字的检查是至关重要的.如果某一项的域数目不正确,用户将被提示是否删除整行,如果用户没有肯定的回答,pwck将不再继续进行检查.如果有重复的用户名,用户将被提示是否删除该项,pwck将继续进行检查.其他的错误都只会警告用户,并且鼓励用户运行usermod命令去把错误改正.
一些对/etc/passwd文件进行操作的命令,如果无法对遭到破坏或者有重复项进行修改的话,pwck就要在这些情况下进行操作,把这些项删除.
# pwconv
这个指令主要的目的是在‘将/etc/passwd 内的帐号与密码,移动到/etc/shadow 当中!’ 早期的 Unix 系统当中并没有/etc/shadow ,所以,使用者的登入密码早期是在/etc/passwd 的第二栏,后来为了系统安全,才将密码资料移动到/etc/shadow 内的。 使用 pwconv 后,可以:
    * 比对/etc/passwd 及/etc/shadow ,若/etc/passwd 内存在的帐号并没有对应的/etc/shadow 密码时,则pwconv 会去/etc/login.defs 取用相关的密码资料,并建立该帐号的 /etc/shadow 资料;
    * 若/etc/passwd 内存在加密后的密码资料时,则pwconv 会将该密码栏移动到/etc/shadow 内,并将原本的/etc/passwd 内相对应的密码栏变成 x !
一般来说,如果正常使用useradd 增加使用者时,使用 pwconv 并不会有任何的动作,因为/etc/passwd 与/etc/shadow 并不会有上述两点问题啊! 不过,如果手动设定帐号,这个 pwconv 就很重要!
在执行前,密码文件中的内容如下:

执行之后的如下:
当再次修改密码时提示正确:
# passwd ftpadmin
Changing password for user ftpadmin.
New UNIX password: 
Retype new UNIX password: 
passwd: all authentication tokens updated successfully.
通过FTP已经能够连上去。
顺便附上proftpd的配置,仅供参考:


本文转自 zhangzj1030 51CTO博客,原文链接:http://blog.51cto.com/tech110/284656

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Linux【实操篇】—— 用户管理、linux系统root密码找回方式
Linux【实操篇】—— 用户管理、linux系统root密码找回方式
107 0
SAP Fiori Elements - how to set breakpoint to get converted xml view parsed by f
SAP Fiori Elements - how to set breakpoint to get converted xml view parsed by f
28 0
开源项目推荐:GSL科学计算函数库(GNU Scientific Library),实现VS2019源码编译
开源项目推荐:GSL科学计算函数库(GNU Scientific Library),实现VS2019源码编译
382 0
独家对话AAAI、ACM、ACL三会会士Raymond J. Mooney | 香侬专栏
德克萨斯大学奥斯汀分校计算机系教授、人工智能实验室主任 Raymond J. Mooney 带领他的人工智能小组研究了多个领域,目前他的主要研究方向是自然语言处理和计算语言学。其本人曾在 2008-2011 年间担任国际机器学习协会(ICML 主办方)主席,曾多次担任 ICML、ACL、AAAI、EMNLP、NAACL 等会议主席或领域主席,现在为美国计算机学会(ACM)、国际人工智能学会 (AAAI)、国际计算语言学会(ACL)三会会士 。
2181 0
OSX系统中root密码失效的解决办法
刚遇到OSX操作系统的root密码失效。即使输入正确的密码也无法进入系统。可以重新设置Root密码恢复一下 【Mac设置Root密码]   Mac系统重新设置root用户密码   如果不知道root用户密码,需要重设。
670 0
调用非托管dll常出现的bug及解决办法
C和C++有很多好的类库的沉淀,在.NET中,完全抛弃它们而重头再来是非常不明智的、也是不现实的,所以,我们经常需要通过Pinvoke来使用以前遗留下来的非托管的dll。就.NET中使用非托管的dll经验而言,经常碰到的问题至少有两个,它们都是通过在运行时抛出异常来体现的。
962 0
23704
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载