如何解决「sudo: unable to change expired password: Authentication token manipulation error」报错
root密码过期导致sudo无法使用的解决方案
你之前尝试的方法无效的核心原因:sudo命令在执行任何指令前,都会先校验账号有效期,此时已经触发了root密码过期的流程,所以你传入的mount指令根本不会被执行,自然无法解决问题。你需要绕开sudo直接进入root权限环境操作,步骤如下:
1. 进入单用户模式
- 重启服务器,在GRUB启动选择界面按
e进入编辑模式 - 找到以
linux开头的配置行,在行尾添加rw init=/bin/bash - 按下
Ctrl + X启动,即可直接进入拥有root权限的bash环境,无需输入密码
2. 确认根分区读写权限
执行如下命令查看根分区挂载状态:mount | grep /
如果输出中显示根分区为ro(只读)状态,执行以下命令重新挂载为读写:mount -o remount,rw /
3. 重置root密码并修改过期规则
直接执行passwd命令修改root密码:passwd root
按照提示输入两遍新密码即可。如果不需要root密码定期过期,可以执行以下命令将密码有效期设为永久:chage -M 99999 root
可以执行chage -l root查看当前密码有效期配置,确认修改生效。
4. 修复SELinux标签(CentOS/RHEL系列发行版必做,其他发行版可跳过)
执行如下命令,下次启动会自动重打SELinux标签,避免权限异常:touch /.autorelabel
5. 重启系统
执行以下命令正常启动系统即可:exec /sbin/init
重启完成后再使用sudo命令就不会再触发过期报错了。
内容的提问来源于stack exchange,提问作者sj p
相关产品推荐
相关产品推荐

