Mic*_*ael 1 tty login lightdm 12.04
今天,在安装了一些软件包并更新了 Firefox 之后,我重新启动了 Ubuntu 12.04。当我进入登录屏幕时,我输入了密码。经过大约一秒钟的处理后,屏幕变黑并返回到登录屏幕。它没有给出任何错误(例如无效的密码)。
我读了一些关于 lightdm 导致这个问题的信息,所以我尝试在 TTY 中安装 gdm。当我尝试这样做时,TTY 给了我一个“不正确的密码(或登录)”错误。我非常确定我的密码是正确的,我什至尝试在命令部分勾选它,这样我就可以排除键盘布局的变化。
如果有人能帮助我解决这个问题,我将非常感激,因为我现在无法使用 Ubuntu,类似的问题也无法解决我的问题(因为我完全无法进入 TTY)。
编辑:我忘了告诉 2D 登录和访客登录也不起作用。我试过使用mv ~/.Xauthority ~/.Xauthority.old
,但没有用(tty 没有给出反应,也没有解决问题)。
我还尝试安装 gdm(停止使用 lightdm)sudo apt-get install gdm
,它的响应是:
sudo: /usr/lib/sudo/sudoers.so must be only be writable by owner
sudo: fatal error, unable to load plugins
Run Code Online (Sandbox Code Playgroud)
除此之外,我还没有尝试过任何东西。
编辑(2):我尝试了命令sudo rm ./.Xauthority
,它给出了与上面相同的错误。我需要重新安装(或检索备份)我的系统还是可以保存它?
编辑(3):我解决了 sudo 问题(感谢 Shantanu!)。我需要更改几个(与 sudo 相关的)文件的所有权。我曾经pkexec
使用终端更改所有权。我现在意识到所有权的这种转变可能是我的 loginloop 问题的原因。sudo 现在确实有效,所以我会尝试一些其他命令。如果有人可以在这件事上为我提供帮助,我将不胜感激!
我在运行 Kubuntu 12.04 很长时间时遇到了类似的问题:登录屏幕显示正常,但登录不会将我带到等离子桌面,而是回到登录屏幕。我认为这个问题对于使用 gdm 的 Ubuntu 的工作方式与我使用 kdm 的方式大致相同。
作为临时解决方案,我可以通过输入以下内容进入适当的桌面环境:
sudo service kdm stop
startx
Run Code Online (Sandbox Code Playgroud)
从 tty 控制台,我从登录屏幕使用 ctrl+alt+f3 转义到该控制台。
怀疑.Xauthority
和或我的/tmp/
目录存在权限问题(根据同一问题的许多其他答案),我运行:
ls -la ~/.Xauthority
Run Code Online (Sandbox Code Playgroud)
并验证了其业主被设置为username username
不root root
,跑
ls -ld /tmp
Run Code Online (Sandbox Code Playgroud)
并确保其权限读取为drwxrwxrwt
. 我还尝试.Xauthority
完全删除该文件,希望它在下次登录时能够正确重新生成,但这对我不起作用(然而,其他人似乎已经成功尝试过)。
接下来,我检查了我~/.profile
的无关行,并通读了我的.xsession-errors
文件以寻找无济于事的线索。
最终对我有用的是删除我的 ~/.dmrc
文件。
从https://help.ubuntu.com/community/dmrcErrors:
“.dmrc 是系统在会话登录期间检查的初始化文件。具体来说,gnome 会检查该文件中它没有位于其他地方的任何特定语言或会话信息。虽然该文件通常是空白的,除了基本的头数据,它可能包含在会话启动时使用的特定语言。”
这个文件必须有 644 权限才能正常工作(编辑:上面的链接实际上提供了一些除了 644 之外的其他权限,但 644 是明确授予的设置权限),所以在删除它之前验证
ls -la ~/.dmrc
Run Code Online (Sandbox Code Playgroud)
产生权限drwxr-xr-x 143 user user
,如果没有尝试使用
chmod 644 /home/username/.dmrc
Run Code Online (Sandbox Code Playgroud)
如果上述解决方案均无效,请尝试使用以下方法备份和删除此文件:
cp /home/username/.dmrc /home/username/.dmrc.backup
rm /home/username/.dmrc
Run Code Online (Sandbox Code Playgroud)
下次登录时,.dmrc
将生成一个新文件并正确配置,在我的情况下,我终于能够正确登录,而无需转义到 tty、杀死 kdm 并手动启动 x。
注意:我怀疑这个问题的根本原因是在会话期间我的主文件夹所在的分区被填满时,这导致了一系列其他需要写入的配置文件未写入问题。无限登录循环问题在那之后立即开始,我注意到.dmrc
文件的大小为 0,而不是包含:
[Desktop]
Session=default
Run Code Online (Sandbox Code Playgroud)
就像它现在处于完全运行状态一样。从上面的引用来看,这个文件是在登录时读取的,也许我的登录循环发生是因为 Kubuntu 不知道如何处理一个空.dmrc
文件,但我只是推测。