root密码忘了怎么办:三种主流恢复方案

root密码忘了怎么办,你优先区分系统环境,本地物理机可进入单用户模式重置,云服务器大多支持控制台VNC重置,远程无控制台权限且没有其他sudo账号时,重置成功率偏低;单用户模式修改不需要原密码,但需要你拥有服务器物理访问或者控制台直连权限,Ubuntu、CentOS、Rocky的启动菜单操作存在差异,修改后记得同步更新SELinux上下文,避免登录异常,容器内root密码丢失不能用主机单用户方案,需要重建容器或者挂载原容器文件系统修改shadow文件,该方法不适合已经开启全盘加密且没有加密密钥的主机,全盘加密状态下无法直接读取系统分区文件。

root密码忘了怎么办单用户模式重置

重启服务器,在GRUB启动菜单选中内核,按e进入编辑界面,找到以linux16或者linux开头的启动行,把行尾的ro改成rw,再添加init=/sysroot/bin/sh参数,按Ctrl+x进入shell环境。进入后执行chroot/sysroot切换到真实系统环境,执行passwd命令设置新root密码,密码复杂度遵循系统默认策略,太短会被拒绝。CentOS系列系统执行完改密码后,需要输入touch/.autorelabel,用于触发SELinux自动重新标记文件,跳过这一步会出现登录失败,完成后输入exit退出chroot,再执行reboot重启主机。GRUB菜单如果设置了密码锁定,你无法进入编辑页面,这条路径就走不通。

看GRUB是否加密。

root密码忘了怎么办云服务器控制台重置

云厂商自带的重置功能不需要进入单用户模式,操作路径是进入实例详情页,找到重置实例密码选项,选择root账号,输入新密码后触发重置,部分平台会同步重启实例,重启时长一般在1到3分钟。这个方案的前提是你拥有云账号的实例管理权限,安全组没有限制控制台VNC通道,实例没有绑定自定义镜像且镜像没有禁用密码插件。重置完成后,优先用VNC登录验证,不要直接用SSH连接,SSH密钥登录模式下,密码重置不会影响密钥,你依旧可以使用原有密钥登录。

root密码忘了怎么办挂载系统盘修改shadow

把故障主机的系统盘拆卸,挂载到另一台同架构的Linux主机上,先使用lsblk识别挂载分区,找到存放/etc/shadow的根分区,执行mount命令挂载到临时目录,打开shadow文件,找到root开头的一行,删除两个冒号之间的密码哈希字符串,保存退出。卸载分区后装回原服务器,此时root账号变成无密码状态,开机后立刻执行passwd设置新密码。不要直接清空shadow文件其他字段,只删除密码段,改动其他字段会造成账号彻底失效。

方案必备条件风险点适用场景
单用户模式可进GRUB、无GRUB密码漏做SELinux标记会登录失败本地物理机、自有虚拟机
云控制台重置拥有实例管理权限密钥登录不受密码修改影响公有云主机
挂载改shadow可以拆卸/挂载系统盘改错shadow字段会损坏账号无法进GRUB、无云控制台

容器环境的root密码处理逻辑和物理机不一样,docker容器本身不依赖shadow文件管理登录密码,如果你是exec进入容器的root密码丢失,直接删除容器,用原有镜像重新启动,数据放在挂载卷内就不会丢失,不要尝试把主机单用户操作套用到容器上,容器隔离机制会拦截这类修改。

全盘加密LUKS分区,没有保存解密密钥,所有修改shadow、单用户重置的办法都会失效,分区数据无法读取,不存在可行的密码恢复方式,只能放弃分区内数据重装系统。

日常运维可以提前准备备用sudo权限账号,当root密码忘了怎么办的场景出现时,你登录备用账号,执行sudopasswdroot直接重置root密码,全程不用重启服务器,中断业务的概率很低,这也是运维行业里比较推荐的前置预案。

SSH密钥登录不等于密码登录,很多服务器关闭了root密码登录,只允许密钥登录,就算重置了root密码,SSH连接依然会拒绝密码验证,你需要修改sshd_config文件里PasswordAuthentication参数,改为yes,重启sshd服务之后密码登录才生效。

敬慕百科汇集百科知识与游戏文化,带你发现世界的每一个精彩角落。

想要了解更多关于root密码忘了怎么办的文章欢迎访问:百科