我的系统上只有一个用户。如何更改其默认的用户 ID(1000)?
如果为了避免破坏典型桌面安装中的登录过程而需要采取其他步骤,则应将这些步骤作为答案的一部分。
答案1
您可以在 中更改它/etc/passwd
,/etc/group
或者/etc/shadow
使用上面首选方法之一。但最重要的是,您必须更改属于该用户的所有文件的所有权。
例如,如果旧用户 ID 为 1000,新用户 ID 为 5000:
find / -uid 1000 -exec chown -h 5000 {} +
组 ID 也同样如此(如果您也更改它的话)。
find / -gid 1000 -exec chgrp -h 5000 {} +
答案2
基于@AlexandreP. 和@ddeimeke + 官方文档的完整解决方案。无需重启。
Debian/Ubuntu 的策略是,如果有一个用户jim
ID 为1001
,那么就有一个jim
组 ID 为 的组1001
。此解决方案还会更新这些组 ID。
-
sudo passwd root
- 如果用户已登录,则注销(也在虚拟终端上)
- 转至 VT1:Ctrl-Alt-F1
以 root 身份登录并使用提供的用户名和旧/新 UID 运行此命令:
# put the information we need in variables username=... old_uid=`id -u $username` # looks up current (old) uid new_uid=... # update the user ID and group ID for $username usermod -u $new_uid $username groupmod -g $new_uid $username # update the file ownerships # NB: you cannot combine the next two chowns, or files where # only the uid xor the gid matches won't be updated chown -Rhc --from=$old_uid $new_uid / # change the user IDs chown -Rhc --from=:$old_uid :$new_uid / # change the group IDs
- 登出
- 登录身份
$username
-
sudo passwd -dl root
答案3
问题是,正如您所提到的,当用户登录会话时,您无法更改用户的 UID。您必须使用另一个用户帐户才能继续。
但是您不必创建新的用户帐户,将其提升为管理员,注销,登录到新的管理员帐户,更改您的主帐户的 UID,注销,登录到您的主帐户,然后删除新的管理员用户,只需更改您的 UID。;)
您可以启动到恢复模式(这是启动计算机时出现的选项,或者在 BIOS 消息完成后立即按住 Shift;ESC在运行 OEM-Ubuntu 的戴尔机器上使用)。这将使您登录到 root 会话。以 root 身份登录而不是您通常的用户帐户,您将可以修改您的UID。
因为恢复模式仅在命令行界面下有效,所以一旦登录到根会话,您将必须:
使用BubbaJ 关于以读写模式重新挂载根文件系统的说明:
mount -o remount,rw /
。使用路易斯·阿尔瓦拉多的命令:
usermod -u NEW_UID your_username
。- 跟随ddeimeke 的指示更新文件权限。
- 然后,重新启动计算机(
reboot
),这样您就可以以正常模式启动。
答案4
- 去系统>>管理>>用户和组
- 点击高级设置并转到先进的在底部的标签中您将看到您的用户 ID。
- 更改它并单击确定。