在做老师布置的练习的时候,尝试修改用户的密码,结果出现了如下错误:passwd:User not known to the underlying authentication。通过上网查找资料后得知pwck,pwconv可以帮我解决这个问题。所以为了记住这种方法,将其记录下来与大家分享。
首先说明一下,我曾多次手动添加过账户,在/etc/passwd、/etc/shadow里面的信息比较乱,有些信息想要手动删除却怎么也删不掉,于是才引发了我后来修改密码时出错的原因。下面主要介绍一下如何解决这种问题。
其次,我们先熟悉两个linux下的命令,一个是pwck命令,一个是pwconv命令:
pwck是验证系统认证信息的完整性,检查 /etc/passwd、/etc/ shadow中所有条目的格式是否正确、每个字段的信息是否有效。系统会提示用户删除格式不正确的条目和其他不可纠正的错误;pwconv会根据根据/etc/passwd创建/etc/shadow,这样可以有效的管理用户的账号信息。然后依次执行一下命令即可。
[root@taumy ~]# sudo /usr/sbin/pwck
用户 adm:目录 /var/adm 不存在
用户 news:目录 /etc/news 不存在
用户 uucp:目录 /var/spool/uucp 不存在
用户 gopher:目录 /var/gopher 不存在
用户 ftp:目录 /var/ftp 不存在
用户 pcap:目录 /var/arpwatch 不存在
用户 avahi-autoipd:目录 /var/lib/avahi-autoipd 不存在
用户 sabayon:目录 /home/sabayon 不存在
无效的密码文件项
delete line ''? yes
用户 mysql:目录 /home/mysql 不存在
no matching password file entry in /etc/passwd
delete line 'u1:!!:15970:0:99999:7:::'? yes
pwck:文件已被更新
[root@taumy ~]# passwd nomas
Changing password for user nomas.
New UNIX password:
BAD PASSWORD: it is too simplistic/systematic
Retype new UNIX password:
passwd: all authentication tokens updated successfully
用另一种方法修改密码同样得到你想要的结果:
[root@taumy ~]# echo "abc123" | passwd --stdin nomas
Changing password for user nomas.
passwd: all authentication tokens updated successfully.
转载于:https://blog.51cto.com/taumycheung/1302941