deepin/ubuntu修改用户名和主机名

安装系统的时候用户名和主机名起得太长了,现在想修改。修改用户名是一件比较危险的事情,搞不好就要重装系统。网上看了几个帖子,有各种错误的方法,导致了一堆人改坏了。

现在经过我的折腾,验证了如下办法是比较正确的:

首先,退出当前登陆的账户,进入tty1(Ctrl+Alt+F1)以root账户登陆。如果没有root账户密码请先执行设定root密码(sudo passwd)。

修改用户名:

chfn -f 新名字 原名字
usermod -l 新名字 -d /home/新名字 -m 原名字
groupmod -n 新名字 原名字

修改主机名

修改文件/etc/hosts/etc/hostname里面对应的主机名。

至此,用户名和主机名已经修改完了。不需要重启,直接在tty1退出root登陆新用户,验证一下能否进入新的用户,以及用户主目录名字是否正确。亲测ubuntu 16.04到此成功。

Deepin此时如果重启系统还可能无法直接登陆,这是因为欢迎界面记录的上一次登陆的用户名是旧的。deepin15所使用的lightdm-deepin-greeter需要修改文件/var/lib/lightdm/lightdm-deepin-greeter/state 里面的用户名。

至此修改完毕,可以重启了。

如果重启后出现无法登陆或者其他异常,不要惊慌,切换到tty1看看是否可以登陆,登陆以后执行startx看看能否进入桌面。如果可以,说明问题不大,想办法修复之。基本上都是某个配置文件出错,检查的时候记得善用搜索。如果无法修复问题,按原方法将用户名改回去吧。

可能存在的问题

这个方法可以修改用户名,但没法将原有的软件里的配置中的用户名都替换成现有的。还可能出现原有的指向主目录的符号链接断掉的问题。针对第一个问题有以下解决方法:

1、在/home文件夹下创建主目录文件的符号链接,名字为原用户名。这样多了一个符号链接,完全不碍事,但是可以解决其他程序找不到原有的文件的问题。命令:

sudo ln -s 新名字/ 原名字

2、用文本编辑器(例如:sublime)在主目录下搜索文件内容,找到所有原名字,然后替换掉。这样做的前提是你的原名字不能有其他意思,例如名字是ubuntu,那就不行了。另外,修改之前最好备份一下,至少要把搜索结果保存下来。

感想

起名需谨慎!

参考链接:(原帖方法错误,正确方法来自评论)
http://blog.csdn.net/hs794502825/article/details/8454626

评论