尝试更改我的用户密码时出现“身份验证令牌操作”错误

Bak*_*yor 89 password-recovery

我正在使用我的用户名登录到我的 Ubuntu 服务器。登录后,我正在输入passwd命令。在收到以下错误消息后输入新密码但一秒钟:

passwd: Authentication token manipulation error
passwd: password unchanged
Run Code Online (Sandbox Code Playgroud)

这里有什么问题?如果我无法实际访问该服务器,即我正在ssh使用终端进行远程连接,我该如何更改密码。

Lui*_*ado 69

做这两件事只是为了确保:

mount -o remount,rw /
Run Code Online (Sandbox Code Playgroud)

第一部分将根分区重新挂载为读/写,因为它仅处于读取模式。它实际上卸载根分区,然后以读/写方式再次挂载。

然后这样做:

chmod 640 /etc/shadow
Run Code Online (Sandbox Code Playgroud)

然后做sudo passwd USER。在那之后它应该工作。这部分为影子文件提供了正确的权限。

  • 这对我有用。谁能帮我理解我刚刚做了什么? (3认同)
  • @炖不。它应该保持像读/写一样。仅当您想对磁盘进行 fsck 以解决某些无法正确引导的问题或其他问题时才这样做。默认情况下,Ubuntu Server/Desktop 应该在读/写模式下使用 root 启动。因此,在问题(任何导致问题的原因)解决后,不应需要此方法。 (2认同)

Rin*_*ind 48

如果你输入了错误的密码

$ passwd
Changing password for rinzwind.
(current) UNIX password: 
passwd: Authentication token manipulation error
passwd: password unchanged
Run Code Online (Sandbox Code Playgroud)

你得到这个错误。如果您确定插入了正确的密码,如果您使用的是影子密码文件并且影子没有该用户/etc/passwd的条目(基本上有该用户的条目,但/etc/shadow没有),则也可能会出现此错误。

为了解决这个问题,您可以手动添加条目(首先进行备份!!!)或使用pwconv(手册)重新创建影子文件。


小智 12

pam-auth-update
Run Code Online (Sandbox Code Playgroud)

修复了我的烂摊子 /etc/pam.d/common-password


Ber*_*ard 7

我不确定它是怎么发生的。sudo 用户创建了我的帐户,然后将其删除,然后再次创建。

这是我发现的

mount -o remount,rw /
passwd
passwd: Authentication token manipulation error
Run Code Online (Sandbox Code Playgroud)

没变。

sudo pwck
Run Code Online (Sandbox Code Playgroud)

显示没有错误。

sudo grpck
Run Code Online (Sandbox Code Playgroud)

显示没有错误。

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-
Run Code Online (Sandbox Code Playgroud)

看起来很正常。

sudo cat /etc/shadow |grep oracle
oracle:$6$FsPqyplr$DrIvjFDSx0ipHmECMw1AU5hTrbNMnnkGRdFlaQcM.p3Rdu2OLjY20tzUTW61HlFH16cal56rKlLuW4j2mK9D.:15833:0:99999:7:::
Run Code Online (Sandbox Code Playgroud)

显示用户和加密密码。

sudo cat /etc/shadow- |grep oracle
Run Code Online (Sandbox Code Playgroud)

什么也没显示。不确定这意味着什么,但看起来不对。

sudo passwd -d oracle
passwd
Run Code Online (Sandbox Code Playgroud)

所以解决方案是删除密码然后重置新密码。

希望这可以帮助。