如果我们不知道root密码,也没有对计算机的root访问权限,我们如何更改root密码?
如果我们不知道root密码,也没有对计算机的root访问权限,我们如何更改root密码?
Answers:
从最小的干扰到最大的干扰,以下是我可以想到的几种方法。
使用sudo:如果您具有sudo
运行权限passwd
,则可以执行以下操作:
sudo passwd root
输入您的密码,然后输入root两次新密码。做完了
编辑文件:在您没有完全sudo
访问权限,但您确实具有编辑权限的情况下,这种方法不太可能发生/etc/{passwd,shadow}
。/etc/shadow
用sudoedit /etc/shadow
或用打开sudo $EDITOR /etc/shadow
。:
用您自己的用户的密码字段替换root的密码字段(第二和第三个冒号之间的所有随机字符)。救。本地密码与您相同。登录并将密码更改为其他密码。
这些是简单的。
单用户模式:Renan刚刚解释了这一点。如果您可以转到GRUB(或引导加载程序),并且可以编辑Linux命令行,那么它将起作用。如果使用Debian,Ubuntu和其他一些工具,则无法使用。某些引导加载程序配置需要输入密码,您必须知道该密码才能继续。无需再费周折:
kernel
或开头的行linux
。您的系统将以单用户模式启动。某些发行版目前不会要求您提供root密码(Debian和基于Debian的则是这样)。你现在是根。更改您的密码:
mount / -o remount,rw
passwd # Enter your new password twice at the prompts
mount / -o remount,ro
sync # some people sync multiple times. Do what pleases you.
reboot
和reboot
,或者,如果您知道自己的正常运行水平,请说出telinit 2
(或说什么)。
替换init
:从表面上类似于单用户模式的技巧,使用的指示基本相同,但在命令行方面需要更多技巧。您按照上面的方法引导内核,但是single
添加了init=/bin/sh
。这将运行/bin/sh
在的地方init
,并会给你一个非常,几乎没有设施早外壳。此时,您的目标是:
passwd
运行。passwd
命令更改密码。根据您的特定设置,这些操作可能很简单(与单用户模式的说明相同),或者非常不重要:加载模块,初始化软件RAID,打开加密卷,启动LVM等。没有init
,您将不会运行dæmons或任何其他进程,而是运行/bin/sh
其子进程,因此您实际上是一个人。您也没有工作控制权,因此请小心输入。一个放错了位置cat
,如果无法离开它,您可能必须重新启动。
救援磁盘:这很容易。引导您选择的应急磁盘。挂载您的根文件系统。该过程取决于卷的分层方式,但最终归结为:
# do some stuff to make your root volume available.
# The rescue disk may, or may not do it automatically.
mkdir /tmp/my-root
mount /dev/$SOME_ROOT_DEV /tmp/my-root
$EDITOR /tmp/my-root/etc/shadow
# Follow the `/etc/shadow` editing instructions near the top
cd /
umount /tmp/my-root
reboot
显然,$SOME_ROOT_DEV
救援磁盘将任何块设备名称分配给您的根文件系统,并且$EDITOR
是您最喜欢的编辑器(可能必须vi
在救援系统上)。之后reboot
,让机器正常启动;root的密码将是您自己的用户的密码。以root用户身份登录并立即进行更改。
显然,上述内容有无数种变化。他们都归结为两个步骤:
我认为,这几乎适用于任何发行版。
如果您可以从另一个系统(例如,实时CD)访问根分区,则可以从那里以root身份进行编辑/etc/shadow
;首先,你必须chmod u+w shadow
。找到的条目root
,它可能是第一个,看起来像这样:
root:$6$asdG0[..etc...]ae/:15666:0:99999:7:::
擦除前两个冒号之间的所有内容,因此您最终得到:
root::15666:0:99999:7:::
然后chmod u-w shadow
。现在,您可以重新引导系统,而root用户将没有密码。您只需root
在登录提示下键入,它就不会要求您输入。然后,您可以使用passwd
来设置一个。
要特别小心:
/etc/shadow
first 的备份副本。passwd
Live CD 运行在chroot环境中不是更好的主意吗?
/etc/shadow
从我认为您正在使用RHEL的标签来看,但是该解决方案对于所有发行版都应该同样有效。
如果忘记了root密码,则可以在单用户模式下引导并使用它来更改密码。红帽分步指南中介绍了这种方法:
kernel
,再按e一次。single
。然后按ENTER并b从中取出。您最终将得到一个提示,您可以在其中键入passwd root
和更改密码。然后键入reboot
以重新引导系统。
/boot/grub/grub.conf
以删除引导程序密码,/etc/inittab
并将单用户外壳程序更改为/ bin / sh(cc @pradeepchhetri)