Debian

無法登錄到 debian GUI

  • December 26, 2017

我最近在已經安裝了 Ubuntu 和 Windows 10 的筆記本中安裝了帶有 KDE 的 Debian 9.0 stable。我的意圖是為 debian 的根目錄創建一個新分區,並使用與我在 Ubuntu 中使用的相同的*/home/daniel分區。*雖然我忘記使用相同的使用者名,後來使用我的 Ubuntu 使用者名(daniel)在 Debian 中創建了一個新使用者(使用 KDE 的 GUI 應用程序)。儘管我的新使用者只能通過 tty 登錄,但第一個使用者可以登錄而不會凍結到 GUI。

我已經嘗試了以下解決方案:

  • 更改*/home/daniel*目錄權限(我沒有,但添加它們還不夠)。

sudo chmod 755 /home/daniel

  • 將我的使用者包含到第一個使用者所屬的相同組中,例如sambasharesudolipadmin(它最初不屬於任何人)。

sudo usermod -a -G lipadmin,sambashare,sudo,... daniel

  • 更改使用者文件夾的使用者和組,遞歸執行它使我不得不在我的 ubuntu 安裝中更改它,因為當我通過它啟動時使用者和組更改為“ 101 ”。

chown -R daniel:daniel /home/daniel

當我啟動我的 ubuntu 並且文件的使用者更改為 101 時,我也無法進入 GUI。但是我通過chown -R daniel:daniel /home/daniel在 ubuntu 的 tty 上執行來解決這個問題。

對Linux作業系統(通過每個程序完成的系統呼叫)而言,重要的不是使用者,而是使用者 id 或uid -s。它是一個小的正數(不是名稱),例如 1234。閱讀credentials(7)

您需要確保在 Debian 和 Ubuntu 上,daniel使用者具有相同的 uiddaniel名稱不是很重要(您可能希望但不必使用不同的名稱)。可能 Debian 和 Ubuntu 使用不同的 uid-s/gid-s 用於daniel. 另請閱讀id(1)並使用id -a. 並在您的主目錄上使用stat(1)命令,以便stat /home/daniel了解它有什麼 uid 和 gid…

我假設您可以在兩個作業系統上獲得超級使用者權限,例如通過執行sudo. 否則,您需要在救援模式下從外部媒體啟動,或使用init=/bin/bash.

使用者名與其 uid-s 之間的映射通常在 中完成/etc/passwd,因此請仔細閱讀passwd(5) (今天/etc/passwd不再包含任何密碼資訊,但該文件路徑由於歷史原因並未更改。另見shadow(5))。順便說一句,該映射可以 - 小心 - 以其他方式完成(但通常不是)並且它是如何完成的/etc/nsswitch.conf (我假設您沒有更改,請參閱nsswitch.conf(5)了解更多資訊)

同樣,組名與其 gid-s 之間的映射是在 中完成的/etc/group,因此請仔細閱讀group(5)

因此,首先執行命令(不是 GUI 程序,在您的情況下它們會讓您感到困惑)以了解danielDebian 和 Ubuntu 上使用的 uid/gid 的用途。您可能想要執行該grep daniel /etc/passwd命令(請參閱grep(1))。同樣,執行相關命令以查找您的 gid(在兩個系統上)。

然後決定兩個系統(Debian 和 Ubuntu)的通用**uid 和 gid 。**它應該未被使用,並且您需要它在 Debian 和 Ubuntu 上是相同的(小的正數)。我建議選擇一個高於 4000 但低於 65000 的數字作為您的公共 uid(同樣適用於您的公共 gid)。

當心

通過使用編輯器(如、或、或等)仔細編輯 -as root- 來更改 uid 和 gid以及兩個系統上的文件,以便在 Debian 和 Ubuntu 上為您的使用者共享*相同的 uid/gid。*在該版本之後使用sync(1)(它可能沒用,但您要確保您的版本進入磁碟)。vim``emacs``nano``/etc/passwd``/etc/group

(如果你搞砸了這一步,你可能會有一些無法使用的系統)

然後(以 root 身份)使用chown(1)命令遞歸地更改(一次)您的主目錄的所有權。您可能想要執行類似的東西chown -R daniel:daniel /home/daniel(第一個daniel是使用者名,第二個是組名,第三個是目錄條目)。之後考慮使用chmod(1)更改權限(可能為chmod -R a-rx /home/daniel),因為您不應該擁有全球可寫的主目錄或自己的目錄(這是一個巨大的漏洞)。

注意:對於管理任務,更喜歡使用命令而不是 GUI

引用自:https://unix.stackexchange.com/questions/404904