如何修復 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