原因:主目錄下的.Xauthority文件擁有者變成了root,從而以用戶登陸的時候無法都取.Xauthority文件。
說明:Xauthority,是startx腳本記錄文件。Xserver啓動時,讀文件~/.Xauthority,讀入對應其display的記錄。當一個需要顯示的客戶程序啓動調用XOpenDisplay()也讀這個文 件,並把找到的magic code 發送給Xserver。當Xserver驗證這個magic code正確以後,就同意連接啦。觀察startx腳本也可以看到,每次startx運行,都在調用xinit以前使用了xauth的add命令添加了一個新的記錄到~/.Xauthority,用來這次運行X使用認證
解決方法:我們需要將.Xauthority的擁有者改爲登陸用戶(或者乾脆將.Xauthority刪除,此法轉自網上,本人未驗證)
開機後在登陸界面按下shift + ctrl + F1進入tty命令行終端登陸後輸入:(本人的用戶名爲hp,因此chown後面跟了hp:hp若爲其他用戶名修改成相應的名稱即可)
$ cd ~
$ sudo chown hp:hp .Xauthority然後再次輸入:
ls .Xauthority -l
成功後顯示如下:
-rw------- 1 hp hp 80 1月 27 10:41 .Xauthority
此時擁有者已經變爲用戶。按下shift + ctrl + F7切換回圖形登陸界面登陸即可。