如何在Linux中重置root用户密码

时间:2020-03-21 11:44:52  来源:igfitidea点击:

如何在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发行版是相同的。