有时候,由于某些原因,我们可能会需要重命名用户名。我们可以很容易地修改用户名以及对应的家目录和 UID
1.修改用户名
我们使用 usermod 来修改用户名,语法为:
usermod -l new_username old_username
该命令相当于做了两件事:
-
将/etc/passwd下的用户名栏从kevin修改为xuenixiang,其他部分不变
-
将/etc/shadow下的用户名栏从kevin修改为xuenixiang,其他部分不变
举个例子,假设我们有一个名叫kevin的用户想要重命名为xuenixiang,那么在终端下执行下面命令:
usermod -l xuenixiang kevin
注意:
usermod不允许你改变正在线上的使用者帐号名称。当usermod用来改变userID,必须确认这名user没在电脑上执行任何程序,否则会报“usermod: user xxx is currently logged in”错误。因此必须root用户登录或者其他用户登录然后切换到root身份,而不能在当前用户下切换至root进行修改。
如果你已经在这个用户下登录了,你需要从要改名的帐号中登出并杀掉该用户的所有进程,要杀掉该用户的所有进程可以执行下面命令:
pkill -u kevin 杀掉kevin的所有进程
pkill -9 -u kevin 强制杀死
2.更新/etc/passwd中的注解栏
语法:usermod -c xuenixiang xuenixiang
相当于将/etc/passwd下的注解栏修改为xuenixiang,其他部分不变,如果要修改UID (例如:把UID改成2000)则使用usermod -u 2000 kevin
3.修改用户组名
语法:groupmod -n xuenixiang kevin
将原来的用户组kevin修改为xuenixiang,只修改组名,组标识号不变,相当于修改了文件/etc/group和/etc/gshadow
4.修改家目录
usermod -md /home/xuenixiang xuenixiang
相当于做了两件事:
-
将/etc/passwd下的登入目录栏修改为/home/xuenixiang,其他部分不变
-
将原来的用户目录/home/kevin修改为新的用户目录/home/xuenixiang
5. 做完修改后,可以使用 id 命令来检查
语法:id xuenixiang
所有的过程流程参考上图即可