马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
一、问题现象:改密码时报 authentication token manipulation error
在 Linux 上执行 passwd 改密码,末尾突然蹦出一行 authentication token manipulation error,然后密码没改成。这个报错看不懂,但它的指向其实很明确:系统根本没能落盘密码数据。
注意别被「authentication」这个词带偏——它不一定和账号、密码输错有关,更多时候是写文件失败被 PAM 层包装成了这句话。真正的原因通常落在四类上:文件系统只读、密码文件损坏、SELinux 拦截、PAM 配置出错。
二、原因一:根文件系统被挂载成只读
如果根文件系统处于只读(read-only)状态,那么任何试图修改文件系统上文件的操作都会失败,passwd 自然也写不进去。常见触发点是磁盘异常、文件系统检测到错误后内核自动降级为只读,或者人为用 ro 选项挂载过。
1. 先看挂载状态
mount | grep -E ' / | /home | /etc '
输出里对应挂载点后面带 rw 是正常,带 ro 就是问题所在。
2. 重新以读写方式挂载
mount -o remount,rw /
如果 remount 失败,说明文件系统有真实错误,要先修文件系统(fsck),务必在卸载或单用户模式下做,不要在线上直接 fsck 根分区。
3. 单用户模式这条退路
重启机器并在启动时选单用户模式(single-user mode),进去之后再执行上面的 mount 检查与 remount,这种环境下磁盘还没被业务进程占用,处理起来最安全。
三、原因二:/etc/passwd 或 /etc/shadow 损坏
这两个文件分别存用户账户信息和密码(哈希)。一旦它们损坏或属性异常(比如被写坏、权限错乱、被占用),改密码就会失败。
- 先看完整性:用
ls -l /etc/passwd /etc/shadow 确认权限(passwd 般是 644,shadow 是 640 且属 group shadow);
- 用校验命令:
pwck 检查用户账户信息,grpck 检查组账户信息,它们既会报问题也提供修复交互;
- 从备份回:如果确认文件坏了,用备份覆盖回来(时间机器、配置管理里的模板都可以),改完立刻验证登录。
顺带说一句:这两个文件损坏往往是「有人用编辑器直接改了一半」造成的。 改用户配置一律用 vipw / vipw -s,它们会先上文件锁并做语法校验,比 vim 硬改安全得多。
四、原因三:SELinux 策略限制
SELinux(Security-Enhanced Linux)可能会限制 passwd 这类命令的执行域,导致写 shadow 被拒绝。判断是不是它,看当前 enforce 状态最快:
getenforce # 输出 Enforcing / Permissive / Disabled
sestatus
临时放一下做验证(重启会失效,属于诊断手段):
setenforce 0
设完再试一次改密码。如果这次成功了,说明确实是 SELinux 策略卡住的,接下来要做的是调整策略或规则,而不是长期把 SELinux 关掉——关掉能马上解决问题,但等于把整套强制访问控制拆了,风险要自己衡量。
五、原因四:PAM 配置有问题
PAM(Pluggable Authentication Modules)是 Linux 认证的统一框架,passwd 的行为由 /etc/pam.d/passwd 以及 /etc/pam.d/common-password(Debian 系)等文件决定。配置不当同样会让改密码失败,而且报错往往和其他原因长得一模一样。
排查做法:
- 看
/etc/pam.d/common-password 里 password 段的模块顺序;
- 拿一台正常的同版本机器对比,差异基本一眼就能看出来;
- 改之前先备份,改完用
passwd 试一次确认恢复;
- 实在拿不准,就交给专业支持或维护窗口处理,别在业务的机器上反复试。
六、按顺序查一遍:排障流程
1. mount → 根分区是不是 ro
2. ls -l /etc/passwd /etc/shadow → 权限/属主对不对
3. pwck / grpck → 账户一致性
4. getenforce → SELinux 在不在拦
5. diff /etc/pam.d/common-password 与正常机 → 配置漂移
这五步从「最容易改、最常踩」排到「改动代价最大」。 只读挂载最常见,PAM 最容易被忽略;多数情况是第 1 步和第 4 步就能收尾。
七、预防措施
- 定期备份关键文件:
/etc/passwd、/etc/shadow、/etc/pam.d/ 纳入配置管理或定时备份;
- 定期检查系统健康:用
fsck 类的工具定期查文件系统完整性,别等只读了才想起;
- 合理配 SELinux 和 PAM:策略按需收紧,宁可先做白名单也不要长期 permissive;
- 变更走维护窗口:改用户体系的文件前先备份,改完立刻验证一次登录,别攒到出问题才发现。
八、结论
authentication token manipulation error 是一个典型的「表面报错、底层是写入失败」的问题,通常和文件系统状态、密码文件完整性、SELinux 策略或 PAM 配置有关。按上面的顺序逐项确认,绝大多数都能当场定位;查到最后还不行,那就先把变更停手,拿正常机器的配置做逐行比对,或者交给专业支持。
(本文由 qidao123.com企服评测-应用市场 编辑提示整理:示例基于常见 Linux 发行版的 PAM / SELinux 环境,适用于账号体系排障与配置审计。涉及 fsck、SELinux 策略变更请在维护窗口执行并先备份。) |