title: linux下誤操作startx命令後無法登錄
date: 2017-06-03 19:30:19
updated: 2020-03-12 18:44:12
categories: linux
tags:
- linux
問題描述
由於誤操作了startx命令,導致輸入正確地用戶名和密碼後無法進入系統,無限循環在登錄界面。
分析原因
stratx 命令:用來啓動X windows服務的。在Ubuntu下慎用,原理還不是很清楚,運行後在/home目錄下自動生成.Xauthority 目錄,導致出現上面的問題。
進不去的原因:在tty執行startx會生成的一個文件,ubuntu的登陸器是lightdm,這個登陸器發現你家目錄裏有這個文件就會死循環,讓你無限輸入密碼。原來是之前誤操作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回到登陸界面,輸入密碼正常登陸。