尝试更改我的用户名,但现在该用户不在登录选项中

尝试更改我的用户名,但现在该用户不在登录选项中

我试图更改我的用户名。我打开终端,如果我没记错的话,我使用了 sudo /etc/shadow 然后 sudo /etc/passwd 我看到它没有改变,所以我创建了一个临时用户,登录并使用了命令

sudo usermod -l newusername -d /home/newusername -m oldusername

当我再次登录时发现它没有改变任何东西

sudo usermod -l newusername oldusername

然后我又尝试了一些我不记得的东西并重新启动了我的计算机。而且只有临时用户。我登录后可以找到原始用户的文件,但无法登录该帐户。有什么我可以做的吗?

答案1

以下某些命令将不起作用,因为您已经更改了用户,因此只需按照步骤操作,看看什么对您有用。就像 @doneal24 所说,这只是一个猜测,所以你必须检查所有可能的变体。让我们知道什么对您有用。

更改用户名步骤:

定义变量

new_username=newUSER
old_username=oldUSER

检查ID是否是老用户

id ${old_username}

重命名用户和主目录

usermod -d /home/${new_username} ${old_username}
usermod -l ${new_username} ${old_username}

更改组

groupmod --new-name ${new_username} ${old_username}

更改邮件文件夹和所有者(以防 usermod 没有更改它)

mv /var/spool/mail/{${old_username},${new_username}}
chown ${new_username} /var/spool/mail/${new_username}

检查新用户的ID

id ${new_username}

重命名主文件夹(如果 usermod 没有重命名它)

mv /home/{${old_username},${new_username}}

检查重命名是否完成

ls -la /home

手动更改 /etc/passwd 用户 homedir (如果 usermod 没有更改它)

grep "${old_username}" /etc/passwd 
nano /etc/passwd

手动更改 ssh 公钥上的用户(默认情况下 ssh 密钥存储它创建的用户,我们需要新的用户名)

grep "${old_username}" /home/${new_username}/.ssh/*.pub
nano /home/${new_username}/.ssh/*.pub

手动更改 visudo 上的用户(可选)

visudo

相关内容