今天早上在使用Linux的时候进入终端输入startx,然后退出图形界面,进入了命令模式,可能是Ubuntu 14.04的问题,不知怎么就没有响应,我就强行重启了一下操作系统,然后进去发现在使用管理员账号登录时一直是重复登录,怎么都进不去,网上关于这方面的资料还是很多的,给出的方法也是很多。
1、环境变量问题,进入tty1 或者 tty2 然后 sudo vim profile 或者 environment,将 环境变量还原即可。但我的问题并非出于此。
2、初始化文件问题:删除.Xauthority , Xinit 等初始文件 并重启。我的问题也不在于此。
3、/home权限问题:直接将/home chmod 成 777的权限。不过我的还是无效。
4、/tmp权限问题:我的问题就在于此,首选还是那句话,学会找到日志文件,学会分析日志文件,cd 到 /home/user 里面,然后你会发现一个 启动X组件相关的日志文件:
.xsession-errors文件,打开这个文件发现有以下错误: mkdtemp: private socket dir: Permission denied,可以知道在读写/tmp文件时 遇到权限问题而读写失败,所以 直接chmod 777 /tmp 后 然后 重启 就能进入桌面系统了。
5.ctrl+alt+f1 ,切换到tty1,输入管理员帐号和密码
sudo rm -r .Xauthority*
sudo reboot //重启
ok
下面就说一下关于.Xauthority:startx的脚本文件(资料来源于百度):
Xserver 启动时,读文件~/.Xauthority,读入对应其display的记录.当一个需要显示的客户程序启动调用XOpenDisplay()也读这个文 件,并把找到的magic code 发送给Xserver.当Xserver验证这个magic code正确以后,就同意连接啦.
观察startx脚本也可以看到,每次startx运行,都在调用xinit以前使用了xauth的add命令添加了一个新的记录到~/.Xauthority,用来这次运行X使用认证。
解决:
Ctrl+Alt+F1~F6,都可以进入命令行模式,分别为 tty1~tty6。
注:Ctrl+Alt+F7 就是窗口模式。
使用用户名和密码进入。
sudo==/usr/bin/sudo
vi==/usr/bin/bi
去掉三个文件中给PATH增加的 /home/sjjz/Android-sdk-linux_86/tools 路径
whereis=/usr/bin/whereis
cat==//bincat
mv==/bin/mv
ls==/bin/ls
bash==/bin/bash
重启:
/usr/bin/sudo /sbin/reboot
2.修改了profile文件
解决:
利用Alt+Ctrl+Shift+F1进入命令行模式, 以root的身份更改了/etc/profile文件, 这个文件我昨天在配置JDK运行环境的时候对其进行了修改, 现在又将内容改了回来,终于可以正常进入了。
3.修改了environment
解决:
/usr/lib/sudo /usr/lib/vi /etc/environment,然后将光标移动到PATH=$PATH:/home/user1/program/androidSDK/tools 这一行,按两次D,即DD就删除了着一样,
再输入命令
4.认证的问题
解决:
今天无缘无故登录不了系统 在登录界面输入正确密码后 黑屏一闪后又跳转到登录界面
黑屏出现的时间太短 经过多次查看发现 卡在check battery state
解决方法:
sudo rm -r .Xauthority*
当然,还有其他的原因,我尝试了以上几种方法都没成功,后来看到有一个博客,简单说到这个问题的本质是开机时,系统会读入/home文件夹下的一些初始化文件,如果找不到这些文件就会出错,出现之前说明的症状。结合我之前看到的一些解决方法,我认为可能是home的权限受到更改,导致非root用户无法读取/home目录下的初始化文件造成的。
本文永久更新链接地址:http://www.linuxidc.com/Linux/2014-10/108433.htm