如何修复 Ubuntu 登录循环

已发表: 2023-05-29
笔记本电脑上的 Ubuntu Linux 启动屏幕
Jordan Gloor / How-To Geek
如果您在 Ubuntu Linux 上陷入登录循环,请使用 Ctrl+Alt+F3 打开终端并检查或删除.Xauthority文件。 如果这不起作用,请确保 root 拥有/tmp文件夹、重新配置gdm3并释放硬盘空间也可以让您摆脱困境。

Ubuntu 登录循环是一个令人沮丧的问题,它使您无法登录。我们描述了六个可能导致此行为的不同问题以及如何修复它们。

目录

什么是 Ubuntu 上的登录循环?
检查 .Xauthority 文件的所有权
删除 .Xauthority 文件
检查 /tmp 目录的权限
重新配置 gdm3
重新安装 gdm3
检查硬盘可用空间
跳出循环

什么是 Ubuntu 上的登录循环?

Ubuntu 登录循环是一个问题,它会让您返回登录屏幕,而不是让您登录并显示您的桌面。 就好像您的凭据被拒绝了,但事实并非如此。 它只是不让您进入。即使您确实输入了正确的用户名和密码,您也会被弹回登录屏幕。

在计算机可能出现的所有问题中,无法登录是最可怕的问题之一。 进不去怎么修? 值得庆幸的是,Linux 为我们提供了不止一种登录方式,我们可以在这种情况下利用它来发挥我们的优势。

实际上,这个问题也可能发生在其他发行版上。 它似乎被标记为“Ubuntu 登录循环”,因为给人的印象是它在运行 Ubuntu 的计算机上比在其他发行版上更频繁地报告。 我怀疑这是因为运行 Ubuntu Linux 的计算机比任何其他发行版都多。

相关: Ubuntu 23.04“Lunar Lobster”中的新增功能,现已推出

检查 .Xauthority 文件的所有权

此修复程序仅适用于选择使用 Xorg 而不是在新显示服务器 Wayland 上运行 Ubuntu 的用户。 显示服务器处理屏幕绘图功能。 应用程序与显示服务器对话,显示服务器写入屏幕。 它用于构建您在图形桌面环境中看到的内容。

Xorg 已被 Wayland 取代为默认显示服务器,但如果您愿意或需要,您仍然可以使用 Xorg 服务器登录 Ubuntu。 一些较旧的应用程序在 Xorg 上比在 Wayland 上工作得更好。

要使用 Xorg 登录 Ubuntu,请单击登录屏幕上的齿轮图标,然后从菜单中选择“Ubuntu on Xorg”。

从登录屏幕选项菜单中选择在 Wayland 或 Xorg 上使用 ubuntu

此设置将在重新启动后保持不变。 要返回使用 Wayland,您需要手动将此设置更改回“Ubuntu”。

因此,如果您一直在使用 Xorg 并发现自己处于登录循环中,那么首先要检查的是“.Xauthority”文件的所有权——如果您有的话。 如果不这样做,请跳过本节和下一节。

在登录屏幕上,按“Ctrl+Alt+F3”打开终端屏幕。

终端屏幕登录提示

使用您常用的用户名和密码登录。

终端屏幕上的 Ubuntu 登录消息

如果你有一个,你的“.Xauthority”文件是一个隐藏文件,可以在你的主目录中找到。 我们将寻找一个带有-a (全部)选项的文件,以便ls列出隐藏文件。

 ls -ahl.X* 

使用 ls 搜索 .Xauthority 文件

在这台计算机上,该文件存在,但它应该属于当前用户,而不是 root。 但这是一个简单的修复。 我们将使用chown命令将自己设置为所有者。 当然,您会在命令中替换您自己的用户名。

 sudo chown dave:dave .Xauthority
 ls 

更改 .Xauthority 文件的所有权

使用ls检查显示我们是文件的所有者和组所有者。

如果您有一个名为“.ICEauthority”的文件,请确保您也是该文件的所有者。 我们的测试计算机上没有。 chown命令的格式相同:

 sudo chown dave:dave .ICEauthority

通过键入“rebo​​ot”并按 Enter 重新启动,并在系统备份时尝试登录。

相关:如何在 Linux 上使用 chown 命令

删除 .Xauthority 文件

如果获取“.Xauthority”文件的所有权不起作用,请尝试将其删除并重新创建。

在登录屏幕上,使用“Ctrl+Alt+F3”打开终端窗口,然后使用rm命令删除文件。

 rm.Xauthority 

使用 rm 删除 .Xauthority 文件

使用startx命令尝试启动 X 桌面会话会强制创建一个新的“.Xauthority”文件。

 开始

使用 startx 启动 Xorg 会话

重新启动并尝试登录。

检查 /tmp 目录的权限

许多进程使用“/tmp”目录来存储临时文件。 如果“/tmp”目录的权限混乱并且变得比他们需要的更严格,这些进程将受到不利影响。

要检查这一点,我们需要打开一个终端屏幕,并在“/tmp”目录上使用ls 。 因此,在登录屏幕上按 Ctrl+Alt+F3,然后使用您常用的凭据登录。

“/tmp”目录应归 root 所有。 root 用户、root 组的成员以及所有其他用户都需要对该目录具有读取、写入和执行权限。 唯一的限制是其他组中的人——在这种情况下,除了 root 和 root 拥有的进程之外的所有人——只能更改(写入和删除)他们自己创建的文件。

 光盘 /
 ls -ahld tmp 

检查 /tmp 目录的权限

我们可以看到“/tmp”的权限字符串是drwxrwxrwt ,它的所有者和组所有者都是“root”。

权限的意思是:

  • d :这是一个目录
  • rwx :所有者具有读取、写入和执行权限。
  • rwx :组所有者具有读、写和执行权限。
  • rwt :其他人都可以读取、写入和执行文件,但他们只能写入或删除他们自己创建的文件。 “t”被称为“粘性位”。

如果您看到除此以外的任何内容,请使用chmod命令设置这些权限:

 须藤 chmod 1777 /tmp
 ls -ahld tmp 

使用 chmod 设置 /tmp 目录的权限

和以前一样,重新启动并尝试登录。

相关:如何在 Linux 上使用 SUID、SGID 和 Sticky Bits

重新配置 gdm3

Ubuntu 使用 gdm3 作为它的显示管理器。 显示管理器处理图形登录屏幕和图形显示服务器。 有时在 gdm3 上强制刷新可以解决登录循环问题。

同样,在登录屏幕上,使用“Ctrl+Alt+F3”打开一个终端窗口。

我们正在使用dpkg-reconfigure命令来刷新 gdm3。 它确保所有必需的文件都存在并且满足依赖性。 它应该使 gdm3 处于与刚刚成功安装时相同的状态。

 sudo dpkg-重新配置 gdm3 

重新配置 gdm3 包

重新启动,登录,然后查看您的问题是否已解决。

重新安装 gdm3

此过程会从您的计算机中清除 gdm3 并重新安装它。 这是执行上一步的长手方式。 我已经多次看到上一步起作用,但如果不起作用,这通常会起作用。

 sudo apt 清除 gdm3
 sudo apt 安装 gdm3 

卸载 gdm3 显示管理器

重新启动计算机,看看是否已解决问题。

检查硬盘可用空间

硬盘空间用完与无法创建临时文件具有类似的效果。 即使对“/tmp”有正确的权限,如果您没有剩余硬盘空间,系统也无法创建文件。

如何从 Linux 终端查看可用磁盘空间和磁盘使用情况
相关如何从 Linux 终端查看可用磁盘空间和磁盘使用情况

从登录屏幕,像以前一样打开终端屏幕。 我们可以使用df检查硬盘容量和可用空间,我们可以使用du查看占用空间的内容。 我们的测试机没有可用空间问题,但这就是命令的输出结果。

使用-h (人类可读)选项强制df使用最适合它需要显示的数字的单位。 这比尝试以字节为单位工作更容易。

 df-h 

使用 df 检查硬盘容量和使用情况

“使用百分比”列显示已使用的空间量,以百分比表示。 “已使用”和“可用”列以实际值表示。

根文件系统挂载在“/dev/sda”上,已经使用了84%的驱动器容量。 这没什么可担心的,但如果我们正在调查显示剩余空间非常少的硬盘驱动器,我们可以使用du来发现占用空间的原因。

我们将在du中使用-h (人类可读)和-s (摘要)选项,并将输出通过管道传输到sort中。 我们与sort一起使用的选项是-h (对人类可读值进行排序)和-r (反向排序)。

这将为我们提供一个排序的降序列表,其中最大的硬盘驱动器存储消费者位于列表的顶部。

 du -hs * | 排序-hr 

生成硬盘存储消费者的排序列表

我们可以看到“图片”目录是迄今为止最大的罪魁祸首。 我们可以增强我们的du命令来查看“图片”目录。 我们还通过head向我们展示了 5 个最严重的违规者。

 du -hs ~/图片/* | 排序-hr | 头-5 

/Pictures 目录中的五个最大目录

这种类型的迭代探测使我们能够识别容易实现的目标。 将最大的目录复制到其他内部驱动器或外部存储,然后从我们的主目录中删除它们,将释放最多的硬盘空间。

一旦你这样做了——不管你电脑上最大的目录是什么——你的系统应该让你登录。

跳出循环

Ubuntu 登录循环就像被锁在自己家里一样。 你有正确的钥匙,但门还是打不开。 值得庆幸的是,对于 Linux,我们可以使用其他门。 一旦我们进去了,我们就可以试着找出是什么阻止了前门的工作。

相关:如何使用 GRUB Rescue 修复 Linux