我的系统上只有一个用户。如何从默认值1000更改其用户ID?
如果需要采取其他步骤以避免在典型的桌面安装上中断登录过程,则应将其作为答案的一部分。
我的系统上只有一个用户。如何从默认值1000更改其用户ID?
如果需要采取其他步骤以避免在典型的桌面安装上中断登录过程,则应将其作为答案的一部分。
Answers:
问题是,就像您提到的那样,登录会话时无法更改用户的UID。您必须使用另一个用户帐户才能继续。
但是您不必创建新的用户帐户,将其提升为管理员,注销,登录到新的管理员帐户,更改主帐户的UID,注销,登录到主帐户然后删除新的管理员用户只需更改您的UID。;)
您可以启动进入恢复模式(启动计算机时会出现此选项,或者在BIOS消息完成后立即按住Shift键;ESC在运行OEM-Ubuntu的Dell计算机上使用)。这将使您登录到根会话。以root 身份而不是通常的用户帐户身份登录后,您将能够修改UID。
由于恢复模式仅适用于命令行界面,因此登录到根会话后,您将必须:
使用BubbaJ的说明以读写模式重新安装根文件系统:mount -o remount,rw /
。
使用Luis Alvarado的命令:usermod -u NEW_UID your_username
。
reboot
),以便可以在正常模式下启动。usermod -u NEW_UID your_username
和之后find / -uid 1000 -exec chown -h 5000 '{}' \+
,重新引导将导致仅猜测会话GUI登录。
usermod: user user_name is currently used by process 1118
@Alexandre P.
你可以改变它/etc/passwd
,/etc/group
并/etc/shadow
或你使用上面的首选possibilties之一。但是-最重要-您必须更改属于该用户的所有文件的所有权。
例如,如果旧的用户ID是1000,新的用户ID是5000:
find / -uid 1000 -exec chown -h 5000 {} +
与组ID相同(如果您也更改的话)。
find / -gid 1000 -exec chgrp -h 5000 {} +
基于@AlexandreP的完整解决方案。和@ddeimeke +官方文档。无需重启。
Debian / Ubuntu策略是,如果有一个jim
具有用户ID的用户1001
,那么也会有一个jim
具有组ID的组1001
。此解决方案还更新了这些组ID。
sudo passwd root
以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
sudo setfacl -m "u:<NEWUID>:r-x" /media/<USERNAME> sudo setfacl -x "u:<OLDUID>" /media/<USERNAME>
如果您进入控制台并输入::usermod --help
您将得到一个参数,说:
-u,--uid UID用户帐户的新UID
因此,如果您想更改用户cyrex的UID,请执行以下操作:
usermod -u 1000 cyrex
会将cyrex的uid从之前的任何值更改为1000
如果您想以视觉方式进行操作,请执行以下操作:
去
系统->管理->用户和组
从列表中选择自己,然后单击“高级设置”
UID在该窗口的末尾。
首先,您至少需要一段时间才能以root用户身份登录,因此让我们实现这一点:
sudo passwd root
重新启动,按ctrl + alt + f1切换到控制台,以root用户身份登录,然后执行以下操作(home dir中的所有权将自动处理):
groupmod --gid NEWGID username
usermod --uid NEWUID username
对于除主目录以外的其他位置的文件,请执行以下操作:
sudo chown -R username:username /path/to/files
如果需要,请删除并锁定root的密码。(我倾向于保留它):
passwd -dl root