问题描述
我使用我的用户名登录我的Ubuntu服务器。登录后,我正在输入passwd
命令。收到以下错误消息后输入新密码,但输入一秒钟:
passwd: Authentication token manipulation error
passwd: password unchanged
这有什么不对?如果我无法物理访问该服务器,即我使用终端远程连接ssh
,如何更改密码。
最佳解决方案
如果插入错误的密码
$ passwd
Changing password for rinzwind.
(current) UNIX password:
passwd: Authentication token manipulation error
passwd: password unchanged
你得到这个错误。如果您确定插入了正确的密码,如果您使用的是阴影密码文件并且阴影没有该用户的条目,则此错误也可能会出现(基本上/etc/passwd
有此用户的条目,但/etc/shadow
没有)。
为了解决这个问题,您可以手动添加条目(首先进行备份!!!)或使用pwconv
(Manpage)重新创建影子文件。
次佳解决方案
做这两件事只是为了确保:
mount -o remount,rw /
第一部分将根分区重新安装为读/写,因为它只处于读取模式。它实际上卸载了根分区,然后再次以读/写方式安装它。
然后这样做:
chmod 640 /etc/shadow
然后做sudo passwd USER
。它应该在那之后工作。此部分为影子文件提供了正确的权限。
第三种解决方案
我不确定它是怎么发生的。 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
因此解决方案是删除密码然后重置新密码。
希望这可以帮助。
第四种方案
pam-auth-update
修复了我弄乱的/etc/pam.d/common-password
第五种方案
另一个问题可能是磁盘已满。重置密码时出现此错误,之后使用df
检查了我的磁盘,发现磁盘上没有可用空间。释放一些后,我可以没有问题重置密码。
第六种方案
如果您使用SELinux,运行此命令可以解决我的问题。
restorecon -v /etc/shadow
感谢this conversation提供的解决方案。
第七种方案
检查您是否搞砸了/etc/pam.d/
中的common-password文件。如果您的当前密码与common-password
想要的密码不匹配,这将导致错误。在我的情况下,这就是我获得该身份验证令牌错误的原因。