我试图将用户的 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
以检查当前配置。