问题描述
我忘了我的Ubuntu密码,因此我启动进入恢复过程并进入root shell提示符,这就是发生了什么事:
root@username-PC:~# passwd username
Enter new UNIX password:
Retype new UNIX password:
passwd: Authentication token manipulation error
passwd: password unchanged
最佳解决思路
还要确保你正在挂载文件系统的读/写。
在立即选择’Drop into root shell prompt’后,我发现文件系统被安装为只读,这会阻止重置密码。
选择将/
重新挂载为read/write
并返回到root shell提示符的选项将启用密码更改。
在更改密码之前运行的命令是:mount -rw -o remount /
次佳解决思路
我不确定它是如何发生的。一个sudo用户创建我的账户,然后删除它,然后再次创建它。
这是我发现的
mount -o remount,rw /
passwd
passwd: Authentication token manipulation error
不用找了。
sudo pwck
显示没有错误。
sudo grpck
显示没有错误。
ls -l /etc/passwd /etc/group /etc/shadow /etc/shadow-
-rw-r--r-- 1 root root 767 May 7 16:45 /etc/group
-rw-r--r-- 1 root root 1380 May 7 16:45 /etc/passwd
-rw-r----- 1 root shadow 1025 May 8 09:11 /etc/shadow
-rw------- 1 root root 1025 May 7 16:46 /etc/shadow-
看起来很正常。
sudo cat /etc/shadow |grep oracle
oracle:$6$FsPqyplr$DrIvjFDSx0ipHmECMw1AU5hTrbNMnnkGRdFlaQcM.p3Rdu2OLjY20tzUTW61HlFH16cal56rKlLuW4j2mK9D.:15833:0:99999:7:::
显示用户和加密的密码。
sudo cat /etc/shadow- |grep oracle
一无所获。不知道这是什么意思,但看起来不正确。
sudo passwd -d oracle
passwd
所以解决方案是删除密码,然后重置新密码。
希望这可以帮助。
我最初在这里发布尝试更改用户密码时出现“Authentication token manipulation”错误,但谷歌首先显示这个结果,所以我re-posted。
第三种解决思路
通过更改设备日期未设置的设备的密码,我得到了此错误。 (即它在启动后是随机的)
基本上发生的是,当我更改密码时,非法时间戳更新到/etc/shadow
。之后,无法使用该帐户登录或更改其密码。即使使用root帐户,也不可能再次更改该密码。
要修复该帐户,我必须:
-
设置正确的日期
-
编辑理智过期/将密码更改日期修改为
/etc/shadow
文件(我使用了上次工作的影子文件) -
使用root-rights将密码更改为新密码。
第四种思路
此错误来自PAM(可插入验证模块),该模块表示模块无法获得新的验证令牌(有关此错误的更多详细信息,请查看auth.log
)。
这与您在/etc/pam.d/
目录中找到的授权设置有关(例如common-auth
中的minimum_uid
或其他一些限制必备标记)。所以请仔细检查PAM模块中的设置是否正确。
请参阅:man pam_chauthtok
PAM_AUTHTOK_ERR
: A module was unable to obtain the new authentication token.
有时,在为当前没有设置当前密码的用户更改密码并且passwd
仍要求输入密码时,可能会发生此错误,因此解决方法是通过添加sudo
强制更改,例如:sudo passwd $USER
。
参考资料