Ale*_*ios 68
以下是我能想到的几种方法,从侵入性最小到侵入性最大。
使用 sudo:如果您有sudo
运行权限passwd
,您可以执行以下操作:
sudo passwd root
Run Code Online (Sandbox Code Playgroud)
输入您的密码,然后为 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 的发行版会)。你现在是root。更改您的密码:
sudo passwd root
Run Code Online (Sandbox Code Playgroud)
和reboot
,或者,如果您知道您的正常运行级别,请说telinit 2
(或其他任何内容)。
替换init
:表面上类似于单用户模式技巧,指令大致相同,但需要更强大的命令行。你像上面一样启动你的内核,但是single
你添加了init=/bin/sh
. 这将/bin/sh
代替运行init
,并将为您提供一个几乎没有便利设施的非常早期的外壳。此时,您的目标是:
passwd
运行。passwd
命令更改密码。根据您的特定设置,这些可能是微不足道的(与单用户模式的说明相同),也可能是非常重要的:加载模块、初始化软件 RAID、打开加密卷、启动 LVM 等。没有init
,您就不会运行守护进程或任何其他进程,而是运行/bin/sh
它的子进程,因此您实际上是靠自己的。你也没有工作控制,所以要小心你输入的内容。一个放错地方cat
,如果你不能摆脱它,你可能不得不重新启动。
Rescue Disk:这个很简单。启动您选择的救援磁盘。挂载您的根文件系统。该过程取决于您的卷的分层方式,但最终归结为:
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
Run Code Online (Sandbox Code Playgroud)
显然,$SOME_ROOT_DEV
是救援磁盘分配给您的根文件系统的任何块设备名称,并且$EDITOR
是您最喜欢的编辑器(可能必须vi
在救援系统上)。之后reboot
,让机器正常开机;root 的密码将是您自己的用户的密码。以 root 身份登录并立即更改。
显然,上面有无数的变化。它们都归结为两个步骤:
我认为这应该适用于任何发行版。
如果您可以从另一个系统访问根分区,例如 Live CD,您可以从那里以 root 身份进行编辑/etc/shadow
;首先你必须chmod u+w shadow
。找到 的条目root
,它可能是第一个,看起来像这样:
root:$6$asdG0[..etc...]ae/:15666:0:99999:7:::
Run Code Online (Sandbox Code Playgroud)
擦除前两个冒号之间的所有内容,最终得到:
root::15666:0:99999:7:::
Run Code Online (Sandbox Code Playgroud)
然后chmod u-w shadow
。您现在可以重新启动系统,root 将没有密码。您只需root
在登录提示处输入,它就不会要求输入。然后您可以使用passwd
设置一个。
要特别小心:
/etc/shadow
。 归档时间: |
|
查看次数: |
243356 次 |
最近记录: |