“没有这样的用户”但用户在密码文件中

lbu*_*tlr 12 freebsd passwd

查看 /etc/ 中的文件:

/etc/group:lbutler:*:1005:
/etc/master.passwd:lbutler:$6$s..../:1005:1005::0:0:L Butler:/home/lbutler:/bin/bash
/etc/passwd:lbutler:*:1005:1005:L Butler:/home/lbutler:/bin/bash
Run Code Online (Sandbox Code Playgroud)

但:

$ passwd lbutler
passwd: lbutler: no such user
Run Code Online (Sandbox Code Playgroud)

此外,文件/home/lbutler/显示为 uid 1005 和 gidlbutler

中的其他用户/etc/passwd似乎没有问题

cuo*_*glm 9

似乎您的/etc/master.passwd. 您可以将其恢复到正常状态,请尝试:

  • vipw编辑/etc/master.passwd
  • 保存而不做任何更改。

您还可以使用pwd_mkdb更新密码数据库。

  • +1:OP 可能是 Linux 用户,并且认为操作系统实际上将 /etc/passwd 作为主要来源。在 FreeBSD 上,从 /etc/passwd 生成的 DB 文件是真实的主要来源。 (6认同)

lbu*_*tlr 1

我注意到 lbutler 之前的用户的 UID 和 GID 为 10014(而不是预期的 1014)。该用户更改了密码,之后 UID 1015 无法登录。使用 vipw 我颠倒了两行并保存了文件。两个用户现在都可以登录并且所有权显示正确。感谢您的指点。