现象:
1:在Ubuntu或者linux mint (其实只要是基于ubuntu 内核得都可以)登陆界面输入密码之后,黑屏一闪后,又跳转到登录界面。
2: 进入到命令行界面之后,sudo startx 显示 timeout in locking authority file in /home/usr/authority
原因:主目录下的.Xauthority文件拥有者变成了root,从而以用户登陆的时候无法都取.Xauthority文件。
查看权限的方法:
ls -la
说明:Xauthority,是startx脚本记录文件。Xserver启动时,读文件~/.Xauthority,读入对应其display的记录。 当一个需要显示的客户程序启动调用XOpenDisplay()也读这个文 件,并把找到的magic code 发送给Xserver。
当Xserver验证这个magic code正确以后,就同意连接啦。观察startx脚本也可以看到,每次startx运行,都在调用xinit以前使用了xauth的add命令添加了一个新的记录到~/.Xauthority,用来这次运行X使用认证
解决方法:我们需要将.Xauthority的拥有者改为登陆用户(或者干脆将.Xauthority删除,此法转自网上,本人未验证)
开机后在登陆界面按下Ctrl+Shift+ F1进入tty命令行终端登陆后输入:(本人的用户名为tong,因此chown后面跟tong:tong,若为其他用户名修改成相应的名称即可)
$ ~
$ sudo chown tong:tong .Xauthority
然后再次输入:
ls .Xauthority -l
成功后显示如下:
-rw——- 1 tong tong 80 11月 28 10:41 .Xauthority
此时拥有者已经变为用户。按下ctrl+ alt+F7切换回图形登陆即可退回到图形界面了。