修改UID后没有用户名

修改UID后没有用户名

[Ubuntu 16.04.7、ISPConfig、Jailkit]

我需要更改新创建的(被监禁的)用户的 UID(通过 ISPConfig 的Add Shell User功能),以与同一虚拟主机上的其他用户消除歧义。所以我确定了下一个可用的uid并执行了usermod -u xxxx UserName

我检查了用户的主目录,用户列中显示的不是用户名,而是uid显示的。起初我并没有对这个结果想太多。

当我以新用户身份登录时,我发现,虽然其他一切正常,但提示的用户名已设置为I have no name!。由于我不需要/不想更改用户名(也没有),因此我对这个结果感到惊讶。当我id为该用户执行操作时,我得到了(请注意,用户的名称未显示在其 uid 旁边):

uid=5016 gid=5007(groupName) groups=5007(groupName)

用户肯定在/etc/passwd文件中。

我搜索了所有地方,但还是没有找到任何可以解决这个问题的方法。我该如何解决这个问题?

答案1

您提到这是针对被监禁的用户的。因此,您需要更改监狱内部和外部的 uid/用户名映射。

usermod处理了监狱外的主要编辑器,但要编辑监狱内的编辑器,您将必须使用普通编辑器(您不太可能usermod在监狱内拥有命令,因此您不能chroot usermod...)。该文件应具有{JailRoot}/etc/passwd适当的 值{JailRoot}。 UID 是第三个以冒号分隔的字段。

作为为了完整性起见的最后一步,请确保旧 UID ( {oldUID}) 拥有的所有文件都已转换为新 UID ( {newUID})。显然,如果你确定不存在这样的文件这一步可以跳过

find / -user {oldUID} -exec chown {newUID} {} +

相关内容