前段时间,当我安装 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 -s
ps -u username
kill PID-number
更新:正如安排所述,某些文件可能会引用您的旧主目录。您可以保留符号链接以实现向后兼容,例如,或者您可以使用它为每个带有 .bak 扩展名的文件创建备份ln -s /home/newname /home/oldname
来更改文件内容。sed -i.bak 's/*oldname*/*newname*/g' *list of files*
对于像我这样不太有经验的用户,还有一些附加信息:由于
我只有一个用户帐户(管理员),因此不允许我更改用户名(“您已登录”是 TTY1(Ctrl++ )中的响应。要解决这个问题:AltF1
使用您的旧凭据登录并添加新用户,例如 TTY1 中的“临时”:
sudo adduser temporary
设置密码。2. 通过将临时用户添加到 sudo 组来允许该用户运行 sudo:
sudo adduser temporary sudo
使用命令注销
exit
。返回 tty1:使用“临时”用户帐户和密码登录。如上所述更改您的用户名和文件夹。
exit
(直到您收到登录提示)返回 TTY7(Ctrl++ Alt)F7登录 GUI/普通桌面屏幕,看看是否有效。
删除临时用户和文件夹:
sudo deluser temporary sudo rm -r /home/temporary
答案2
综上所述:
退出您的会话或重新启动计算机以返回到开始屏幕。
在开始屏幕上进入控制台模式 tty。按Ctrl+ Alt+ F1(在某些 Ubuntu 版本中,这可能是Ctrl+ Alt+ F2)
使用您的用户名和密码登录。
为“root”账户设置密码。
sudo passwd root
登出。
exit
使用“root”账户和您之前设置的密码登录。
将用户名和主文件夹更改为您想要的新名称。
usermod -l <newname> -d /home/<newname> -m <oldname> usermod -c "newfullname" <newname>
“newfullname” 是 中的第五列
/etc/passwd
,例如可能是“First Last”。将组名更改为您想要的新名称。
groupmod -n <newgroup> <oldgroup>
锁定“root”帐户,使其不再具有可用于以 root 身份登录的有效密码。
passwd -l root
如果您使用的是 ecryptfs(加密主目录)。使用安装加密目录
ecryptfs-recover-private
并进行编辑<mountpoint>/.ecryptfs/Private.mnt
以反映您的新主目录。登出。
exit
按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>