> 文章列表 > 一次密码修改失败bug解决过程 passwd: Authentication token manipulation error

一次密码修改失败bug解决过程 passwd: Authentication token manipulation error

一次密码修改失败bug解决过程 passwd: Authentication token manipulation error

Authentication token manipulation error 这个错误直译就是:认证令牌操作失败错误。这个问题之前已经遇到过一次,所以按照以前的方法来处理的。

        这个问题百度来的博客思路一般两个:

1.保存用户密码的两个文件是否无修改权限

2.磁盘已满导致无法修改

思路1

/etc/passwd 用户信息文件 和/etc/shadow用户密码文件。在/etc/shadow中能看到用户密码策略的一些信息。所以我先看了下了,是否这两个文件出了权限问题。

[root@master ~]# lsattr /etc/passwd  /etc/shadow
---------------- /etc/passwd
---------------- /etc/shadow

发现并没有设置不允许修改的权限,所以不是这个问题。

然后看第二个思路

df -h

发现根目录挂载的剩余空间很多,所以也不是这个问题。从这开始,我就在导出找是不是其它原因了。比如是不是这个用户有问题,或者密码设置不对?最后想到是不是密码策略有关

还有个文件 /etc/pam.d/system-auth

linux的用户与密码用户策略比如密码强度,然后看到一篇文章上说重复密码次数,有一篇文章通过查看系统日志找错误信息,/var/log/messages 但是message里并没有有用的信息,然后看下目录下面,还有个security日志,cat /var/log/secure 最后看到一行日志,无法打开旧密码文件检查旧密码。

passwd: pam_unix(passwd:chauthtok): can't open /etc/security/opasswd file to check old passwords

/etc/security/opasswd 旧密码保存文件,是因为在 /etc/pam.d/system-auth中强制不能和最近的5个旧密码相同,所以在查找旧密码时,发现没有 opasswd文件报错了,校验失败,没法修改密码。

password    sufficient    pam_unix.so sha512 shadow nullok try_first_pass use_authtok remember=5

所以解决方法,1不校验旧密码。2.创建旧密码文件。我用了第二个方法。

最能追根求源的方法,果然还是看日志。

最后总结一下,主要知识是密码修改相关的知识,

1.修改密码的策略

所有的设置都在/etc/pam.d/system-auth里,包括密码强度,大小写,特殊字符之类。比如是否旧密码校验。

2.密码保存文件

/etc/passwd  /etc/shadow 要修改密码成功,这两个文件必须有写,修改权限。

参考博客:

修改服务器密码及passwd时报错passwd: Authentication token manipulation error_wd520521的博客-CSDN博客

https://www.cnblogs.com/1chenxi1/p/13859862.html

linux 密码设置及登陆控制/设置密码复杂度 (/etc/pam.d/system-auth)_西京刀客的博客-CSDN博客