Answers:
类似于Unix的操作系统将用户名与用户身份分离,因此您可以安全地更改名称而不影响ID。所有权限,文件等都与您的身份(uid)绑定,而不与您的用户名绑定。
要管理用户数据库的各个方面,请使用该usermod
工具。
要更改用户名(最好不要登录即可执行此操作):
sudo usermod -l newUsername oldUsername
但是,这不会重命名主文件夹。
要更改家庭文件夹,请使用
sudo usermod -d /home/newHomeDir -m newUsername
更改用户名后。
例如,您可以注销,放入控制台(Ctrl+ Alt+ F1),并sudo su -
成为真正的root(与相对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)中的响应是“您已经登录” 。围绕这个:
使用您的旧凭据登录并添加一个新用户,例如TTY1中的“临时”用户:
sudo adduser temporary
设置密码。
通过将临时用户添加到sudo组,允许临时用户运行sudo:
sudo adduser temporary sudo
exit
。exit
(直到出现登录提示)删除临时用户和文件夹:
sudo deluser temporary
sudo rm -r /home/temporary
grep -IRFl /home/username ~
,您将看到其中存储了对主目录的引用。
/home/.ecryptfs/oldusername/.ecryptfs/Private.mnt
以指向新的主文件夹,否则您将无法通过Unity登录。
sudo usermod -d /home/edge -m edge
收益:usermod: Directory /home/empedokles could not be renamed in /home/edge
即第4步不起作用。
sudoers
使用plain进行编辑nano
。始终使用visudo
。
放在一起:
为“ root”帐户设置密码。
sudo passwd root
登出。
exit
使用“ root”帐户和您先前设置的密码登录。
将用户名和主文件夹更改为所需的新名称。
usermod -l <newname> -d /home/<newname> -m <oldname>
将组名更改为所需的新名称。
groupmod -n <newgroup> <oldgroup>
锁定“ root”帐户。
passwd -l root
如果您使用的是ecryptfs(加密的主目录)。使用ecryptfs-recover-private
并挂载加密的目录,然后进行编辑<mountpoint>/.ecryptfs/Private.mnt
以反映新的主目录。
登出。
exit
按Ctrl+ Alt+ F7。
现在,您可以使用新用户名登录了。
usermod -l
获得user <oldname> is currently used by process <processno>
,您可以使用来找到该进程(可能是守护进程,或tmux / screen)ps aux | grep <processno>
。您可能需要优雅地停止该过程,否则可以kill <processno>
。
在恢复模式下重新启动,然后转到root提示符shell(“拖放到root shell提示符”)
首先重新安装根
mount -o remount,rw /
要更改用户名和主文件夹名称,
usermod -l <newname> -d /home/<newname> -m <oldname>
对于组名,
groupmod -n <newgroup> <oldgroup>
usermod -l <newname> -d /home/<newname> -m <oldname>
它给我一个错误usermod: user oldusername is currently used by process 3170
,如果我杀死进程仍然给我同样的错误。使用ubuntu 13.10
在Ubuntu 13.10、14.04、16.04上:
@ karthick87在这里列出的答案可以很好地工作,但是为了安全起见并避免所有故障,这是我会做的事情:
由于并非所有PC都具有该usermod
应用程序,因此您可以手动进行操作。从root开始/etc/passwd
编辑:
sudo vim /etc/passwd
并在行首更改用户名:
user:x:500:501:username:home/user:/bin/bash
至:
newuser:x:500:501:username:home/user:/bin/bash
那么如果您是root用户,则只需登录,并且已经登录user
,注销并重新登录。
usermod
命令之前),并且不再接受用户密码。
usermod
安装,则由于安装是passwd
软件包的一部分,因此安装失败,这是必需的。