![登录循环 14.04 但可以访问访客帐户](https://linux22.com/image/852741/%E7%99%BB%E5%BD%95%E5%BE%AA%E7%8E%AF%2014.04%20%E4%BD%86%E5%8F%AF%E4%BB%A5%E8%AE%BF%E9%97%AE%E8%AE%BF%E5%AE%A2%E5%B8%90%E6%88%B7%20.png)
Ctrl从 13.10 升级到 14.04 后,一切正常,但我无法通过登录,因为它只是循环返回。来宾帐户工作正常。我可以通过按+ Alt+F1使用username
和来登录控制台password
。不确定是什么导致了问题。
更新:
显卡是N9500GT
尝试过
chown username:username .Xauthority
,但现在使用密码登录时只显示启动画面。GDM 中也发生同样的事情。也尝试过,
sudo mv .Xauthority .Xauthority.bak
没有变化。尝试过
cat ~/.xsession-errors
,但收到的消息以无法保存用户目录.dirs 开头,然后给出更多消息并停止。
如何查看.xsession-errors
文件中的内容。
答案1
由于我两天前遇到了登录循环,所以我觉得应该分享一下。无论如何,这是针对 Linux 新手的。
在其他线程中搜索解决方案,您会发现有一个主要解决方案:两个文件的访问权限,.Xauthority
和.IDEauthority
。
如何确定您是否“拥有”这些文件?
以访客身份登录,您可能已经这样做了以使用互联网。
Ctrl使用+ Alt+打开登录终端F2,或者使用 + F3、 +F4等,直到F6。
Ctrl++Alt将F7您带回到桌面,以便您可以来回切换。
(我将使用 ASUS-S400CA 上的 Ubuntu 版本 14.04 作为示例。)您将看到类似以下内容:
Ubuntu 14.04.2 ASUS-S400CA tty2
ASUS-S400CA login:
输入您的用户名。(您的用户名是您在安装时选择的昵称,而不是您在实际登录屏幕上看到的全名。),然后输入您的密码。
Ubuntu 14.04.2 ASUS-S400CA tty2
ASUS-S400CA login: yourusername
Password:
您现在应该看到:
yourusername@ASUS-S400CA:~$
如果你的登录循环是由于缺少前面提到的文件的访问权限而导致的,我们可以这样检查:
ls -ld ~/.*authority
如果你得到
-rw------- 1 root root 2015 May 24 12:38 .ICEauthority
-rw------- 1 root root 2015 May 24 12:38 .Xauthority
代替
-rw------- 1 yourusername yourusername 2015 May 24 12:38 .ICEauthority
-rw------- 1 yourusername yourusername 2015 May 24 12:38 .Xauthority
您必须使用该chown
命令来恢复您的访问权限:
sudo chown yourusername:yourusername ~/.Xauthority
如果需要,对 也执行同样的操作.IDEauthority
。请注意,您必须使用 ls 命令再次验证结果。不过,没有错误消息是一个好兆头。
你的 shell 无法识别你输入的任何命令?
这可能是登录循环的主要原因,因为login
它本身只是一个命令。
在这种情况下如何使用命令?
shell 会给出两条信息:第一,该命令不可访问。第二,该命令位于,例如
/usr/bin
在这种情况下,上面提到的代码看起来 - 取决于命令的“可执行文件”在系统中的位置 - 如下所示:
/usr/bin/ls -ld ~/.*authority
/usr/bin/sudo /bin/chown yourusername:yourusername ~/.Xauthority
/usr/bin/sudo /bin/chown yourusername:yourusername ~/.IDEauthority
命令提示符(shell、终端、命令行)之所以能够识别并执行命令(包括登录命令),是因为它们的目录路径(如 /usr/bin、/bin、/sbin 等)都保存在一个文件中。它们在那里作为名为 PATH 的变量的值。(有关 Linux 术语的简单解释,请查看 linfo.org。在本例中linfo.org/path_env_var.html)
要检查哪些路径保存在 PATH 中,请输入
echo $PATH
或具有目录结构的等效命令。
它可能会给你类似
/usr/local
然而,它看起来应该是这样的:
/usr/bin:/usr/sbin:/bin:/sbin:/usr/local/:/usr/local/bin:/usr/local/sbin
冒号之间的不同目录可以按任意顺序排列。
要暂时保存这些内容并能够使用命令,请输入
export PATH=$PATH:/usr/bin:/usr/sbin:/bin:/sbin:/usr/local/:/usr/local/bin:/usr/local/sbin
为了使这些更改永久生效,您必须将其保存在定义 PATH 变量的相应文件中。
根据您使用的登录 shell 类型,这可能是不同的文件,因为不同的登录 shell 会先读取某些文件。要找出您使用的 shell,请输入echo $SHELL
命令行。您很可能还是会得到结果/bin/bash
。(此外,终端向您提供的有关命令位置的提示可能以 开头-bash
。)(有关更多信息,请查看设置环境变量的最佳发行版/shell 无关方法是什么?和登录 shell 和非登录 shell 的区别/46856#46856)
.profile
如果你的 shell 是 bash,最简单的选择就是在你的主目录中编辑你的文件~
,这相当于/home/yourusername
。如果你将目录临时保存到命令中,则可以通过键入来打开该文件
gedit ~/.profile
这将使用相应的文本编辑器 gedit 打开文件。(如果您出于某种原因没有 gedit,请结合使用aptitude
或apt-get
命令与 sudo 并安装 gedit 或您喜欢的任何文本编辑器:sudo apt-get install gedit
。)
你可能会在该文件的末尾发现类似这样的内容:
# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
PATH="$HOME/bin:$PATH"
fi
PATH=usr/local
但是,PATH 应该按照上面描述的方式定义。只需添加其他目录:
PATH=/usr/local:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin
保存文件,重新启动系统,然后您应该(希望)一切顺利。
答案2
我遇到了同样的问题。当我通过 tty 登录我的帐户时(按ctrl+ alt+ )F1,它说文件中有一个错误~/.profile
(我一直在乱搞)。修复错误后,我就可以登录了。
查找任何错误消息并尝试修复它们。
答案3
我也遇到了这个问题,但最终解决了。
无需删除您的~/.profile
,但该文件是导致问题的原因。只需确保它不会打印任何事物到 STDOUT(也可能是 STDERR)。
一旦我从文件中删除了打印~/.profile
,我就能够使用 GDM 登录。
答案4
我也遇到了同样的登录循环问题,我尝试了网上找到的所有方法,但唯一有效的方法是删除我拥有的大文件。我想我的可用空间已经用完了。