本文 应该 适用于 ArchLinux,其它发行版不保证成功。

愉快的例行 Syyu,虽然中间用 Ctrl+C 打断了几次但也还算顺利。把电脑晾在一边,起身去给自己倒了杯开水,伴着氤氲荡开的水汽,坐回原位熟练的输入密码并敲下 Enter。

“Paasword Incorrect”

噔噔噔咚

发生甚么事了

我们再来审视一下上面这段话。 “…中间用 Ctrl+C 打断了几次…”,对,问题就出在这儿。在上述情况下打断输入密码的进程,也算输入错误。而且没有任何提示告诉你这一点。于是你就被锁住了🤐。

几次使用 Ctrl+C 打断 pacman 进程后无论怎么输密码都会提示密码不正确的情况,说起来我也多次遇到过了,以前真的就以为是类似语言设置崩掉之类的玄学问题🥲,这次处理后才突然明白过来。

那既然不是玄学问题,当然也是有通法来解的啦!

终于进入正题,来讲讲解决办法

首先,你得事先设置了 root 用户和密码。(对于没设置的我才疏学浅也不知道咋办,有知道的烦请评论区指出)

其次,按 Ctrl+Alt+F3(或者别的什么等效的快捷键)进到 tty 界面,以 root 身份登录。

然后,输入faillock --reset --user <username>(username 就是你被锁住的用户名),请注意,这条命令是在 root 权限下执行的(废话你上一步都用的 root 登录当然是要有 root 权限的啊)

踩坑记录:一开始不知道是 faillock 的问题,以为是存储密码的文件被破坏了,所以试了passwd <username>,这条命令是无效的!因为你不是密码输错了,是被“请五分钟后重试”了啊🤣

这条命令执行完后如果没啥报错就 Ctrl+Alt+F1 回你刚才的登录窗口,继续愉快的使用。

哦,对了,别忘了把刚才倒的水喝完。