ARTICLE DETAIL

资讯详情

深耕商务建站与企业官网运营的一线实战洞察。

银河麒麟V10密码忘了怎么办?单用户模式重置密码实战指南

银河麒麟V10密码忘了怎么办?单用户模式重置密码实战指南 简介银河麒麟桌面操作系统V10(sp1)用户若忘记登录密码而无法进入系统这份PDF手册提供了基于单用户模式的完整恢复路径并兼顾X86与arm两种架构。资源共1个文件、约327KB内容精炼围绕grub界面启动项编辑、进入单用户模式、使用passwd命令重置密码以及强制重启等关键环节展开配有界面截图和操作注意事项可帮助用户在不重装系统的前提下重新设置密码。目前已有1024人学习下载既适合普通桌面用户应急自救也适合运维人员掌握Linux系统修复环境的基础维护方法。通过阅读该手册读者能理解grub参数如init/bin/bash的实际作用熟悉命令行修改密码的流程并积累安全重启与故障排错的经验具有较强的实用参考价值。1. 银河麒麟V10(sp1)密码忘了别着急单用户模式就是后悔药某天早上我像往常一样打开工位那台银河麒麟桌面V10(sp1)输入密码却提示认证失败连续三次之后账号被锁定。更麻烦的是系统盘里有几个月来整理的资料没有备份到共享服务器重装系统等于把这些文件全部丢掉。遇到这种情况第一反应不是重装而是用 Linux 自带的单用户模式把密码重置掉。整个流程不用光盘、不用 U 盘只用 GRUB 菜单里改一个启动参数进到一个最小 shell 后执行 passwd 命令重启后密码就变回你自己掌握的那串字符。这篇文章把这套操作拆成可以直接照着做的步骤把参数含义、常见报错、加密磁盘等边界条件也都讲清楚。适合正在用银河麒麟V10(sp1)做工作站、办公终端的读者也适合第一次接触国产 Linux 密码恢复机制的新手。2. 改密码前先看懂引导链路GRUB参数、内核启动模式与根文件系统挂载2.1 单用户模式不是绕过密码而是跳过登录认证先说结论单用户模式不会破解密码它只是让系统以最小运行级别启动跳过图形桌面、网络服务和登录认证直接给 root 一个 shell。你看到的那个 root 提示符不是绕过了什么加密而是 Linux 本来就在物理控制台预留了这条路用于系统维护和灾难恢复。银河麒麟V10(sp1)桌面版使用 systemd 管理服务所以触发单用户模式最常见的方式是往内核启动参数里加systemd.unitrescue.target。这条参数的意思就是让 systemd 进入救援模式整个系统从多用户运行目标切到一个最简目标只挂载必备文件系统、不启动网络和图形界面。还有一条更硬的路init/bin/bash。内核在完成基础准备工作后不启动 systemd而直接启动/bin/bash。此时你可能没有完整的挂载也没有服务只有一个 shell。这种方式对改密码来说其实最稳妥因为它不受图形、驱动、服务卡壳的影响。我见过很多情况图形界面驱动崩溃、或者某个服务超时systemd.unitrescue.target卡在启动过程里死活进不去而init/bin/bash却干净利落地给你一个提示符。所以如果你是第一次操作直接选init/bin/bash成功率更高。改了密码后执行exec /sbin/init能把系统拉回正常启动流程后面我会详细说。2.2 ro/rw 与根文件系统挂载是写密码的前提在 GRUB 编辑界面里我们要找以linux开头的那一行。这一行里通常有一个参数ro意思是只读让内核在初始阶段把根分区以只读方式挂载。开机期间这是保护措施防止文件系统在没有完全就绪时被写入破坏。但单用户模式下我们改/etc/shadow恰恰需要写入权限所以必须把ro改成rw即读写。这个改动只对本次启动有效内核启动参数不会把这次修改写成持久配置下次正常开机还是默认ro。如果你用了init/bin/bash即使忘了改rw也可以在 bash 里手动执行mount -o remount,rw /重新挂载根目录。所以两条路都可行。我个人的习惯是双保险GRUB 参数里写rw进入 shell 后仍然用mount | grep / 看一眼实际挂载状态如果显示为ro就再执行一次 remount。这个操作几乎是零成本但能避免很多“passwd 明明执行成功重启后密码却被拒绝”的怪事。在 GRUB 编辑界面里linux 行大概是这样的# 修改前示例版本号以你机器实际为准 linux /vmlinuz-xxx root/dev/mapper/xxx ro quiet splash # 修改后 linux /vmlinuz-xxx root/dev/mapper/xxx rw quiet splash systemd.unitrescue.target这里把ro改成rw是让内核用可写方式挂载根文件系统追加的systemd.unitrescue.target是告诉 systemd 启动救援模式。如果你打算用init/bin/bash则把后面的systemd.unitrescue.target替换成init/bin/bash两者不要同时加同时加容易让后续操作思路混乱。2.3 动手前先确认三个变量加密盘、安全标签、用户名拼写第一磁盘加密。如果机器在 GRUB 之后又出现“请解锁磁盘”之类的界面说明系统盘做了 LUKS 加密。单用户模式绕过的是登录认证不是磁盘加密。磁盘加密口令是另一个密钥体系一旦忘记只能靠当初做全盘加密时留的恢复口令或备份软件层面基本无解。如果你现在还有一台能登录的普通用户终端可以运行blkid或lsblk -f查看分区情况看到crypto_LUKS字样就属于这类但如果你已经完全不能登录就只能靠回忆开机时是否有解密界面了。第二安全标签。银河麒麟V10(sp1)默认启用安全增强机制。重置 root 密码后/etc/shadow这个文件的安全上下文可能和策略不一致下次登录时 PAM 会拒绝。规避办法是在退出单用户模式前执行touch /.autorelabel让系统在重启时自动重新标记文件的安全上下文。别嫌麻烦很多密码改完却登录不上的案例都是这个细节引起的。第三用户名拼写。改密码前想清楚是改 root 还是普通用户。普通用户名称是安装时创建的常见的是kylin也有其他自定义名。如果我在救援提示符下执行passwd kylin而系统里根本没有这个用户会提示cant identify user。执行id 用户名可以确认用户是否存在或者查看/etc/passwd文件里有哪些用户。下表是几个常见启动参数的作用对比方便你做选择启动参数进入后的状态改密码时需要补做的操作systemd.unitrescue.target进入救援 shell根文件系统按 ro/rw 状态挂载确认根可写必要时 remountinit/bin/bash直接进入 bash需手动挂载mount -o remount,rw / 再执行 passwdrd.break进入 initramfs 阶段 shell需要 chroot /sysroot 后才能 passwd特别提醒一句网上很多教程写rd.break那是 RHEL/CentOS 7 上用的 dracut 机制银河麒麟V10(sp1)桌面版不一定适用。如果你按rd.break操作后进了一个带switch_root提示符的迷你环境不要慌那是 initramfs 阶段需要先执行mount -o remount,rw /sysroot再chroot /sysroot最后才能 passwd。这个流程比较绕桌面版首选还是前两种参数。2.4 什么情况下别硬扛单用户模式直接上安装 U 盘单用户模式有一个前提你能物理接触这台机器或者至少能在远程控制台界面上操作。如果你通过 SSH 远程管理机器开机卡在登录界面但你无法重启它那就别指望这条路径。另外如果 GRUB 菜单本身损坏、开机直接黑屏或只有命令行光标按 e 也不会有反应这时候建议用银河麒麟安装 U 盘启动进入安装程序的“试用”或“救援”模式然后挂载系统分区、chroot 进去改密码。常见做法是用启动盘进入安装界面后按 CtrlAltF2 打开 shell然后找到系统盘挂载点比如mount /dev/sda2 /mnt再mount --bind /proc /mnt/proc、mount --bind /dev /mnt/dev、mount --bind /sys /mnt/sys最后chroot /mnt后直接 passwd。流程比单用户模式重得多但能处理连 GRUB 都挂掉的极端情况。新手如果遇到这种状态更建议找熟悉运维的同事一起处理不要在业务机器上反复试错。2.5 操作前先备份 shadow 文件给自己留后悔药进入单用户模式后第一件事不是急着改密码而是先把/etc/shadow备份一份。这个文件保存着所有用户的密码哈希和策略信息一旦改出问题还能原样恢复。我在实际操作中很少遇到改坏的情况但备份的成本极低价值极高cp /etc/shadow /etc/shadow.bak-$(date %Y%m%d)执行后可以先ls -l /etc/shadow.bak-*确认文件已经生成。如果后面因为安全标签或其它问题导致密码无法登录可以再进一次单用户模式用cp /etc/shadow.bak-xxx /etc/shadow把备份覆盖回去然后重启。不过要注意备份出来的 shadow 文件权限必须是600如果覆盖后权限变了要执行chmod 600 /etc/shadow否则 PAM 会拒绝读取。3. 单用户模式实操GRUB编辑、passwd命令与重启验证3.1 中断正常启动按 e 进入 GRUB 编辑界面第一步是重启这台银河麒麟V10(sp1)。如果系统当前卡在登录界面可以直接按机箱电源键强制重启但建议先通过菜单里的“重启”选项走一遍正常重启流程。开机后留意屏幕出现银河麒麟标志或 GRUB 菜单时用方向键选中第一项然后按e键进入编辑模式。有的机器启动太快GRUB 菜单一闪而过这时可以在刚开机那一刻连续按 Shift 键或 Esc 键Intel NUC、联想、华为这些整机实现不太一样但大多数支持 ShiftGPT/UEFI 引导的机器 Esc 也可以。我遇到过一个案例一个同事的机器按 Shift 没有反应后来发现是一直按得太晚要关机后刚通电那一刻就猛按否则直接进系统了。进入编辑界面后屏幕显示的是当前启动项的完整配置包括几个加载内核模块的行。找到以linux开头的那一行它包含了vmlinuz、root等参数。用方向键把光标移动到该行按 Home 跳到行首检查ro参数的位置再按 End 跳到行尾准备追加内容。在编辑过程中屏幕上可能会有很多内容看不全不用担心左右键可以横向滚动。3.2 修改 ro 为 rw 并追加启动目标对 linux 这一行做两处改动。第一处把出现的ro改成rw。这个ro可能出现在root参数后面的任意位置注意不要改错只改小写的ro不要动含有root、rhgb等字样的参数。第二处在行尾追加空格和systemd.unitrescue.target。如果你打算用init/bin/bash路线则追加init/bin/bash两者不要同时加。同时加的后果是 systemd 的 unit 参数会被忽略init 参数后系统直接执行/bin/bash反而没问题但容易让后续操作混乱所以我每次都只加一个。修改完成后按 CtrlX 或 F10不同 GRUB 版本提示不同启动。这时系统不会进入图形登录界面而是进入一个终端环境最后停在一个#提示符下表示你现在已经是 root 身份。如果你使用的是虚拟机比如在 VMware 里按 CtrlX 后要点一下虚拟机窗口捕获键盘不然按键会落在宿主机上这个细节也容易懵。3.3 在救援 shell 里确认挂载并执行 passwd进入 shell 后先不要急着输入 passwd因为根文件系统的实际挂载状态可能和预期不一致。执行mount | grep -E / 输出里看第二列的挂载点找到根目录那一行如果包含rw说明已经是可写如果显示ro说明还处于只读状态执行mount -o remount,rw /重新挂载一次。这一步是解决 “passwd: Authentication token manipulation error” 这类报错的关键。挂载确认可写后就可以执行密码重置命令了passwd root输入两次新密码屏幕不会回显这是正常的。如果目标是普通用户把用户名替换即可passwd kylin执行后会输出类似passwd: password updated successfully的信息表示写入成功。这里有个参数可以顺便用passwd -S root可以查看 root 密码状态能看到密码是否已设置、距离上次修改的天数等信息适合确认修改结果。如果你设置的新密码太简单比如只有 6 位纯数字passwd 会提示BAD PASSWORD但通常仍会强制写入。login 时系统只会按新密码校验后续不会强制要求你改成复杂密码除非管理员设置了 pam_pwquality 的强制策略。3.4 退出单用户模式并重启密码改完后需要退出单用户模式让系统继续正常的启动流程。如果你用的是systemd.unitrescue.target可以在 shell 里先执行touch /.autorelabel然后输入exit并按 Enter。exit 会退出救援模式systemd 会继续拉起之前的启动任务最终走到图形登录界面。如果 exit 后卡住了或者你想立刻重启可以执行reboot -f强制重启。注意强制重启前尽量先sync让文件数据落盘sync touch /.autorelabel reboot -f如果你用的是init/bin/bash因为系统没有 systemd 在管理exit 退出 shell 后内核可能直接报 panic此时正确的回到正常系统的方法是exec /sbin/init这条命令会把当前 shell 替换成 init 进程从而进入系统的正常启动路径。执行后屏幕上会出现大量服务启动日志等一会儿看是否出现登录界面。如果exec /sbin/init因为某种原因失败再试reboot -f也不迟。重启后在登录界面输入你刚刚设置的新密码能进桌面就说明整个恢复流程走完了。3.5 用 systemd.unitrescue.target 还是 init/bin/bash这两种方式前面已经说过原理实际中我建议系统能正常走进 GRUB但怀疑图形驱动或桌面环境有问题时用init/bin/bash最省心如果你希望进入后环境更“完整”比如还要修复网络或重启某个服务用systemd.unitrescue.target更合适。从改密码这个目标来看两者没本质区别只要记住init/bin/bash后必须手动 remount 根文件系统exit 退出可能不顺畅需要exec /sbin/init。另外无论哪种方式操作完成后都不要直接拔电源除非你确认没有未同步的数据。如果你遇到的是 UEFI Secure Boot 开启的机器部分版本可能不允许内核启动参数被手工修改按 CtrlX 后会被拒绝。这种时候要在 BIOS 里临时关闭 Secure Boot或者走 U 盘救援方式。银河麒麟V10(sp1)工作站在企业环境里开启 Secure Boot 的情况不多但确实存在我建议先查一下 BIOS 设置再操作。4. 避坑指南五个常见翻车现场与排查办法以下五条是我在实际操作中见过的翻车情况按“现象 → 原因 → 解决”的顺序写每一条都可能让你多折腾半小时提前看一眼能省不少事。4.1 现象按 e 后找不到 linux 开头的行满屏乱码原因GRUB 编辑界面默认字体较小分辨率低时启动条目文字会被截断或压扁linux 行可能卷到屏幕外。解决先用方向键滚动或者直接按 CtrlL 清屏然后重复按两次 e 退出重进让 GRUB 重新绘制界面。如果还不行在 GRUB 菜单按 c 进入命令行输入set pager1再用上下键查看但这对新手不太友好。最实在的做法是在正常系统里把 GRUB 分辨率调大比如改/etc/default/grub里的GRUB_GFXMODE1024x768然后执行update-grub。不过作为临时救援我一般直接凭经验盲操作按照行内容中root或vmlinuz字样定位因为 linux 行必然包含这两个关键词。4.2 现象启动后卡死在 “Started Show Plymouth Boot Screen” 或日志刷屏原因systemd.unitrescue.target在启动过程中仍然会拉起一些基础服务如果某个设备驱动或文件系统服务超时就会一直等待。比如我之前遇到一台集成显卡驱动加载超时的机器救援模式卡了将近一分钟才进 shell。解决把启动参数改成init/bin/bash绕开 systemd 直接进入 bash。如果机器已经到了救援 shell 但卡住可以等 30 秒还是没有提示符就强制重启换init/bin/bash。另外在 linux 行末尾加systemd.shell/bin/bash也可以但不如直接init参数简单。4.3 现象passwd 命令报错 Authentication token manipulation error这是改密码场景下最常见的报错。现象是在输入两次密码后系统提示无法更新令牌。原因是根文件系统仍处于只读状态/etc/shadow写入失败。解决先用mount命令确认根挂载参数如果显示ro执行mount -o remount,rw /后重新 passwd。还有一种次要原因磁盘满了导致 shadow 文件无法写入。可以用df -h查看根目录可用空间如果 100% 了先清理日志再改密码。我一般会顺手执行df -h /和ls -l /etc/shadow看权限如果 shadow 文件权限不是 600也先chmod 600 /etc/shadow再 passwd。4.4 现象密码改成功但重启后新密码登录时反复回到登录界面现象是输入新密码后屏幕一闪又弹回登录界面好像根本没验证。原因很多最常见的是安全上下文问题重置密码后的 shadow 文件与安全策略不匹配PAM 认证被拒绝。解决如果走init/bin/bash退出前必须touch /.autorelabel如果已经退出并且开机出现登录循环可以再进一次单用户模式执行touch /.autorelabel然后重启。第二个原因是键盘布局不同单用户模式下可能是en_us布局而登录界面用了其他布局设置的复杂密码里有特殊字符被输入成别的符号。解决设置密码时尽量用字母和数字避免特殊字符或者改用系统自带的虚拟键盘输入。4.5 现象普通用户密码改了但登录后提示无法解锁钥匙环钥匙环是 Linux 桌面系统保存浏览器密码、Wi-Fi 密码等凭据的组件。普通用户的登录密码改了钥匙环的解锁密码还是旧密码所以桌面会反复弹出“输入密码以解锁密钥环”的提示。解决在图形界面登录后打开“密码和密钥”应用修改默认钥匙环的密码为新密码或者直接删除旧的默认钥匙环系统会重新生成。不过这是在能进入桌面的前提下。如果连桌面都进不去那还是在登录后处理钥匙环不要尝试用命令行删除钥匙环容易丢失其他凭据。这个问题不影响系统使用但很烦人提前知道会少一点困惑。5. 把这次经验沉淀成习惯密码重置后的验证与下次预防5.1 恢复后先做一次密码状态体检密码改完不是终点还要确认这个新密码在系统策略里是“健康”的。进到桌面后打开终端执行chage -l kylin这条命令会显示用户名的密码过期时间、距密码更改最近一次修改天数、密码有效期限等 7 项信息。如果看到“密码过期时间”是“从不”或者很久以后就没问题。也可以用passwd -S kylin查看状态。另外一个容易忽略的文件是/etc/shadow正常密码字段不是以!或*开头如果看到那种符号说明账号被锁还需要解锁。我一般还会顺手确认一下普通用户是否能正常使用 sudo避免只改了 root 密码、普通用户权限却丢失的尴尬。5.2 把这次操作记录成团队里的“后悔药”从那以后我每次给服务器或银河麒麟工作站维护完密码都会强制走一遍chage -l并且把机器型号、磁盘是否加密、GRUB 菜单入口方式、上次改密码日期记录到内部维基。下次有人再遇到同样问题哪怕凌晨值班也能照着记录十分钟处理好。不要相信自己的记性你一定会忘不如直接写下来。最后一个习惯是给机器提前配置好 SSH 密钥登录并且允许 root 或者一个管理用户通过密钥登录。这样即使密码忘了只要你还有另一个入口能进 shell就不用大动干戈走单用户模式。很多事都是这样提前一点配置能免掉后来的紧张。希望帮到你。本文还有配套的精品资源点击获取
返回列表
PREV
查看更多资讯
NEXT
返回资讯列表