如何在Linux中重置root用户密码
如何在Linux中重置或者恢复root用户密码。
我在以下三个发行版上测试了本教程:
- Arch Linux,
- CentOS,
- Ubuntu。
然而,其他分布的步骤也几乎相同。
首先,我们将从Arch Linux开始。
1.在Arch Linux中重置root用户密码
此方法在Arch Linux中进行了测试,但它可能在其他基于ARC的Linux Distrs上工作,例如Antergos,Manjaro Linux等。
在GRUB引导菜单中,使用箭头键选择ARCH Linux条目。
按E编辑引导菜单条目。
找到以Word Linux开头的行:
linux /boot/vmlinuz-linux root-UUID=d474f2-e6a2-4cc3-9899-aa98af13 rw quiet
在上面的一行末尾,添加以下行:
init=/bin/bash
请参阅以下屏幕截图。
在添加上面的行后,按Ctrl-X或者F10继续启动到单个用户模式。
此更改仅是临时的,不会在Boot菜单中保存.IST文件。
现在,我们达到了单一用户模式。
键入以下命令以在读/写模式下挂载根(/)文件系统。
mount -n -o remount,rw /
然后,使用命令更改root用户密码:
passwd
输入两次新密码。
最后,键入以下命令使更改生效并启动arch linux以正常模式。
exec /sbin/init
瞧!我们现在可以使用新的root用户密码登录Arch Linux服务器。
下载 - 免费提示和技巧教程:"Bash命令行Pro提示"
2.在CentOS 8.x中重置root用户密码
要在CentOS 8和Rhel Server Edition中恢复或者重置root用户密码,请参阅以下教程。
如何在CentOS 8/Rhel 8中重置root用户密码
3.在CentOS 7.x中重置root用户密码
我们可以用两种方法进行。
两者都略有不同,但容易。
此方法还将在Rhel 7.x上工作,科学Linux 7.x。
方法1:
在CentOS 7服务器上电源。
在"引导"菜单上,选择要启动的内核,然后按E编辑所选的引导条目。
找到线路rhgb安静:
...并用init =/bin/bash替换它
然后按Ctrl + X进入单个用户模式。
键入以下命令以将根(/)文件系统挂载到读/写模式。
mount -o remount,rw /
现在,使用命令更改root用户密码:
passwd root
输入两次新密码。
最后,运行以下命令以更新selinux:
touch /.autorelabel
然后,键入以下命令使更改生效并重新启动CentOS 7:
exec /sbin/init
现在,我们将能够以新密码作为root用户登录Centos 7.
方法2:
在GRUB引导菜单中,选择引导条目,然后按E编辑所选项目。
找到行ro:
将RO线更改为RW并添加另外的线路init =/sysroot/bin/sh
按Ctrl + X进入单个用户模式。
然后键入:
chroot /sysroot/
然后使用命令更改root用户密码:
passwd root
使用命令更新selinux:
touch /.autorelabel
重新启动系统。
exit
reboot
现在,我们可以使用新密码登录系统。
4.重置CentOS 6.x中的root用户密码
如果要重置CentOS 6.x系统和旧版本的root用户密码,请按照下列步骤操作。
此方法还将在Rhel 6.x上工作,科学Linux 6.x。
在"引导"菜单上,选择要启动的内核,然后按E编辑所选项目。
选择第二行(以Word Kernel开头),然后按E编辑该行。
转到行的末尾,然后键入S开始到单个用户模式。
然后,按ENTER键并按B键启动到单个用户模式。
在读/写模式下安装根(/)文件系统:
mount -o remount,rw /
使用命令更改root密码:
passwd root
最后重新启动CentOS 6服务器。
sync
reboot
我们现在可以使用新密码登录。
5.在Ubuntu中重置管理用户密码
我在Ubuntu 15.10服务器上测试了这个方法,但它可能适用于ubuntu 15.04/14.10/14.04等的其他Ubuntu版本。
我们可以用两种方法进行。
方法1:
在GRUB引导加载程序菜单中,选择我们使用的内核,然后按E进行编辑条目。
找到以Word Linux开头的行。
最后添加以下行。
init=/bin/bash
然后,按Ctrl-X或者F10启动到单个用户模式。
键入以下命令以将根(/)文件系统挂载到读/写模式。
mount -o remount,rw /
然后,使用命令更改管理帐户的密码:
passwd sk
这里sk是我的行政账户。
键入两次新密码。
最后,键入以下命令以启动Ubuntu与更新的密码。
exec /sbin/init
现在,我们将能够使用新密码登录。
方法2:
在GRUB启动领导菜单中,为Ubuntu条目选择高级选项。
选择第二个选项:恢复模式。
我们将看到恢复选项列表。
选择根丢弃到root shell提示符选项。
现在,我们将达到单个用户模式。
键入以下命令以在读/写模式下挂载根(/)文件系统。
mount -o remount,rw /
然后使用命令更改管理用户的密码,例如sk:
passwd sk
输入两次新密码。
然后,键入退出以返回恢复菜单。
选择恢复以启动Ubuntu系统。
我们可能会看到以下消息说:我们现在正在退出恢复模式。
按ENTER继续。
我们现在可以使用新密码登录。
所有上述方法都应适用于桌面和服务器版本。
如果我不知道用户名怎么办?
我不想重置root用户密码,但是其他普通用户的密码。
我该怎么做?
或者我们可能会要求我打算重置我的客户端系统的密码,并且我们都不知道用户名。
是否可以重置特定用户的密码?
是的你可以。
进入单个用户模式后,我们可以使用命令查看现有用户列表:
$cat /etc/passwd
示例输出:
root:x:0:0:root:/root:/bin/bash daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin bin:x:2:2:bin:/bin:/usr/sbin/nologin sys:x:3:3:sys:/dev:/usr/sbin/nologin sync:x:4:65534:sync:/bin:/bin/sync games:x:5:60:games:/usr/games:/usr/sbin/nologin man:x:6:12:man:/var/cache/man:/usr/sbin/nologin lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin mail:x:8:8:mail:/var/mail:/usr/sbin/nologin news:x:9:9:news:/var/spool/news:/usr/sbin/nologin uucp:x:10:10:uucp:/var/spool/uucp:/usr/sbin/nologin proxy:x:13:13:proxy:/bin:/usr/sbin/nologin www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin backup:x:34:34:backup:/var/backups:/usr/sbin/nologin list:x:38:38:Mailing List Manager:/var/list:/usr/sbin/nologin irc:x:39:39:ircd:/var/run/ircd:/usr/sbin/nologin gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/usr/sbin/nologin nobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologin systemd-timesync:x:100:103:systemd Time Synchronization,,,:/run/systemd:/bin/false systemd-network:x:101:104:systemd Network Management,,,:/run/systemd/netif:/bin/false systemd-resolve:x:102:105:systemd Resolver,,,:/run/systemd/resolve:/bin/false systemd-bus-proxy:x:103:106:systemd Bus Proxy,,,:/run/systemd:/bin/false syslog:x:104:109::/home/syslog:/bin/false messagebus:x:105:110::/var/run/dbus:/bin/false uuidd:x:106:111::/run/uuidd:/bin/false sshd:x:107:65534::/var/run/sshd:/usr/sbin/nologin sk:x:1000:1000:sk,,,:/home/sk:/bin/bash
或者,我们只能使用命令列出用户名:
awk -F':' '{ print }' /etc/passwd
示例输出:
root daemon bin sys sync games man lp mail news uucp proxy www-data backup list irc gnats nobody systemd-timesync systemd-network systemd-resolve systemd-bus-proxy syslog messagebus uuidd sshd sk
上述命令对于许多Linux发行版是相同的。