无法更改密码的解决办法--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

相关文章
|
6月前
|
关系型数据库 Linux 数据库
修改postgres密码
修改postgres密码
|
2月前
|
缓存 关系型数据库 MySQL
MySQL登录时出现Access denied for user ‘root‘@‘localhost‘ (using password: YES)无法打开的解决方法
MySQL登录时出现Access denied for user ‘root‘@‘localhost‘ (using password: YES)无法打开的解决方法
|
4月前
|
关系型数据库 MySQL
MySQL用户相关-修改用户名及删除用户
MySQL用户相关-修改用户名及删除用户
29 0
|
9月前
|
关系型数据库 MySQL Linux
Linux登录mysql忘记密码Access denied for user ‘root‘@‘localhost‘ (using password: YES)错误
Linux登录mysql忘记密码Access denied for user ‘root‘@‘localhost‘ (using password: YES)错误
83 0
|
5月前
|
关系型数据库 MySQL 数据库连接
root用户数据库连接出现错误号码**** Access denied for ‘root‘@‘IP‘(using password:YES)
root用户数据库连接出现错误号码**** Access denied for ‘root‘@‘IP‘(using password:YES)
28 0
|
6月前
|
安全 关系型数据库 MySQL
如何重置MySQL数据库的root用户密码
如何重置MySQL数据库的root用户密码
68 0
|
关系型数据库 MySQL 数据库连接
mac 环境下 登陆失败问题Access denied for user 'root'@'localhost' (using password: YES)
mac 环境下 登陆失败问题Access denied for user 'root'@'localhost' (using password: YES)
112 0
|
安全 Linux Shell
手动修改/etc/shadow和/etc/passwd中的用户密码
1.手动修改/etc/shadow中的用户密码 /etc/shadow文件 第一字段:用户名(也被称为登录名),在/etc/shadow中,用户名和/etc/passwd 是相同的,这样就把passwd 和shadow中用的用户记录联系在一起...
3802 0
|
关系型数据库 MySQL 数据库
WAMP中的MySQL设置密码(默认密码为空)
WAMP中的MySQL设置密码(默认密码为空)
437 0
WAMP中的MySQL设置密码(默认密码为空)
|
算法 Apache 数据安全/隐私保护