linux下误操作startx命令后,在登录界面进不去解决办法
给自己以前的电脑捣鼓了一个linux,然后给他搭配一些环境,然后就误操作了startx命令,导致一直在登录页面,输入正确地用户名和密码也还是进不去,真是醉了,重启了N次,并没有什么用处。。。
具体的现象为:在紫红色的登录界面输入登录密码后,一闪(其实大概就是黑屏了一秒钟),然后就又回到了登录页面,始终无法进入系统。。。
经过一番搜索,得出了如下的原因:原来是之前误操作startx(其实也不算误操作吧,就是在环境配置的某一步,随意敲了一个startx,然后就醉了)之后,主目录下的.Xauthority文件的拥有者变成了root,从而用户在登录的时候,无法读取.Xauthority文件
说明:Xauthority,是startx脚本记录文件。Xserver启动时,读文件~/.Xauthority,读入对应其display的记录。当一个需要显示的客户程序启动调用XOpenDisplay()也读这个文 件,并把找到的magic code 发送给Xserver。
当Xserver验证这个magic code正确以后,就同意连接啦。观察startx脚本也可以看到,每次startx运行,都在调用xinit以前使用了xauth的add命令添加了一个新的记录到~/.Xauthority,用来这次运行X使用认证
解决办法:在登录界面,按ctrl+alt+F1键进入tty,然后输入用户名密码之后,执行以下命令:
$ sudo chown derek:derek .Xauthority
$ ls .Xauthority -l
ps:derek是我的用户名
then,okay,如果你的问题和我是一样的,那么现在按ctrl+alt+F7进入登录界面,输入密码就可以进入系统了,是不是很神奇。。。。
.Xauthority这个文件还是少动为好,最好备份一个,放在其他地方。。。