当前位置: 首页>>技术教程>>正文


我如何更改我的用户名?

, , , , ,

问题描述

前一段时间,当我安装Ubuntu时,我为我的账户选择了一个相当愚蠢的用户名,我不想再使用它了。

如何在不丢失应用程序设置的情况下更改此项(包括我的主目录的名称和终端中的名称)?我如何保留许可和密钥以进行各种认证(例如电子邮件,SSH,GPG等)?如果我更改了用户名,可能会丢失什么设置?

最佳解决思路

Unix-like操作系统将用户名与用户身份解耦,因此您可以安全地更改名称而不影响ID。所有权限,文件等都与您的身份(uid)绑定,而不是您的用户名。

要管理用户数据库的每个方面,请使用usermod工具。

要更改用户名(可能最好不要登录):

sudo usermod -l newUsername oldUsername

但是,这不会重命名主文件夹。

要更改home-folder,请使用

usermod -d /home/newHomeDir -m newUsername

在您更改用户名后。

例如,你可以注销,放到控制台(Ctrl + Alt + F1)和sudo su -成为真正的根(相对于sudo -s,其中$ HOME仍然是/home /yourname)。也许你还必须杀死一些首先从这个用户运行进程。为此,输入ps -u username,查找匹配的PID并通过kill PID-number杀死它们。

更新:如前所述,某些文件可能会引用您的旧主目录。您可以保留用于向后兼容的符号链接,例如ln -s /home/newname /home/oldname或者您可以使用sed -i.bak 's/*oldname*/*newname*/g' *list of files*更改文件内容。它为每个扩展名为.bak的文件创建一个备份。

对于像我这样没有那么有经验的用户的一些附加信息:由于我只有一个用户帐户(管理员),它不会让我更改用户名(“您已经登录”是TTY1中的响应(Ctrl + Alt + F1)解决这个问题:

  1. 使用您的旧凭证登录并添加新用户,例如TTY1中的”temporary”:

    sudo adduser temporary
    

    设置密码。

  2. 允许临时用户通过将用户添加到sudo组来运行sudo:

    sudo adduser temporary sudo
    
  3. 用命令exit注销。

  4. 返回到tty1:使用’temporary’用户帐户和密码登录。如上所述更改您的用户名和文件夹。 exit(直到您获得登录提示)

  5. 回到TTY7(Ctrl + Alt + F7),在GUI /普通桌面屏幕上登录,看看是否能正常工作。

  6. 删除临时用户和文件夹:

    sudo deluser temporary
    sudo rm -r /home/temporary
    

次佳解决思路

把它放在一起:

  1. 在开始屏幕处按Ctrl + Alt + F1

  2. 使用您的用户名和密码登录。

  3. 为”root”帐户设置密码。

    sudo passwd root
    
  4. 登出。

    exit
    
  5. 使用”root”帐户和您先前设置的密码登录。

  6. 将用户名和主文件夹更改为所需的新名称。

    usermod -l <newname> -d /home/<newname> -m <oldname>
    
  7. 将组名称更改为所需的新名称。

    groupmod -n <newgroup> <oldgroup>
    
  8. 锁定”root”帐户。

    passwd -l root
    
  9. 如果您使用的是ecryptfs(加密主目录)。使用ecryptfs-recover-private装入加密目录并编辑<mountpoint>/.ecryptfs/Private.mnt以反映您的新主目录。

  10. 登出。

    exit
    
  11. Ctrl + Alt + F7

现在,您可以使用新的用户名登录。

第三种解决思路

重启进入恢复模式并转到根提示shell(“Drop to root shell prompt”)

首先重新装根

mount -o remount,rw /

要更改用户名和主文件夹名称,

usermod -l <newname> -d /home/<newname> -m <oldname>

对于组名,

groupmod -n <newgroup> <oldgroup>

第四种思路

(使用Ubuntu 13.10,14.04,16.04)点击”System Settings”图标。然后点击”User Accounts”。应显示您的管理员帐户。点击”Unlock”按钮。按要求输入您的用户密码,以允许更改您的帐户。一旦解锁,您可以点击您想要更改的旧用户名,然后输入新的用户名来替换它。当您输入新名称时,点击”Lock”按钮以使更改永久。重新启动Ubuntu。

第五种思路

在收到usermod: can't change /etc/password时,只需运行以下命令:

在根恢复控制台中运行:

mount -o remount,rw /

然后重新运行:

usermod -l <newname> -d /home/<newname> -m <oldname>

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/145.html,未经允许,请勿转载。