Tak*_*kat 404 permissions keyrings user-profile
前段时间,当我安装 Ubuntu 时,我为我的帐户选择了一个我不想再使用的相当愚蠢的用户名。
如何在不丢失应用程序设置的情况下更改它(包括我的主目录的名称和终端中的名称)?
我如何保留各种身份验证(例如电子邮件、SSH、GPG 等)的权限和我的密钥?
如果我更改了用户名,哪些设置可能会丢失?
Egi*_*gil 429
类 Unix 操作系统将用户名与用户身份分离,因此您可以安全地更改名称而不影响 ID。所有权限、文件等都与您的身份 (uid) 相关联,而不是您的用户名。
要管理用户数据库的各个方面,您可以使用该usermod
工具。
要更改用户名(最好在未登录的情况下执行此操作):
sudo usermod -l newUsername oldUsername
Run Code Online (Sandbox Code Playgroud)
但是,这不会重命名主文件夹。
要更改主文件夹,请使用
sudo usermod -d /home/newHomeDir -m newUsername
Run Code Online (Sandbox Code Playgroud)
更改用户名后。
举例来说,你可以注销,下降到控制台(Ctrl+ Alt+ F1),并sudo su -
成为真正的根(而不是sudo -s
,其中$ 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)。为了获得围绕这个:
使用您的旧凭据登录并添加一个新用户,例如 TTY1 中的“临时”:
sudo adduser temporary
Run Code Online (Sandbox Code Playgroud)
设置密码。
通过将用户添加到 sudo 组,允许临时用户运行 sudo:
sudo adduser temporary sudo
Run Code Online (Sandbox Code Playgroud)exit
。exit
(直到您收到登录提示)删除临时用户和文件夹:
sudo deluser temporary
sudo rm -r /home/temporary
Run Code Online (Sandbox Code Playgroud)小智 131
把它们放在一起:
退出会话或重新启动计算机以返回开始屏幕。
在开始屏幕转到控制台模式 tty。按Ctrl+ Alt+ F1(在某些 Ubuntu 修订版中,这可能是Ctrl+ Alt+ F2)
使用您的用户名和密码登录。
为“root”帐户设置密码。
sudo passwd root
Run Code Online (Sandbox Code Playgroud)
登出。
exit
Run Code Online (Sandbox Code Playgroud)
使用“root”帐户和您之前设置的密码登录。
将用户名和主文件夹更改为所需的新名称。
usermod -l <newname> -d /home/<newname> -m <oldname>
Run Code Online (Sandbox Code Playgroud)
将组名称更改为所需的新名称。
groupmod -n <newgroup> <oldgroup>
Run Code Online (Sandbox Code Playgroud)
锁定“root”帐户。
passwd -l root
Run Code Online (Sandbox Code Playgroud)
如果您使用的是 ecryptfs(加密主目录)。使用ecryptfs-recover-private
和编辑挂载您的加密目录<mountpoint>/.ecryptfs/Private.mnt
以反映您的新主目录。
登出。
exit
Run Code Online (Sandbox Code Playgroud)
按Ctrl+ Alt+F7返回 Ubuntu 图形模式登录屏幕(在某些 Ubuntu 修订版中,这可能是Ctrl+ Alt+ F1)。
现在您可以使用新用户名登录。
kar*_*k87 30
在恢复模式下重新启动并转到 root 提示符 shell(“Drop to root shell prompt”)
首先重新挂载root
mount -o remount,rw /
Run Code Online (Sandbox Code Playgroud)
要更改用户名和主文件夹名称,
usermod -l <newname> -d /home/<newname> -m <oldname>
Run Code Online (Sandbox Code Playgroud)
对于组名,
groupmod -n <newgroup> <oldgroup>
Run Code Online (Sandbox Code Playgroud)
小智 11
在 Ubuntu 13.10、14.04、16.04 上: