该用户是我们服务器上的非特权 SFTP 访问用户,它是在今年早些时候由于 Covid19 导致的居家令期间使用的,我今天使用它来准备一些明天使用的工作。
由于我忘记了以前的密码,因此我使用命令重置了它sudo passwd <user>
,并且无法登录,我使用pw unlock
并检查显式解锁了它/etc/master.passwd
,并确认我成功更改了记录的密码哈希。然而,我无法使用sftp
远程命令或login
在管理 ssh 会话期间使用命令登录。
造成这种情况的原因可能是什么?
更新
我将另一个非特权用户的密码哈希复制到它,但它仍然无法登录,但其他非特权用户可以登录。
答案1
浏览 的手册页passwd(5)
,我找到了该pwd_mkdb(8)
命令。跑步:
pwd_mkdb -p /etc/master.passwd
解决了问题。
本质上,问题在于,/etc/master.passwd
文件没有更新为/etc/pwd.db
和/etc/spwd.db
。这两个是伯克利数据库格式的“缓存”数据库文件(存在的目的是加速凭证查找)。
pwd_mkdb(8)
是生成“密码数据库”的系统管理命令,即用户信息表。我上个月将服务器更新到 12.2-RELEASE,忘记运行命令可能是原因。