9.4. 登入問題

登入問題是指您的機器已確實登入到歡迎畫面,或收到登入提示,但使用者名稱或密碼不被接受,或是接受後運作不正常(無法啟動圖形桌面、產品錯誤、出現指令行等等)。

9.4.1. 使用者無法登入 — 有效的使用者名稱和密碼組合失敗

這種情形常發生於系統設定為使用網路驗證或目錄服務時,且基於某些原因,會無法從其所設定的伺服器取得結果。身為唯一的本機使用者,根使用者是唯一可登入這些機器的使用者。下面是機器可能運作良好卻無法正確執行登入的一些常見原因:

  • 網路未作用。如須對此情況的進一步指示,請參閱 節 9.5, "網路問題"

  • DNS 此時未運作(這樣會阻礙 GNOME 或 KDE 運作,也會妨礙系統驗證安全伺服器的要求)。若機器花費過久的時間回應任何動作的話,表示可能是這種情況。關於此主題的詳細資訊,請參閱 節 9.5, "網路問題"

  • 若系統設定為使用 Kerberos,則系統的本地時間有可能超過了 Kerberos 伺服器時間所容許的變異(一般為 300 秒)。若 NTP(網路時間協定)未正確運作,或本機 NTP 伺服器未運作,則 Kerberos 驗證會停止作用,因為它必須仰賴網路上同步的共同時脈才可運作。

  • 系統的驗證組態設定錯誤。請檢查所包含的 PAM 組態檔案,查看是否有錯字或指令順序錯誤。如需關於 PAM 和所包含組態檔案語法的其他背景資料,請參考 章 16, 使用 PAM 驗證 (↑參考)

對於所有非外部網路造成的問題,解決方案就是重新開機進入單一使用者模式,並修復組態後再次開機進入操作模式,以嘗試重新登入。

若要開機進入單一使用者模式:

  1. 重新開啟系統。會出現開機畫面及提示。

  2. 在開機提示中輸入 1,讓系統開機進入單一使用者模式。

  3. 輸入的使用者名稱與密碼。

  4. 進行必要的所有變更。

  5. 在指令行中輸入 telinit 5,開機進入完整多使用者及網路模式。

9.4.2. 使用者無法登入 — 不接受特定的有效使用者名稱和密碼

這顯然是使用者最常遇到的問題,其發生的原因有很多。根據您使用本機使用者管理和驗證,或使用網路驗證,會有不同原因造成登入失敗。

本機使用者管理可能因為下列原因而失敗:

  • 使用者輸入的密碼錯誤。

  • 使用者包含桌面組態檔的主目錄損毀或有防寫保護。

  • X Window 系統可能無法驗證此特定使用者,尤其是在安裝目前版本之前,此使用者的主目錄由其他 Linux 版本所使用的話。

若要找出本機登入失敗的原因,請執行下列步驟:

  1. 開始進行整個驗證機制的偵錯之前,先確認使用者可以正確記住密碼。若使用者可能記錯密碼,請使用 YaST 使用者管理模組變更使用者的密碼。

  2. 以 root 身分登入,並檢查 /var/log/messages 中有沒有登入程序和 PAM 的錯誤訊息。

  3. 嘗試從主控台登入(使用 Ctrl-Alt-F1)。

    如果成功,表示問題不在 PAM,因為它能夠在此機器上驗證此使用者。嘗試找出 X Window 系統或桌面系統(GNOME 或 KDE)的任何問題。如需詳細資訊,請參閱 節 9.4.3, " 登入成功但 GNOME 桌面失敗 "節 9.4.4, " 登入成功但 KDE 桌面失敗"

  4. 若使用者的主目錄已由其他 Linux 版本使用,請移除使用者主目錄中的 Xauthority 檔案。使用主控台透過 Ctrl-Alt-F1 登入,並以此使用者身分執行 rm .Xauthority。這樣應可排除此使用者的 X 驗證問題。重新嘗試圖形登入。

  5. 若仍無法進行圖形登入,請以 Ctrl-Alt-F1 執行主控台登入。嘗試在其他畫面啟動 X 會期,第一個 (:0) 已被使用:

    startx -- :1

    這樣應可出現圖形畫面與您的桌面。若沒有的話,請檢查 X Window 系統的記錄檔案 (/var/log/Xorg.displaynumber.log),或您桌面應用程式的登入檔案 (位於使用者主目錄中的 .xsession-errors),以得知是否有任何異常。

  6. 若由於組態檔案損毀導致桌面無法啟動,請繼續執行 節 9.4.3, " 登入成功但 GNOME 桌面失敗 "節 9.4.4, " 登入成功但 KDE 桌面失敗"

下列為特定使用者在特定機器上網路驗證失敗的一些常見原因:

  • 使用者輸入的密碼錯誤。

  • 機器的本機驗證檔案中已存在使用者名稱,但網路驗證系統也提供了,兩者產生了衝突。

  • 主目錄是存在的,但損毀或無法使用。或許此目錄設為防止寫入,或位於此時無法存取的伺服器上。

  • 使用者沒有登入驗證系統特定主機的許可。

  • 機器的主機名稱已因某種原因而變更,而使用者沒有登入該主機的許可。

  • 機器無法聯繫驗證伺服器,或是含有使用者資訊的目錄伺服器。

  • X Window 系統可能無法驗證此特定使用者,尤其是若此使用者的主目錄由其他 Linux 版本所使用,而此版本優於目前所安裝版本的話。

若要找出登入發生網路驗證失敗的原因,請執行下列步驟:

  1. 開始進行整個驗證機制的偵錯之前,先確認使用者可以正確記住密碼。

  2. 決定機器賴以進行驗證的目錄伺服器,並確定該伺服器已啟動且在執行中,而且能夠正常與其他機器進行通訊。

  3. 確定使用者的使用者名稱和密碼可以在其他機器上使用,以確定其驗證資料存在,而且已正確配送。

  4. 再看看在運作不正常的機器上,可否讓其他使用者登入。

    若其他使用者可輕鬆登入,或 root 可登入的話,請登入並檢驗 /var/log/messages 檔案。找出嘗試登入所對應的時間戳記,並判斷 PAM 是否已產生任何錯誤訊息。

  5. 嘗試從主控台登入(使用 Ctrl-Alt-F1)。

    若這樣成功的話,問題就不是出在 PAM 或使用者主目錄所在的目錄伺服器,因為能夠在此機器上驗證此使用者。嘗試找出 X Window 系統或桌面系統(GNOME 或 KDE)的任何問題。如需詳細資訊,請參閱 節 9.4.3, " 登入成功但 GNOME 桌面失敗 "節 9.4.4, " 登入成功但 KDE 桌面失敗"

  6. 若使用者的主目錄已由其他 Linux 版本使用,請移除使用者主目錄中的 Xauthority 檔案。使用主控台透過 Ctrl-Alt-F1 登入,並以此使用者身分執行 rm .Xauthority。這樣應可排除此使用者的 X 驗證問題。重新嘗試圖形登入。

  7. 若仍無法進行圖形登入,請以 Ctrl-Alt-F1 執行主控台登入。嘗試在其他畫面啟動 X 會期,第一個 (:0) 已被使用:

    startx -- :1

    這樣應可出現圖形畫面與您的桌面。若沒有的話,請檢查 X Window 系統的記錄檔案 (/var/log/Xorg.displaynumber.log),或您桌面應用程式的登入檔案 (位於使用者主目錄中的 .xsession-errors),以得知是否有任何異常。

  8. 若由於組態檔案損毀導致桌面無法啟動,請繼續執行 節 9.4.3, " 登入成功但 GNOME 桌面失敗 "節 9.4.4, " 登入成功但 KDE 桌面失敗"

9.4.3. 登入成功但 GNOME 桌面失敗

若這是特定使用者的問題,很可能是該使用者的 GNOME 組態檔案已損毀。某些症狀還會包括鍵盤無法運作、螢幕幾何錯亂,甚至螢幕只呈現空白的灰色區塊。此問題最重要的區隔是,若其他使用者可以登入,則此機器是正常運作的。若這樣的話,問題很可能可以快速解決,只要將使用者的 GNOME 組態目錄移到新的位置,使 GNOME 初始化新的組態目錄即可。雖然這樣算是強制使用者重新設定 GNOME,但並沒有資料因此遺失。

  1. 登入為 root 使用者。

  2. 使用 cd 進入使用者的主目錄。

  3. 將使用者的 GNOME 組態目錄移到一個暫時位置:

    mv ./.gconf ./.gconf-ORIG-RECOVER
          mv ./.gnome2 ./.gnome2-ORIG-RECOVER
  4. 登出。

  5. 讓使用者登入,但不要讓他執行任何應用程式。

  6. 依照下列方式將 ~/.gconf-ORIG-RECOVER/apps/ 目錄複製回新的 ~/.gconf 目錄,修復使用者的個別應用程式組態資料(包括 Evolution 電子郵件用戶端資料):

    cp -a ./.gconf-ORIG-RECOVER/apps ./.gconf/

    若這樣導致登入問題,請嘗試僅修復重要的應用程式資料,並強制使用者重新設定其他的應用程式。

9.4.4. 登入成功但 KDE 桌面失敗

KDE 桌面無法讓使用者登入有幾個原因。快取資料損毀以及 KDE 桌面組態檔案損毀,均可能導致登入問題。

快取檔案可用於增進桌面啟動的效能。若此資料損毀的話,啟動速度會變慢或完全故障。請將其移除,並以強制桌面啟動常式重新開始啟動。這樣會比正常啟動的時間久,但將不會損害資料的保存並讓使用者登入。

若要移除 KDE 桌面的快取檔案,請以根使用者身分發出以下指令:

rm -rf /tmp/kde-user /tmp/socket-user

以實際的使用者名稱取代 user。移除這兩個目錄只會移除損毀的快取檔案,過程中並不會傷害到真正的資料。

我們永遠可以使用初始組態檔案取代損毀的桌面組態檔案。若您希望修復使用者的調整值,請在以預設組態值復原組態之後,小心地將其從暫時位置複製回原來位置。

若要以初始組態值取代損毀的桌面組態,請執行下列步驟:

  1. 登入為 root 使用者。

  2. 輸入使用者的主目錄:

    cd /home/user
  3. 將 KDE 組態目錄和 .skel 檔案移動到暫時位置:

    mv .kde .kde-ORIG-RECOVER 
    mv .skel .skel-ORIG-RECOVER
  4. 登出。

  5. 讓使用者登入此機器。

  6. 成功啟動桌面後,將使用者自己的組態調整值複製回原位:

    user@nld-machine:~ > cp -a .kde-ORIG-RECOVER/share .kde/share
    [Important]重要

    若使用者自己的調整值導致登入失敗,且一再重複,請重做以上步驟,但不要複製 .kde/share 目錄。