usermod命令是用户账户修改中最强大的一个。它能够修改/etc/passwd文件中的大部分字段,只需用与想修改的对应的命令行参数就可以了。参数大部分跟useradd命令的参数一样。下面将为大家一个一个讲解:
1、-c 给用户添加备注信息
[root@yuan ~]# usermod -c "shu guo" guanyu
[root@yuan ~]# cat /etc/passwd|grep guanyu
guanyu:x:1002:1002:shu guo:/home/guanyu:/bin/bash
给guanyu(关羽)添加备注信息:shuguo(蜀国)。
2、-d 修改主目录
[root@yuan ~]# usermod -d /app guanyu
[root@yuan ~]# cat /etc/passwd|grep guanyu
guanyu:x:1002:1002:shu guo:/app:/bin/bash
修改关羽的家目录为/app
3、-e 用YYYY-MM-DD格式指定一个账户过期的日期(用1970年1月1日到当天的天数表示)
[root@yuan ~]# cat /etc/shadow|grep guanyu
guanyu:!!:17829:0:99999:7:::
[root@yuan ~]# usermod -e 2018-12-1 guanyu
[root@yuan ~]# cat /etc/shadow|grep guanyu
guanyu:!!:17829:0:99999:7::17866:
/etc/shadow倒数第二个字段显示的是账户过期日期,已经发生改变!
4、-f 指定这个密码过期多少天将被禁用:0表示一过期就立即禁用,-1表示禁用这个功能
[root@yuan ~]# cat /etc/shadow|grep guanyu
guanyu:!!:17829:0:99999:7:::
[root@yuan ~]# usermod -f 0 guanyu
[root@yuan ~]# cat /etc/shadow|grep guanyu
guanyu:!!:17829:0:99999:7:0:17866:
可以看到,已经由禁用该功能,改成了立即就禁用,您也可设置一个具体的数字(单位是天)。
5、-g 修改登录用户的gid或者组名,主组!
[root@yuan ~]# groupadd shuguo
[root@yuan ~]# id guanyu
uid=1002(guanyu) gid=1002(guanyu) groups=1002(guanyu)
[root@yuan ~]# usermod -g shuguo guanyu
[root@yuan ~]# id guanyu
uid=1002(guanyu) gid=2008(shuguo) groups=2008(shuguo)
用户关羽的主组已经变成了shuguo。
[root@yuan ~]# groupadd -g 3000 weiguo
[root@yuan ~]# usermod -g 3000 guanyu
[root@yuan ~]# id guanyu
uid=1002(guanyu) gid=3000(weiguo) groups=3000(weiguo)
用户关羽的主组GID已经改变为3000
6、-G 指定用户的附加组
[root@yuan ~]# groupadd -g 3001 weiguo1
[root@yuan ~]# usermod -G 3001 guanyu
[root@yuan ~]# id guanyu
uid=1002(guanyu) gid=3000(weiguo) groups=3000(weiguo),3001(weiguo1)
[root@yuan ~]# groupadd -g 3002 weiguo2
[root@yuan ~]# groupadd -g 3003 weiguo3
[root@yuan ~]# id guanyu
uid=1002(guanyu) gid=3000(weiguo) groups=3000(weiguo),3001(weiguo1)
[root@yuan ~]# usermod -G 3002,3003 guanyu
[root@yuan ~]# id guanyu
uid=1002(guanyu) gid=3000(weiguo) groups=3000(weiguo),3002(weiguo2),3003(weiguo3)
可以指定一个,也可以指定多个。
7、修改用户UID
[root@yuan ~]# usermod -u 3000 guanyu
[root@yuan ~]# id guanyu
uid=3000(guanyu) gid=3000(weiguo) groups=3000(weiguo),3002(weiguo2),3003(weiguo3)
关羽的UID修改为3000.
8、修改登录shell
[root@yuan ~]# cat /etc/passwd|grep guanyu
guanyu:x:3000:3000:shu guo:/app:/bin/bash
[root@yuan ~]# usermod -s /sbin/nologin guanyu
[root@yuan ~]# cat /etc/passwd|grep guanyu
guanyu:x:3000:3000:shu guo:/app:/sbin/nologin
用户guanyu的shell已经由/bin/bash改为了/sbin/nologin
9、-l 修改用户账户的登录名
这个选项就比较有意思了,先解释一下接下来的步骤:给guanyu设置一个密码centos;然后修改guanyu的登录名称为guanyu1;
然后我们用root账户切换到guanyu,这时候报错用户不存在。然后我们切换到guanyu1,再查看一下他的家目录的名字竟然是guanyu,并没有随之改变为guanyu1.
[root@yuan ~]# echo centos |passwd --stdin guanyu
Changing password for user guanyu.
passwd: all authentication tokens updated successfully.
[root@yuan ~]# usermod -l guanyu1 guanyu
[root@localhost ~]# su guanyu
su: user guanyu does not exist
[root@localhost ~]# su - guanyu1
[guanyu1@localhost ~]$ pwd
/home/guanyu
10、-L 锁定账户,使账户无法登陆
10和11是两个非常实用的选项:
[root@localhost ~]# echo centos | passwd --stdin guanyu
Changing password for user guanyu.
passwd: all authentication tokens updated successfully.
[root@localhost ~]# usermod -L guanyu
[root@localhost ~]# su liubei
[liubei@localhost root]$ su guanyu
Password:
su: Authentication failure
给关羽设置密码centos;锁定guanyu用户;切换到普通用户下,再尝试着登录guanyu,无法登录。
11、-U 解除锁定,使用户可以登录。
结合着上面10给的例子,我们来解除对关羽的限制。
[liubei@localhost root]$ exit
exit
[root@localhost ~]# usermod -U guanyu
[root@localhost ~]# su - liubei
Last login: Mon Oct 29 20:16:47 CST 2018 on pts/0
[liubei@localhost ~]$ su guanyu
Password:
[guanyu@localhost liubei]$
退出liubei;解除对guanyu的限制;然后再切换到普通用户liubei;再尝试着登录guanyu。这时候我们可以看到,对关羽用户的限制登录已经解除。
12、-p 修改账户的密码
在较老一些的版本,支持该选项,现在的发行版已经不再支持该选项了。我们可以用passwd修改自己的密码。如果你是管理员,也可以用passwd+username的格式修改别人的密码。
知识共享,可以转载!