我在安装Ubuntu时拼错了用户名,如果可能的话,我想改名。如何安全地更改我的用户名?
usermod
命令的方法如下:usermod -l newname currentname
备份与用户和组相关的文件
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 转到根shell提示符
以访问root shell在被询问时输入您的主要用户(通常GID = 1000,属于sudo组)密码
按Enter进行维护
(或按Control-D继续):
重新挂载所有文件系统为读写模式
mount -o rw,remount /
mount -o rw,remount /home
将用户从old_user重命名为new_user,重命名用户名称的注释(/etc/passwd
中的第5个字段)并移动其主目录
OLDNAME="old_user"
NEWNAME="new_user"
usermod -l $NEWNAME $OLDNAME -c $NEWNAME -d /home/$NEWNAME -m
将用户组从old_user重命名为new_user
groupmod $OLDNAME -n $NEWNAME
在/etc/subgid
和/etc/subuid
中将old_user替换为new_user
sed -i "s/$OLDNAME/$NEWNAME/g" /etc/subuid
sed -i "s/$OLDNAME/$NEWNAME/g" /etc/subgid
重新启动系统,然后使用new_user名称和旧密码登录。可选择使用passwd
更改密码
如果一切顺利-删除备份的文件:
sudo rm ~/passwd.bak ~/group.bak ~/subuid.bak ~/subgid.bak \
~/gshadow.bak ~/shadow.bak
usermod
和groupmod
使用选项的信息。