前言

由于工作及兴趣爱好的原因,平时使用操作系统Linux和Windows使用频率各占一半。

在安装系统或者创建用户时,经常会随意敲击几个字符,后面用着总觉着不好,尤其是在Linux使用过程中,shell界面看到前面的字符老是不爽,所以会需要将已经存在的用户名进行更改的情况。

需要修改的文件

Linux下修改用户名需要改动以下几个地方:

  1. /etc/passwd
  2. /etc/group
  3. /etc/gshadow
  4. /etc/shadow
  5. 更改用户目录
  6. /etc/sudoers //非必须

操作步骤

修改以上文件都涉及添加可写权限,所以为了减少频繁sudo,建议直接切换到root用户下进行操作。

以用户名aaa 为例,最终将其更改为sobaigu

修改passwd

1
2
3
4
[root@zaza ~]# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin //表示该用户无登录系统权限
aaa:x:503:503::/home/aaa/:/bin/bash

passwd 默认是无写入权限的,所以第一步需要添加写入权限,往后的步骤也同理,不再赘述。

1
2
[root@zaza ~]# chmod +w /etc/passwd
[root@zaza ~]# vim /etc/passwd

将其内容变更为sobaigu:x:503:503::/home/sobaigu/:/bin/bash ,然后保存退出。

改完后记得还原权限,chmod -w /etc/passwd将写入权限取消,以免造成安全隐患,其他操作也同理。

修改/etc/group

1
2
3
4
[root@zaza ~]# cat /etc/group
root:x:0:
bin:x:1:bin,daemon
aaa:x:503:

aaa修改为想要的名字sobaigu

1
2
3
4
[root@zaza ~]# cat /etc/group
root:x:0:
bin:x:1:bin,daemon
sobaigu:x:503:

修改/etc/gshadow

1
2
[root@zaza ~]# cat /etc/gshadow
aaa:!::

只需要修改名称对应的部分,其他部分不用动。

修改/etc/shadow

1
2
3
[root@zaza ~]# chmod +w /etc/shadow
[root@zaza ~]# vim /etc/shadow
[root@zaza ~]# chmod -w /etc/shadow

这个文件涉及密码信息,就不贴内容了,同样的原则,将用户名改改,其他的就别动了了。如果想改用户密码,改完后用passwd命令修改就行了。

修改用户家目录

之前建用户的时候会一并建里家目录,如果这里不改,那使用的目录还是老的,也可以用,索性一并改了。

1
[root@zaza ~]# mv /home/aaa /home/sobaigu

修改/etc/sudoers

做这个主要是给自己用的账号赋予sudo 权限,要不然要权限的时候只能切到其他账户去。

xxx is not in the sudoers file. This incident will be reported

1
2
[root@zaza ~]# chmod u+w /etc/sudoers
[root@zaza ~]# vim /etc/sudoers

在文件中间找到下面这行

1
2
## Allow root to run any commands anywhere 
root ALL=(ALL) ALL

在下面加上自己的用户信息,然后保存即可

1
2
3
## Allow root to run any commands anywhere 
root ALL=(ALL) ALL
sobaigu ALL=(ALL) ALL

经过以上操作修改,老的用户名就改成新的了。