usermod命令

usermod:修改用户的属性信息。

语法格式: 

usermod [options] LOGIN

选项:

-a:添加用户到辅助组中。和-G选项一起使用,将用户添加到组中。

示例1:

[root@Server3 ~]# usermod -aG user2 user1[root@Server3 ~]# grep 'user1' /etc/groupuser1:x:503:user2:x:504:user1[root@Server3 ~]# 作用:将user1添加到user2组中,将user2作为user1的附属组。

-c:修改用户的comment信息。

示例2:

[root@Server3 ~]# grep user1 /etc/passwduser1:x:503:503::/home/user1:/bin/bash[root@Server3 ~]# usermod -c "I am user1" user1[root@Server3 ~]# grep user1 /etc/passwduser1:x:503:503:I am user1:/home/user1:/bin/bash[root@Server3 ~]#

-d:修改用户的家目录。通常和-m选项一起使用,作用是将用户家目录下的内容移动到新的目录下,如果新的家目录不存在的话,则创建。

示例3:

[root@Server3 ~]# grep user1 /etc/passwduser1:x:503:503:I am user1:/home/user1:/bin/bash[root@Server3 ~]# mkdir /user1[root@Server3 ~]# usermod -d /user1 user1[root@Server3 ~]# grep user1 /etc/passwduser1:x:503:503:I am user1:/user1:/bin/bash[root@Server3 ~]#

示例4:

[root@Server3 ~]# grep user1 /etc/passwduser1:x:503:503:I am user1:/home/user1:/bin/bash[root@Server3 ~]# usermod -d /user1 -m user1[root@Server3 ~]# grep user1 /etc/passwduser1:x:503:503:I am user1:/user1:/bin/bash[root@Server3 ~]# su - user1[user1@Server3 ~]$

-e:修改账户过期时间,格式为YYYY-MM-DD。

示例5:

[root@Server3 ~]# chage -l user1Last password change                                    : Jul 01, 2014Password expires                                        : neverPassword inactive                                       : neverAccount expires                                         : Jul 02, 2014Minimum number of days between password change          : 0Maximum number of days between password change          : 99999Number of days of warning before password expires       : 7[root@Server3 ~]# usermod -e 2014-8-8 user1[root@Server3 ~]# chage -l user1Last password change                                    : Jul 01, 2014Password expires                                        : neverPassword inactive                                       : neverAccount expires                                         : Aug 08, 2014Minimum number of days between password change          : 0Maximum number of days between password change          : 99999Number of days of warning before password expires       : 7[root@Server3 ~]#

-f:密码过期多少天后账户将停用。0将立即停用,-1将关闭该特性。

示例6:

[root@Server3 ~]# grep user1 /etc/shadowuser1:!!:16252:0:99999:7:5:16290:[root@Server3 ~]# 说明:user1为密码过期5天后,账户将停用。将其修改为10:[root@Server3 ~]# usermod -f 10 user1[root@Server3 ~]# grep user1 /etc/shadowuser1:!!:16252:0:99999:7:10:16290:[root@Server3 ~]#

-g:修改用户的基本组或初始登录组。

示例7:

[root@Server3 ~]# grep user1 /etc/passwduser1:x:503:503:I am user1:/home/user1:/bin/bash[root@Server3 ~]# id -gn user2user2[root@Server3 ~]# id -g user1503[root@Server3 ~]# id -g user2504[root@Server3 ~]# usermod -g user2 user1[root@Server3 ~]# grep user1 /etc/passwduser1:x:503:504:I am user1:/home/user1:/bin/bash[root@Server3 ~]#

-G:修改用户的附属组。

-l:修改用户的login name。

示例8:

[root@Server3 ~]# grep user1 /etc/passwduser1:x:503:504:I am user1:/home/user1:/bin/bash[root@Server3 ~]# usermod -l user11 user1[root@Server3 ~]# grep user11 /etc/passwduser11:x:503:504:I am user1:/home/user1:/bin/bash[root@Server3 ~]#

-L:锁定用户,在密码前加上!

示例9:

[root@Server3 ~]# usermod -L user1[root@Server3 ~]# su - user2[user2@Server3 ~]$ su - user1Password: su: incorrect password[user2@Server3 ~]$ 说明:当锁定一个用户时,即使输入正确的密码,也会提示密码错误。

-U:解锁锁定的用户。

-u:修改用户的UID

示例10:

[root@Server3 ~]# grep user1 /etc/passwduser1:x:503:504:I am user1:/home/user1:/bin/bash[root@Server3 ~]# usermod -u 1000 user1[root@Server3 ~]# grep user1 /etc/passwduser1:x:1000:504:I am user1:/home/user1:/bin/bash[root@Server3 ~]#

-s:修改用户的shell

示例11:

[root@Server3 ~]# grep user1 /etc/passwduser1:x:1000:504:I am user1:/home/user1:/bin/bash[root@Server3 ~]# usermod -s /sbin/nologin user1[root@Server3 ~]# grep user1 /etc/passwduser1:x:1000:504:I am user1:/home/user1:/sbin/nologin[root@Server3 ~]#

还有一个专门修改用户shell的指令是chsh。

chsh的选项:

-l:列出在/etc/shells中的shell。

-s:改变用户的login shell

示例1:

[root@Server3 ~]# chsh -l/bin/sh/bin/bash/sbin/nologin/bin/tcsh/bin/csh[root@Server3 ~]#

示例2:

[root@Server3 ~]# grep user1 /etc/passwduser1:x:1000:504:I am user1:/home/user1:/bin/bash[root@Server3 ~]# chsh -s /sbin/nologin user1Changing shell for user1.Shell changed.[root@Server3 ~]# grep user1 /etc/passwduser1:x:1000:504:I am user1:/home/user1:/sbin/nologin[root@Server3 ~]#