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