我试图更改我的用户名。我打开终端,如果我没记错的话,我使用了
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