尝试将 uid 更改为用户,但说它已经存在

尝试将 uid 更改为用户,但说它已经存在

我试图将用户的 UID 更改ec2-user为 500,当我尝试以下命令时出现错误 UID 已存在。

sudo usermod -u 500 ec2-user
usermod: UID '500' already exists

我正在执行 grep 操作/etc/passwd,但找不到 UID 500,所以不确定如何完成此操作。

答案1

根据源码usermod用于getpwuid检查uid是否已经存在如果prefix未使用该标志。

如中所述文档getpwuid,它还可以从LDPA等查找用户:

getpwnam() 函数返回一个指向结构的指针,该结构包含密码数据库(例如,本地密码文件/etc/passwd、NIS 和LDAP)中与用户名匹配的记录的细分字段。

getpwuid() 函数返回一个指向结构的指针,该结构包含密码数据库中与用户 ID uid 匹配的记录的细分字段。

您可以运行getent passwd 500检查uid是否已经存在。根据文档 getent passwd将每个数字键传递给getpwuid并显示结果。您还可以查看/etc/nsswitch.conf以检查当前配置。

相关内容