登录问题

登录问题是指计算机实际上已引导到期望的欢迎屏幕或登录提示下,但是拒绝接受用户名和密码,或者虽然接受了用户名和密码,但是未能正确地运行(无法启动图形桌面、发生错误或转到了命令行等)。

有效的用户名和密码组合失败

如果系统配置为使用网络身份验证或目录服务,但由于某些原因无法从其已配置的服务器上检索到结果,则通常会发生此问题。 只有作为唯一本地用户的 root 用户仍能登录到这些计算机。 以下是计算机似乎能够运行但是无法正确处理登录的常见原因:

  • 网络出现故障。 有关此问题的进一步说明,请转到第 28.5 节 “网络问题”

  • DNS 在当时不起作用(这使得 GNOME 或 KDE 不起作用,并使系统无法向安全服务器发出经验证的请求)。 如果是这种情况,则表现为计算机对任何操作的响应都需要极其长的时间。 有关该主题的详细信息,请参见 第 28.5 节 “网络问题”

  • 如果将系统配置为使用 Kerberos,则系统的本地时间与 Kerberos 服务器时间之间的差异可能超过了可接受的值(通常为 300 秒)。 如果 NTP(网络时间协议)未正确地起作用,或者本地 NTP 服务器不起作用,则 Kerberos 身份验证将不再工作,因为该身份验证依赖于整个网络的通用时钟同步。

  • 系统的身份验证配置不正确。 请对相关的 PAM 配置文件进行检查以确定是否存在指令输入错误或排序错误。 有关 PAM 的其他背景信息及相关配置文件的语法,请参见第 2 章 Authentication with PAM (↑安全指南)。

  • 主分区是加密的。有关该主题的详细信息,请参见 第 28.4.3 节 “登录至加密的主分区失败”

在不涉及外部网络问题的所有情况下,解决方法是将系统重引导到单用户方式并修复配置,然后再次引导到操作方式并重试登录。要引导到单用户方式,请执行以下操作:

  1. 重引导系统。此时将出现引导屏幕,其中显示一个提示。

  2. 在引导提示下输入 1,使系统引导到单用户方式。

  3. 输入 root 用户的用户名和密码。

  4. 进行必要的一切更改。

  5. 在命令行中输入 telinit 5 以引导到完全的多用户和网络方式。

不接受有效的用户名和密码

这是到目前为止用户最常遇到的问题,因为有许多原因可能引起该问题。 登录失败可由多种原因造成,取决于您是使用本地用户管理和身份验证,还是使用网络身份验证。

本地用户管理失败可由以下原因造成:

  • 用户可能输入了错误的密码。

  • 用户包含桌面配置文件的主目录已损坏或被写保护。

  • 验证该特定用户的 X Window 系统可能存在问题,尤其是在安装当前版本之前,该用户的主目录已被其他 Linux 分发版使用时。

要找到本地登录失败的原因,请执行如下操作:

  1. 在尝试调试整个身份验证机制之前,请检查用户所记的密码是否正确。 如果用户可能记错了密码,请使用“YaST 用户管理”模块更改用户的密码。注意 Caps Lock 键,如果需要请解锁。

  2. root 用户身份登录并检查 /var/log/messages 以找到登录过程和 PAM 的错误消息。

  3. 尝试从控制台登录(使用 Ctrl+Alt+F1)。 如果成功了,则问题不在 PAM 上,因为可以在该计算机上身份验证此用户。 尝试找出任何与 X Window 系统或桌面(GNOME 或 KDE)有关的错误。 有关更多信息,请参见第 28.4.4 节 “登录成功但 GNOME 桌面发生故障”第 28.4.5 节 “登录成功但 KDE 桌面发生故障”

  4. 如果用户的主目录被其他 Linux 产品所使用,请将该用户主目录中的 Xauthority 文件删除。 使用控制台登录(通过 Ctrl+Alt+F1),然后以该用户的身份运行 rm .Xauthority。 这样应该可以消除该用户的 X 身份验证问题。 然后再次尝试图形登录。

  5. 如果图形登录依然失败,请使用 Ctrl+Alt+F1 进行控制台登录。 尝试在另一个屏幕上启动 X 会话,第一个 (:0) 已经在使用中:

    startx -- :1

    这样应该可以显示图形屏幕和桌面。 如果无效,请查看 X Window 系统的日志文件(/var/log/Xorg.displaynumber.log)或您桌面应用程序的日志文件(用户主目录中的 .xsession-errors),以确定是否有任何违反规则的地方。

  6. 如果桌面由于配置文件损坏而无法启动,请参见第 28.4.4 节 “登录成功但 GNOME 桌面发生故障”第 28.4.5 节 “登录成功但 KDE 桌面发生故障”

以下是在特定的计算机上对特定用户的网络身份验证可能失败的常见原因:

  • 用户可能输入了错误的密码。

  • 用户名存在于计算机的本地身份验证文件中,但同时网络身份验证系统也提供了该用户名,从而引起冲突。

  • 主目录存在,但已损坏或不可用。 该目录可能处于写保护状态或位于此刻无法访问的服务器上。

  • 用户无权登录到身份验证系统中的该特定主机。

  • 计算机出于某种原因更改了主机名,而用户无权登录到该主机。

  • 计算机无法访问包含该用户信息的身份验证服务器或目录服务器。

  • 验证该特定用户的 X Window 系统可能存在问题,尤其是在安装当前办法之前,该用户的主目录已被其他 Linux 分发版使用时。

要通过网络身份验证找到登录问题的原因,请执行以下步骤:

  1. 在尝试调试整个身份验证机制之前,请检查用户所记的密码是否正确。

  2. 确定计算机在身份验证时要依赖的目录服务器,并确保计算机在正常运行且与其他计算机正常通讯。

  3. 确定该用户的用户名和密码在其他计算机上是否有效,以确保存在该用户的身份验证数据且已正确分发。

  4. 确定其他用户是否可以登录到该故障计算机。 如果其他用户可以毫无困难地登录或者 root 用户可以登录,请登录并检验 /var/log/messages 文件。 找到与登录尝试相对应的时间戳记,然后确定 PAM 是否生成了任何错误消息。

  5. 尝试从控制台登录(使用 Ctrl+Alt+F1)。 如果成功,则问题不在用户主目录中的 PAM 或目录服务器上,因为可以在该计算机上验证此用户。 尝试找出任何与 X Window 系统或桌面(GNOME 或 KDE)有关的错误。 有关更多信息,请参见第 28.4.4 节 “登录成功但 GNOME 桌面发生故障”第 28.4.5 节 “登录成功但 KDE 桌面发生故障”

  6. 如果用户的主目录被其他 Linux 产品所使用,请将该用户主目录中的 Xauthority 文件删除。 使用控制台登录(通过 Ctrl+Alt+F1),然后以该用户的身份运行 rm .Xauthority。 这样应该可以消除该用户的 X 身份验证问题。 然后再次尝试图形登录。

  7. 如果图形登录依然失败,请使用 Ctrl+Alt+F1 进行控制台登录。 尝试在另一个屏幕上启动 X 会话,第一个 (:0) 已经在使用中:

    startx -- :1

    这样应该可以显示图形屏幕和桌面。 如果无效,请查看 X Window 系统的日志文件(/var/log/Xorg.displaynumber.log)或您桌面应用程序的日志文件(用户主目录中的 .xsession-errors),以确定是否有任何违反规则的地方。

  8. 如果桌面由于配置文件损坏而无法启动,请参见第 28.4.4 节 “登录成功但 GNOME 桌面发生故障”第 28.4.5 节 “登录成功但 KDE 桌面发生故障”

登录至加密的主分区失败

对于便携式计算机建议使用加密的主分区。如果无法登录到您的便携式计算机,原因通常很简单:您的分区无法解锁。

在引导时,必须输入通行密码来解锁加密的分区。如果不输入它,引导进程继续,但保持分区锁定。

要解锁您的加密分区,请如下操作:

  1. Ctrl+Alt+F1 切换到文本控制台。

  2. 成为 root 用户。

  3. 用以下步骤重启动解锁进程:

    /etc/init.d/boot.crypto restart
  4. 输入您的通行密码以解锁加密的分区。

  5. Alt+F7 退出文本控制台并切换回登录屏幕。

  6. 如常登录。

登录成功但 GNOME 桌面发生故障

如果是这种情况,可能您的 GNOME 配置文件已损坏。可能出现的症状包括键盘不起作用、屏幕几何图形变形,甚至整个屏幕变成灰色。 而最重要的差别在于其他用户登录时,该计算机能正常运行。 那么可能只需将用户的 GNOME 配置目录移到某个新位置,以便使 GNOME 初始化一个新的桌面,这样就能很快地解决此问题。 虽然用户不得不重配置 GNOME,但不会丢失任何数据。

  1. Ctrl+Alt+F1 切换到文本控制台。

  2. 用您的用户名登录。

  3. 将用户的 GNOME 配置目录移到某个临时位置:

    mv .gconf  .gconf-ORIG-RECOVER
    mv .gnome2 .gnome2-ORIG-RECOVER
  4. 注销。

  5. 再次登录,但别运行任何应用程序。

  6. 通过以下命令将 ~/.gconf-ORIG-RECOVER/apps/ 目录复制回新的 ~/.gconf 目录,这样就能恢复您的个人应用程序配置数据(包括 Evolution 电子邮件客户程序数据):

    cp -a .gconf-ORIG-RECOVER/apps .gconf/

    如果这引起登录问题,则尝试只恢复重要的应用程序数据并重配置其他的应用程序。

登录成功但 KDE 桌面发生故障

KDE 桌面不允许用户登录有多种原因。 高速缓存数据以及 KDE 桌面配置文件的损坏都可能引起登录问题。

桌面在启动时会用到缓存数据,这将提高性能。 如果数据损坏,则启动将变慢或完全失败。 将缓存数据删除会强制桌面启动例程从头开始。这样会花费比正常启动更多的时间,但是在这之后数据将完好无缺,用户也可以登录。

要删除 KDE 桌面的高速缓存文件,请以 root 用户身份发出以下命令:

rm -rf /tmp/kde-user /tmp/ksocket-user

使用您的用户名来替换 user。 将这两个目录删除只是删除损坏的高速缓存文件,使用该过程并不会破坏实际数据。

损坏的桌面配置文件始终可以用初始配置文件替换。 如果想要恢复用户所作的调整,请在使用默认配置值恢复配置之后,将这些调整从其临时位置小心地复制回原来的位置。

要将损坏的桌面配置替换为初始配置值,请执行如下操作:

  1. Ctrl+Alt+F1切换到文本控制台。

  2. 用您的用户名登录。

  3. 将 KDE 配置目录和 .skel 文件移到临时位置:

    • 对于 KDE3 使用以下命令:

      mv .kde  .kde-ORIG-RECOVER 
      mv .skel .skel-ORIG-RECOVER
    • 对于 KDE4 使用以下命令:

      mv .kde4  .kde4-ORIG-RECOVER 
      mv .skel .skel-ORIG-RECOVER
  4. 注销。

  5. 再次登录。

  6. 在成功启动桌面之后,将用户自己的配置复制回原来的位置:

    cp -a KDEDIR/share .kde/share

    KDEDIR 替换为步骤 3 中的目录。

    [Important]

    如果用户自己的调整先前引起了登录失败并仍然如此,请重复上述步骤,但是不要复制 .kde/share 目录。