在添加了用户之后,如果不小心添加错了用户的信息,那么是否可以修改呢?当然可以了,我们可以直接使用编辑器修改用户相关文件,也可以使用usermod命令进行修改。我们来学习一下usermod命令。该命令的格式如下:

[root@localhost ~]#usermod [选项] 用户名

选项

说明

-u UID

修改用户的 UID;

-d 家目录

修改用户的家目录。家目录必须写绝对路径;

-c 用户说明

修改用户的说明信息,就是/etc/passwd 文件的第五个字段;

-g 组名

修改用户的初始组,就是/etc/passwd 文件的第四个字段;

-G 组名

修改用户的附加组,其实就是把用户加入其他用户组;

-s shell

修改用户的登录 Shell。默认是/bin/bash;

-e 日期

修改用户的失效日期,格式为“YYYY-MM-DD”。也就是/etc/shadow文件的第八个字段;

-L

临时锁定用户(Lock);

-U

解锁用户(Unlock);

可以看到,usermod和useradd命令的选项非常类似,因为它们都是用于自定义用户信息的。不过需要注意的是,useradd命令用于在添加新用户时指定用户信息,而usermod命令用于修改已经存在的用户的用户信息,千万不要搞混。

Usermod命令多出了几个选项,其中,-L可以临时锁定用户,不然这个用户登录。其实锁定的方法就是在/etc/shadows文件的密码前加入“!”。大家已经知道了密码项是加密换算的,所以加入任何字符都会导致密码失效,所以这个用户就会被禁止登录。而解锁(-U)其实就是把密码字段前的“!”取消。举个例子:

[root@localhost ~]# usermod -L lamp
#锁定用户lamp
[root@localhost ~]# grep "lamp" /etc/shadow
lamp:!$6$zAolpwmU$WdnaIkfIx.B1bn3s30bxbacvwzdjrKkK3ucTYL0Z6NYsm.cNyHIrz7WZ94LbPAvYRSJuFXplDZotKM0wTTLnL1:18339:0:99999:7:::
#查看发现锁定就是在密码字段前加入“!”,这时lamp用户就暂时不能登录了
[root@localhost ~]# usermod -U lamp
#解锁用户lamp
[root@localhost ~]# grep "lamp" /etc/shadow
lamp:$6$zAolpwmU$WdnaIkfIx.B1bn3s30bxbacvwzdjrKkK3ucTYL0Z6NYsm.cNyHIrz7WZ94LbPAvYRSJuFXplDZotKM0wTTLnL1:18339:0:99999:7:::
#取消了密码字段前的“!”

再举几个其他的例子。

[root@localhost ~]# usermod -G root lamp
#把lamp用户加入root组
[root@localhost ~]# grep "lamp" /etc/group
root:x:0:lamp
#lamp用户已经加入了root组
[root@localhost ~]# usermod -c "test user" lamp
#修改用户说明
[root@localhost ~]# grep "lamp" /etc/passwd
lamp:x:1000:1000:test user:/home/lamp:/bin/bash
#查看一下,用户说明已经被修改了

有人突发奇想,那用户可以修改用户名吗?当然可以:

[root@localhost ~]# usermod -l 新名 旧名 
#改名,但是初始组和家目录名等都没有改

但是真不建议改名,修改之后只会修改用户名,家目录和邮箱目录等等名称还是原来的用户名名称,这样极其容易把管理员自己搞晕菜,建议删除旧用户,再建立新用户!