我在安装 Ubuntu 时拼错了用户名,如果可以的话,我想重命名。我该如何安全地更改用户名?
答案1
安全吗?根本不要重命名。相反,(确保用户先注销)使用正确的用户名创建一个新用户,将旧主目录重命名为新用户名,然后使用 chown -R 将文件夹分配给新用户。
这假设您没有使用加密主页。这需要一些不同的步骤,但由于我自己没有这样做过,所以我将这件事留给别人去做。
答案2
使用usermod
方式如下:
usermod -l newname currentname
答案3
我最近遇到了这样的问题并得到了可行的解决方案。
备份用户和组相关文件
sudo cp /etc/passwd ~/passwd.bak sudo cp /etc/group ~/group.bak sudo cp /etc/subuid ~/subuid.bak sudo cp /etc/subgid ~/subgid.bak sudo cp /etc/gshadow ~/gshadow.bak sudo cp /etc/shadow ~/shadow.bak
我们需要启动恢复模式(点击Shift启动,在 GRUB 中选择Ubuntu 的高级选项, 选择Ubuntu,与 Linux......(恢复模式))
- 选择
root Drop to root shell prompt
访问 root-shell 当系统询问时,请在此处输入您的主用户(通常为 GID = 1000,sudo 组成员)的密码
Press Enter for maintenance (or press Control-D to continue):
重新挂载所有具有读写功能的文件系统
mount -o rw,remount / mount -o rw,remount /home
重命名用户 旧用户到新用户,将对用户名的评论重命名(中的字段 5
/etc/passwd
)并将其移至主目录OLDNAME="old_user" NEWNAME="new_user" usermod -l $NEWNAME $OLDNAME -c $NEWNAME -d /home/$NEWNAME -m
重命名用户组旧用户到新用户
groupmod $OLDNAME -n $NEWNAME
代替旧用户到新用户在
/etc/subgid
和/etc/subuid
sed -i "s/$OLDNAME/$NEWNAME/g" /etc/subuid sed -i "s/$OLDNAME/$NEWNAME/g" /etc/subgid
重新启动系统,然后使用新用户名称和旧密码。可选择使用以下方式更改密码
passwd
如果一切顺利——删除备份文件:
sudo rm ~/passwd.bak ~/group.bak ~/subuid.bak ~/subgid.bak \ ~/gshadow.bak ~/shadow.bak
注意:您可以在其手册页上阅读有关使用的选项的usermod
信息。groupmod