問題描述:(參考連結,這裡把它複制過來,但是他的解決方案,親測失敗!!!)
給自己以前的電腦搗鼓了一個linux,然後給他搭配一些環境,然後就誤操作了startx指令,導緻一直在登入頁面,輸入正确地使用者名和密碼也還是進不去,真是醉了,重新開機了N次,并沒有什麼用處。。。
具體的現象為:
在紫紅色的登入界面輸入登入密碼後,一閃(其實大概就是黑屏了一秒鐘),然後就又回到了登入頁面,始終無法進入系統。。。
分析原因:
經過一番搜尋,得出了如下的原因:原來是之前誤操作startx(其實也不算誤操作吧,就是在環境配置的某一步,随意敲了一個startx,然後就醉了)之後,主目錄下的.Xauthority檔案的擁有者變成了root,進而使用者在登入的時候,無法讀取.Xauthority檔案,就會報timeout錯誤。
說明:Xauthority,是startx腳本記錄檔案。Xserver啟動時,讀檔案~/.Xauthority,讀入對應其display的記錄。當一個需要顯示的客戶程式啟動調用XOpenDisplay()也讀這個文 件,并把找到的magic code 發送給Xserver。
當Xserver驗證這個magic code正确以後,就同意連接配接啦。觀察startx腳本也可以看到,每次startx運作,都在調用xinit以前使用了xauth的add指令添加了一個新的記錄到~/.Xauthority,用來這次運作X使用認證
步驟如下1,在登入界面按Ctrl+Alt+F3 切換到控制台登陸,這裡要登入普通使用者,而不是root
2,指令:cd~
3,指令:rm -rf .Xaut* #注意空格大小寫rm_-rf_.Xaut*
4,最後:按Ctrl+Alt+F7回到登陸界面,輸入密碼正常登陸。
順便說說:
進不去的原因是什麼?
在tty執行startx會生成的一個檔案,ubuntu的登陸器是lightdm,這個登陸器發現你家目錄裡有這個檔案就會死循環,讓你無限輸入密碼。
stratx 指令是用來幹啥的?
startx 是用來啟動X windows服務的。在Ubuntu下慎用,原理還不是很清楚。
運作後在/home目錄下自動生成.Xauthority 目錄,導緻出現上面的問題。