无法打开对控制台的访问根帐户被锁定(kali linux)

无法打开对控制台的访问根帐户被锁定(kali linux)

当我启动计算机时,我收到以下消息: 无法打开对控制台的访问 root 帐户已被锁定

我在网上快速检查了一下,发现了这个: 如何解决“无法打开控制台访问根帐户已锁定”的问题

我做了什么:

  1. 下载 SystemRescueCD 并制作启动盘
  2. FDISK 和安装:

# fdisk -l # find a drive

# mkdir /mnt/tmp

# mount -t ext4 /dev/sda2 /mnt/tmp

  1. 在文本编辑器中打开 [mountpoint]/etc/fstab

这是文件 /etc/fstab 的图片: 我的/etc/fstab

我真的不知道该评论哪一行(一切看起来都很好)。我唯一的想法就是评论第一个(#UUID=f08d3d7e...)。

然后我重新启动,我可以使用极简 shell 进行日志记录:

极简外壳

我可以sudo su,但这些文件只能读取,我无法进行任何升级或做任何有用的事情。

为了使文件可写,我mount -o remount,rw /这样做了,外壳消失了,并且出现了黑屏。

答案1

每当依赖互联网搜索或 ChatGPT 的故障排除说明时,您应该首先考虑两件事:

  • 这些说明应该解决的实际问题是什么?
  • 说明书作者提出的问题是否也适用于我?所有相关条件都一样吗?

切勿盲目遵循某些说明,因为它们恰好有与您目前看到的类似的错误消息。

您的系统正尝试进入救援模式,因为某些具有“required”类型依赖项的 systemd 单元出现故障。但由于直接登录 root 帐户被禁用,因此无法提示输入 root 密码,并且允许任何人访问系统根本不安全。

注意您在问题中链接的网页说:

此问题与更换驱动器有关。

不幸的是,这并不完全正确:在更改系统上的磁盘驱动器时没有更新/etc/fstab以匹配新配置导致最初问题的一种方法,但它是不是唯一的方法造成这种情况。任何导致具有类型依赖性的 systemd 单元required在启动时失败的任何情况都可能导致系统尝试进入救援模式。如果救援模式配置为在系统控制台上提供 root 登录,并且 Kali 的默认配置锁定了 root 帐户,那么这显然是救援模式配置工作方式的一个错误;这使得救援模式毫无用处。

/etc/fstab显然只引用了一个磁盘和一个 CD-ROM 驱动器,因此除非您最近对/dev/sda磁盘上的前三个分区中的任何一个进行了更改,您链接的网页中的解决方案可能不适用于您的情况

因此,您显然注释掉了/etc/fstab涉及根文件系统的行。现在系统显然进入了紧急模式。但至少您现在可以登录并成为 root。

在紧急模式下,标准的第一步是将根文件系统设置为读/写模式,以便您可以开始修复任何错误。作为 root,您可以通过以下方式执行此操作:

mount -o remount,rw /

但如果这导致错误消息,您可能需要在根文件系统上运行手动文件系统检查。由于您的根文件系统类型为ext4,因此命令为:

fsck.ext4 -C0 /dev/sda2

如果文件系统检查最后显示“文件系统已修改”,那么您应该在执行其他操作之前重新启动,因为内核可能已经缓存了根文件系统中的一些数据。如果该数据包含文件系统检查刚刚修复的任何错误,您不想冒险让根文件系统进入读/写模式,并可能导致内核立即将这些错误写回。

如果文件系统检查没有发现任何需要修复的内容,或者根文件系统切换到读/写模式而没有错误,那么下一步将开始找出到底是什么导致系统需要首先进入救援模式。此时可能是非常有用的命令systemctl statussystemctl list-units --state=failed您可能还想滚动浏览dmesg -H输出以查看是否有任何错误。

如果您在仍处于紧急模式且根文件系统处于读/写模式时找不到任何其他故障,您可以考虑启用 root 帐户,这样您就不会再次陷入同样的​​困境:

usermod -e -1 root
passwd root

第一个命令将确保 root 帐户不会被过期机制锁定,第二个命令将为 root 帐户设置一个新密码,并在此过程中将其解锁。将密码设置为难以猜测的密码,以防系统在 root 帐户仍处于启用状态时连接到网络。请注意,在紧急模式下,您的键盘可能使用美国英语默认布局,而不是您通常喜欢的布局。

之后,您可以取消/etc/fstab注释掉注释掉的行,然后再次尝试重新启动。如果系统现在正常启动,请记住再次锁定 root 帐户:

sudo passwd -l root

答案2

我用 kali-live USB 代替 SystemRescueCD 做了同样的事情。

mount -o remount,rw /那次还好,我能够进行更新!

感谢大家的帮助!

相关内容