Ubuntu 18.04.1在关机过程中会打印用户的密码。

Ubuntu在关机或切换用户时,有时会在文本屏幕上显示用户密码。 简而言之,这是一个问题,但经过调查发现是一个错误(我个人认为)。我已经在launchpad上报告了这个问题。请在那里查看任何更新。 我刚刚在一台旧机器上安装了Ubuntu 18.04.1 LTS(bionic)(也许只是因为它是一台慢机器,所以我才注意到这一点)。我使用了从官方Ubuntu网站获取的安装程序,并且在安装其他任何东西之前,我就开始怀疑这个问题 - 但我花了一些时间才相信。 当我只使用一个用户时,我无法复现这个问题,然而,当切换用户、登录和注销时,偶尔(在关机期间)文本屏幕会闪烁(在带有进度点的Ubuntu标志之前),并且在服务状态的底部,你就能看到:用户密码! 这台机器上没有安装任何可疑的软件。 这是一张图片:

enter image description here

在这种情况下,密码出现了两次。很难相信我做错了什么,因为我只安装了官方版本。 我不是Ubuntu专家。这被认为是正常的吗? 更新1: 我找到了一个简单的测试方法。在切换用户后运行:
sudo cat /dev/tty1
你可以看到最后的密码 - 实际上,你可以看到在登录界面输入的所有内容(包括错误的登录尝试),这也是在关机期间出现的。我已经使用相同版本的Ubuntu设置了一个虚拟机,但到目前为止我无法复现这个问题。所以我怀疑我安装的某个应用程序可能是罪魁祸首。我将继续测试(基本上在虚拟机中重现所有步骤)并在这里发帖。 更新2: 安装了所有应用程序,所有更新,并执行了我记得执行过的所有步骤(切换语言,配置输入等)。我只是无法复现它 - 然而,有问题的机器始终将登录窗口的所有按键(仅限登录窗口)打印到/dev/tty1。 也许问题出在这台旧机器所需的某个驱动程序上,而虚拟机没有这个问题。 现在我唯一想做的就是彻底解决这台机器的问题,但我会先提交一个错误报告。然后,我将从头开始重新配置这台机器,如果它仍然存在问题,我会更新这个信息。 更新3: 所以这就是在launchpad上的错误

更新4:

在另一台机器上进行了新安装。来自canonical的18.04,没有安装任何应用程序,所有更新都已安装 - 没有任何额外的应用程序,我能够重现它。然而,在4.15.0-29-generic 恢复模式下不显示症状。

运行中:

sudo lsof /dev/tty1
打印两个进程,systemd-lgdm-wayla。 是的,现在我完成了这个主题。它是Ubuntu的一部分,而不是外部应用程序。我会假装它不存在,并认为我已经尽到了报告错误的责任。

2我非常认为这是不可能的,因为Linux中的密码并不以明文形式存储。 - NerdOfCode
这是启动屏幕的输出,如果您修改引导命令行,删除"quiet"和"splash",您将能够始终看到这些行。我系统上只有一个用户,因此无法验证这个密码显示问题。 - Charles Green
@NerdOfCode 我觉得这个并没有被存储,我的理论是在调试过程中有人忘记了打印到控制台... 如果不是我自己做的,或者如果我没有使用官方发布的版本重新安装的话,我也会和你想得一样。 - Feu
@CharlesGreen 你在使用18.04.1吗?如果是的话,我之前使用的其他用户甚至不是管理员,只需切换到它们然后再切换回来就足以进行测试。如果你能够测试一下(然后删除这些用户),我会非常感激! - Feu
你是否可能选择了一个与某些系统输出文本相同且与你的密码无关的密码?请更改密码,然后再试一次。 - sudodus
@sudodus 请查看我的更新,我能够看到最后的密码,甚至是错误的密码尝试。 - Feu
6我认为你应该在Launchpad上写一个关于这个问题的错误报告。在https://launchpad.net上获取一个用户ID并创建一个错误报告:运行`ubuntu-bug ubuntu并按照指示操作。(在我们了解更多之前,将责任归咎于ubuntu`)。我认为你会得到来自在Launchpad上更了解错误报告的人们的帮助,以提供更多关于这个问题的细节。 - sudodus
@sudodus 謝謝,我會這麼做的。不過,由於我在配置這台機器時沒有進行太多步驟,所以我將嘗試這些步驟,以便能更一致地報告這個錯誤。 - Feu
uname -r 显示什么?也许你正在遭受 4.15.0.-44-generic 引入的众多问题之一,其中之一就是 TTY 的奇怪行为。 - PerlDuck
@PerlDuck,这是4.15.0-45-generic版本,这就解释了问题所在。但是为什么我在虚拟机中无法重现呢? - Feu
对于虚拟机的行为一无所知。你能在启动时选择内核 *-43 吗?那个版本没有 TTY 的问题。 - PerlDuck
@PerlDuck,*-29版本已经可用,我使用它启动了,但是它的表现还是一样!:( - Feu
那我不知道。抱歉。:-(内核的事只是一个想法。 - PerlDuck
让我们在聊天中继续这个讨论。 - Feu
要解决这个问题,请参考:Ubuntu 18.04安装Guest Addons后VirtualBox 5.2.10崩溃,然后尝试在“设置”->“显示”中取消选中“启用3D加速”。 - WinEunuuchs2Unix
谢谢 @WinEunuuchs2Unix,但不是那样的。 - Feu
1个回答

新来的,但我发现你的问题非常有趣。我相信,如果你说的是实话,那么你安装或仅打开一次的某个程序已经安装了以下内容。用于记录你输入密码的信息。

https://unix.stackexchange.com/questions/138342/how-to-read-write-to-tty-device

不确定您是否可以搜索每个文件的内容,但我会寻找类似以下的内容。如果您愿意接受挑战,可以尝试自己创建一个来收集这些信息,这可能有助于您找到罪魁祸首。
#include <stdio.h>
#include <unistd.h>
#include <fcntl.h>    
int main() {
    char byte;
    int fd = open("/dev/pts/3", O_RDWR);
    write(fd, "X", 1);
    ssize_t size = read(fd, &byte, 1);
    printf("Read byte %c\n", byte);
    return 0;
}
祝你好运! 丹尼斯

谢谢你的见解,你的评论让我有了一个想法,然后我学到了lsof命令,它可以显示哪些进程正在使用给定的资源(例如/dev/tty1/)。请阅读我的更新4,我知道不多的人会相信我,但我确信这不是外部应用程序。 - Feu