自学内容网 自学内容网

单用户模式下执行passwd root ,返回的是(current) UNIX passwd

在单用户模式下执行 passwd root 时,系统提示输入 (current) UNIX password: 而不是直接提示 New password:,通常是因为当前的单用户模式仍要求验证旧密码。这种情况可能并不常见,但以下几种原因可能导致这种现象:


1. 单用户模式未绕过密码验证

在现代 Linux 系统中,为了增强安全性,单用户模式可能会要求提供 root 用户的密码(尤其是使用 GRUB 加密或配置了增强的安全策略的系统)。因此,即使你进入了单用户模式,passwd 命令可能仍要求验证旧密码。

解决方法:
尝试直接按当前 root 用户的密码。如果记不住密码或根本不知道密码,可以使用以下方法跳过密码验证并直接重置密码:

  • 编辑 GRUB 配置时,在内核参数后添加 init=/bin/bash
  • 挂载根文件系统为读写:
    mount -o remount,rw / 
  • 直接修改密码:
    passwd root 

如果仍然提示旧密码,可以手动编辑 /etc/shadow 文件清除 root 密码(见下方的手动修改方式)。


2. passwd 命令行为差异

某些发行版或具体环境中,passwd 的行为可能会导致需要验证当前密码。这可能是 PAM(Pluggable Authentication Module)配置导致的。

解决方法: 手动编辑 /etc/shadow 文件清除 root 密码:

  1. 打开文件:
    vi /etc/shadow 
  2. 找到 root 行:
    root:$6$hashedpasswordhere:19000:0:99999:7::: 
  3. 清空密码字段(删除 : 后第一个冒号之间的内容),改成如下形式:
    root::19000:0:99999:7::: 
  4. 保存并退出后,重启系统:
    reboot 
  5. 系统启动后再次进入单用户模式,为 root 设置新密码:
    passwd root 

3. PAM 模块或认证机制问题

如果系统的 PAM 配置文件(位于 /etc/pam.d/ 目录)被修改或存在问题,也可能导致需要输入旧密码。

解决方法:
临时跳过 PAM 认证机制,在单用户模式下直接使用 passwd 修改密码,或者按照以下步骤修复 PAM 配置:

  1. 检查 /etc/pam.d/passwd 文件是否正常:
    cat /etc/pam.d/passwd 
  2. 如果发现文件损坏或配置异常,可以从类似系统复制默认配置文件,或者重装相关软件包修复。

4. 系统默认要求旧密码

一些定制化的 Linux 系统可能默认在所有场景下要求输入旧密码(例如,某些企业内部署的版本)。

解决方法:
按照上述步骤,清空 /etc/shadow 中 root 用户的密码字段,强制跳过旧密码验证。


如果你能够确认此行为是由系统安全策略引起,而非其他问题,那么这种提示也算是“正常”行为。但如果你希望完全跳过旧密码验证,按以上方法调整即可。


原文地址:https://blog.csdn.net/zyqash/article/details/143746423

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!