更改密码无用的解决
序言
我今天用nvim改hyprland的配置文件,不过因为权限问题保存不了,我尝试用 :w ! sudo tee %
,他提示我尝试使用-s参数,于是我输入 :w ! sudo tee -s %
,我看到nvim在为sudo的密码验证输入一些空格,错误了好几次,于是我退出nvim.尝试用sudo nvim 编辑,但是却发现我的密码不管用了
我尝试passwd自己的用户更改密码,然后重试,密码还是错的
于是我su进root用户更改,还是没用
(base) dynamo ~ git-[ main]- sudo su dynamo
Deploying root access for dynamo. Password pls:
对不起,请重试。
Deploying root access for dynamo. Password pls:
对不起,请重试。
Deploying root access for dynamo. Password pls:
sudo: 3 次错误密码尝试
(base) dynamo ~ git-[ main]- su root
密码:
[root@archyyds dynamo]# passwd dynamo
新的密码:
重新输入新的密码:
passwd:已成功更新密码
(base) dynamo ~ git-[ main]- sudo su
Deploying root access for dynamo. Password pls:
对不起,请重试。
解决方案
我上万能的Arch论坛查了查,发现一个帖子:
[SOLVED] Password randomly stops working
我翻了翻,看到了这个评论:
Sounds more like the account is getting locked. Check out pam_faillock.
于是我在Arch手册查询了pam_failock
然后在终端查看了failock状态:
(base) dynamo ~ git-[ main]- faillock
dynamo:
When Type Source Valid
2024-12-21 11:59:04 SVC sudo V
2024-12-21 11:59:29 SVC sudo V
2024-12-21 11:59:42 SVC sudo V
我发现我的账户因为在nvim上的多次验证错误被锁定了,所以无法登陆
于是我通过 faillock --reset
重置了账号的锁定状态
现在,终于可以正常验证了
(base) dynamo ~ git-[ main]- faillock
dynamo:
When Type Source Valid
(base) dynamo ~ git-[ main]- sudo su
Deploying root access for dynamo. Password pls:
[root@archyyds dynamo]# su dynamo
总结
账户多次验证失败,会触发pam_faillock锁定用户从而无法验证,此时需要通过 faillock --reset
命令重置锁定状态,从而解除锁定