是什么导致所有者显示为 UID 而不是用户名?

是什么导致所有者显示为 UID 而不是用户名?

adduser当我在 FreeBSD 中使用或pw add user用户所属的目录创建用户时,所有者显示为UID 组名代替用户名 组名。这是为什么?它是唯一将所有者显示为 UID 的目录。 chown 用户名:组名没有区别。

编辑:

我发现 UID 仅在使用 FileZilla 的 SFTP 时显示。执行 ls -l 将用户名显示为所有者。我尝试断开连接并重新连接。没有不同。那么为什么它会在一个地方显示为 UID 而在另一个地方显示为用户名呢?

答案1

我使用的约定是创建一个与我的用户的用户名同名的组。

您可以在中找到用户名到 uid 的映射/etc/passwd

# cat /etc/passwd
clan:*:2001:2001:Claus Andersen:/home/clan:/bin/sh

我的 uid 是 2001,我的主要组 (gid) 是 2001

gid 到组名的映射位于:

# cat /etc/group
clan:*:2001:

在 FreeBSD 上,您永远不应该直接编辑,/etc/passwd因为它不是主数据库。正如您所做的那样,您应该使用adduseror pw add user。如果您确实想编辑,/etc/passwd请使用该vipw命令,因为它将正确更新数据库。

请注意,/home 通常是一个符号链接。通过以上我得到这个结果:

$ ls -l /home
lrwxr-xr-x  1 root  wheel  8 Oct  4 12:34 /home -> usr/home

$ ls -l /usr/home
drwxr-xr-x  3 clan  clan  12 Oct  4 12:34 clan

验证/etc/passwd看起来是否正确。如果不是,那么这就是一个简单的用户错误。但是,如果该文件看起来正确,则使用该pwd_mkdb命令更新 passwd 数据库以确保一致性。

在 FreeBSD 上看到 uid(和 gid)的另一个典型原因是您是否使用 Jails。如果您在监狱主机上创建了一个用户/组并创建了在监狱内可见的文件 - 那么您需要在监狱内拥有具有匹配 uid/gid 的相同用户/组。

相关内容