我如何更改我的用户名?

我如何更改我的用户名?

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

如何更改这些设置(包括我的主目录名称和终端中的名称)而不丢失应用程序设置?
如何保留各种身份验证的权限和密钥(例如电子邮件、SSH、GPG 等)?
如果我更改用户名,哪些设置可能会丢失?

答案1

类 Unix 操作系统将用户名与用户身份分离,因此您可以安全地更改名称而不影响 ID。所有权限、文件等都与您的身份 (uid) 相关联,而不是您的用户名。

要管理用户数据库的各个方面,您可以使用该usermod工具。

要更改用户名和用户的组名(最好不要登录即可执行此操作):

sudo usermod -l newUsername oldUsername
sudo groupmod -n newUsername oldUsername

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

要更改主文件夹,请使用

sudo usermod -d /home/newHomeDir -m newUsername

更改用户名后。

例如,您可以注销,转到控制台 ( Ctrl++ ),然后成为真正的 root(与相反,其中 $HOME 仍然是 /home/yourname。)也许您还必须先终止此用户的一些仍在运行的进程Alt。为此,请输入,查找匹配的 PID 并通过 终止它们。F1sudo su -sudo -sps -u usernamekill PID-number

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

对于像我这样不太有经验的用户,还有一些附加信息:由于
我只有一个用户帐户(管理员),因此不允许我更改用户名(“您已登录”是 TTY1(Ctrl++ )中的响应。要解决这个问题:AltF1

  1. 使用您的旧凭据登录并添加新用户,例如 TTY1 中的“临时”:

    sudo adduser temporary
    

设置密码。2. 通过将临时用户添加到 sudo 组来允许该用户运行 sudo:

    sudo adduser temporary sudo
  1. 使用命令注销exit

  2. 返回 tty1:使用“临时”用户帐户和密码登录。如上所述更改您的用户名和文件夹。exit(直到您收到登录提示)

  3. 返回 TTY7(Ctrl++ AltF7登录 GUI/普通桌面屏幕,看看是否有效。

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

    sudo deluser temporary
    sudo rm -r /home/temporary
    

答案2

综上所述:

  1. 退出您的会话或重新启动计算机以返回到开始屏幕。

  2. 在开始屏幕上进入控制台模式 tty。按Ctrl+ Alt+ F1(在某些 Ubuntu 版本中,这可能是Ctrl+ Alt+ F2

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

  4. 为“root”账户设置密码。

     sudo passwd root
    
  5. 登出。

     exit
    
  6. 使用“root”账户和您之前设置的密码登录。

  7. 将用户名和主文件夹更改为您想要的新名称。

     usermod -l <newname> -d /home/<newname> -m <oldname>
     usermod -c "newfullname" <newname>
    

    “newfullname” 是 中的第五列/etc/passwd,例如可能是“First Last”。

  8. 将组名更改为您想要的新名称。

     groupmod -n <newgroup> <oldgroup>
    
  9. 锁定“root”帐户,使其不再具有可用于以 root 身份登录的有效密码。

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

  11. 登出。

    exit
    
  12. Ctrl+ Alt+F7返回 Ubuntu 图形模式登录屏幕(在某些 Ubuntu 版本中,这可能是Ctrl+ Alt+ F1)。

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

答案3

在恢复模式下重新启动并转到 root 提示符 shell(“转到 root shell 提示符”)

首先重新挂载根

mount -o remount,rw /

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

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

对于组名,

groupmod -n <newgroup> <oldgroup>

答案4

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

在根恢复控制台运行:

mount -o remount,rw /

然后重新运行:

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

相关内容