Ubuntu20.04,debian重置root密码/忘记密码/密码重置/linux

上周,我那个朋友在Ubuntu2 0.04 和Debian系统上遇到了重置root密码的难题。
他说,他先在Ubuntu2 0.04 上长按SHIFT键进入了GRUB菜单,然后编辑了"linux"行,去掉"ro",添加了"rwinit=/bin/bash"。
接着按Ctrl+X启动系统,在命令行中使用"passwdroot"命令重置了密码。

但是,他说遇到了"Authentication token manipulation error",这时他尝试了"chattr-i/etc/passwd/etc/shadow"。
他还提到了如果遇到空间不足问题,可以使用"df"和"du"检查并删除无用文件,或者使用"find"命令删除临时文件和0字节文件。

在Debian系统上,他也是重启后进入GRUB菜单,选择"e"进入编辑模式,修改"linux"行,将"ro"改为"rw",并添加"init=/bin/sh",然后启动系统并重置密码。

至于CentOS7 ,他说重启后进入登录加载页面,编辑"linux"行,修改为"rwinit=/bin/sh",然后进入系统拯救模式,输入新密码重置,最后更新系统信息并重启。

不过,我那个朋友在操作过程中也遇到了一些困难,他说有些步骤不是很清楚,可能需要更详细的指南。
算了,我觉得这种问题还是留给懂行的人解决比较好。
你看着办吧。

如果linux的root密码忘记了怎么办

说白了,重置Linux root密码就这几步,但操作不当容易炸系统。
先说最重要的,要在系统启动瞬间用GRUB编辑内核参数,加个rd.break就能让系统卡在根文件系统只读模式。
去年我们跑的那个项目,有个哥们忘了改参数顺序,直接把系统挂载成了只读,结果半天搞不定。
另外一点,chroot切换前必须确保根文件系统是可读写的,用mount命令确认,不然改密码命令直接报错。
还有个细节挺关键的,如果是SELinux系统,忘了touch .autorelabel会触发下次启动全盘文件重标,我一开始也以为这能跳过,后来发现不对,必须手动做。

说实话挺坑的,这个rd.break参数加的位置和顺序很讲究,UTF-8 编码下空格不能乱加。
提醒一句,操作前最好备份下/etc/shadow文件,虽然重置密码本质是修改这个文件,但万一命令写错了比如用成了root用户权限...等等,还有个事,如果系统是LVM挂载的,可能还需要先激活物理卷,这个很多人没注意。

建议新手先在虚拟机里练手,或者找台废弃服务器试试。
你觉得用临时密码登录再改会更稳妥,还是直接一步到位重置更高效?