linux忘记了root密码,在网上搜索折腾了一番,重置了,记录如下。
1. 重启系统:按下电源键或在终端中使用reboot
命令重启计算机。
2. 进入GRUB引导菜单:在计算机启动过程中按下F2或Del(具体取决于您的系统配置)以进入GRUB引导菜单。我的服务器是先按F2或Del进入BIOS设置页面,再Esc退出进入了GRUB。
3. 编辑内核引导参数:在GRUB菜单中,使用箭头键选择您要启动的内核(通常是最上面的一项,如“Ubuntu”、“CentOS”等)。
然后按下e
键进入编辑模式。
4. 临时修改启动参数:
在引导行中找到“linux16”或“linux”开头的行。
将光标移动到这一行,在结尾处添加
init=/bin/bash
来进入单用户模式或紧急模式。
5. 启动系统:按下Ctrl
+ X
(或F10
,视GRUB版本而定)以应用更改并启动系统。
6. 重置root密码:系统将以低权限、无网络连接的单用户模式启动,此时无需密码即可获得root权限。在提示符下执行以下命令来重置root密码:
passwd root
按照提示输入新的root密码两次,然后确认密码更改成功。
注意,此时可能提示修改密码失败
passwd: Authentication token manipulation error
这是因为passwd文件是只读的,运行以下代码重新mount /路径为可读写。然后再修改密码
mount -o remount,rw /
chmod 640 /etc/shadow
7. 重启系统:执行exec /sbin/init
以重新启动系统到正常运行级别。现在可以用新密码以root身份登录了。
注意,如果是ssh登录,先以普通用户登录再su切换root,直接ssh root@x.x.x.x很可能失败,即使密码是对的。这是很多系统的默认安全设置。