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
因为它不是主数据库。正如您所做的那样,您应该使用adduser
or 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 的相同用户/组。