一、命令详解



1.命令说明

Linux 系统中,可以使用 useradd 命令新建用户,同时创建新用户的家目录。默认情况下,还将为新用户创建一个组。



2.语法格式

useradd       [option]      [username]
useradd       [选项]         [用户名]



3.选项描述

-b, --base-dir BASE_DIR       base directory for the home directory of the new account             
                                #新帐户的主目录的基本目录
  -c, --comment COMMENT         GECOS field of the new account
                                #新建帐户的GECOS字段,加上备注。备注保存在passwd的备注栏位中;
  -d, --home-dir HOME_DIR       home directory of the new account
                                #新帐户的主目录
  -D, --defaults                print or change default useradd configuration
                                #打印或更改默认用户添加配置,变更预设值
  -e, --expiredate EXPIRE_DATE  expiration date of the new account
                                #新帐户的到期日期,指定帐号的有效期限;
  -f, --inactive INACTIVE       password inactivity period of the new account
                                #新帐户的密码不活动期,指定在密码过期后多少天即关闭该帐号
  -g, --gid GROUP               name or ID of the primary group of the new account
                                #指定用户所属组,主组
  -G, --groups GROUPS           list of supplementary groups of the new account
                                #指定用户所属的附加群组
  -h, --help                    display this help message and exit
                                #显示此帮助消息
  -k, --skel SKEL_DIR           use this alternative skeleton directory     
                                #使用这个替代的框架目录 
  -K, --key KEY=VALUE           override /etc/login.defs defaults
                                #覆盖/etc/login.defs默认值
  -l, --no-log-init             do not add the user to the lastlog and
                                faillog databases
                                #不要将用户添加到lastlog和faillog数据库
  -m, --create-home             create the user’s home directory
                                #创建用户的主目录
  -M, --no-create-home          do not create the user's home directory
                                #不要自动建立用户的登入目录
  -N, --no-user-group           do not create a group with the same name as the user
                                #不要创建与用户同名的组
  -o, --non-unique              allow to create users with duplicate
                                (non-unique) UID
                                #允许创建具有重复(非唯一)UID的用户
  -p, --password PASSWORD       encrypted password of the new account
                                #新帐户的加密密码
  -r, --system                  create a system account
                                #创建一个系统帐户
  -R, --root CHROOT_DIR         directory to chroot into
                                #要导入的目录
  -s, --shell SHELL             login shell of the new account
                                #指定用户登入后所使用的shell
  -u, --uid UID                 user ID of the new account
                                #指定用户id
  -U, --user-group              create a group with the same name as the user
                                #创建与用户同名的组
  -Z, --selinux-user SEUSER     use a specific SEUSER for the SELinux user mapping               
  	                            #为SELinux用户映射使用特定的SEUSER



二、命令示例

查询用户: id 用户名 修改密码: passwd 用户名 添加组: groupadd 组名 组名用字母,不要用数字

案例1:创建普通用户 useradd

[root@centos7 home]#useradd nannannan
[root@centos7 home]#ls /home
cyan  gougou  hr02   nannannan  test1    wangcai  xulei

[root@centos7 home]#cat /etc/passwd | tail -1
nannannan:x:3011:3015::/home/nannannan:/bin/bash

[root@centos7 home]#grep nannannan /etc/passwd
nannannan:x:3011:3015::/home/nannannan:/bin/bash



Linux默认情况创建用户,会创建同名组 (主组).



案例2:添加用户指定主组 useradd -g

[root@centos7 home]#useradd zhangsansan -g zu1
[root@centos7 home]#id zhangsansan
uid=3013(zhangsansan) gid=1006(zu1) groups=1006(zu1)

可以看到新建的用户zhangsansan的主组变成zu1。

案例3:添加用户指定附件组 useradd -G

[root@centos7 home]#useradd zhangsi -G zuzu
[root@centos7 home]#id zhangsi
uid=3014(zhangsi) gid=3017(zhangsi) groups=3017(zhangsi),3016(zuzu)

可以看到新建的用户zhangsi 的附加组,增加了zuzu。

案例4:创建用户指定id useradd -u

需要说明的是,设定ID值时要大于1000,以免冲突。因为Linux安装后会建立一些特别用户,一般0-499之间的值留给系统账号,500-100是预留账号。

[root@centos7 home]#useradd zhangwu -u 3333
[root@centos7 home]#id zhangwu
uid=3333(zhangwu) gid=3333(zhangwu) groups=3333(zhangwu)



案例5:创建用户指定家目录 useradd -d

[root@centos7 ~]#useradd zhangliu -d /ddd
[root@centos7 ~]#ls /
app  boot  ddd  dir1  home  lib64  mnt    proc  run   srv   testdir1  usr
[root@centos7 home]#cat /etc/passwd |grep zhangliu
zhangliu:x:3334:3334::/ddd:/bin/bash

创建用户指定目录,没有则会自动创建。



案例6:创建一个系统用户 useradd -r

创建一个系统用户,UID小于1000。
由于是系统用户,没有家目录。

[root@centos7 ~]#useradd  -r  zhangqi
[root@centos7 ~]#id zhangqi
uid=988(zhangqi) gid=982(zhangqi) groups=982(zhangqi)
[root@centos7 ~]#ll -d  /home/zhangqi
ls: cannot access /home/zhangqi: No such file or directory
[root@centos7 ~]#ll -d  /home/zhangsi
drwx------. 3 zhangsi zhangsi 78 Mar  4 15:34 /home/zhangsi

案例7:创建用户指定shell useradd -s

创建用户时指定shell环境,默认bash

[root@centos7 ~]#useradd zhangba -s /bin/sh
[root@centos7 ~]#cat /etc/passwd |grep zhangba
zhangba:x:3335:3335::/home/zhangba:/bin/sh
[root@centos7 ~]#cat /etc/passwd |grep zhangqi
zhangqi:x:988:982::/home/zhangqi:/bin/bash



案例8:创建用户不要加目录 useradd -M

[root@centos7 ~]#useradd zhangjiu -M
[root@centos7 ~]#ll -d /home/zhangjiu
ls: cannot access /home/zhangjiu: No such file or directory



案例9:查看创建用户时的默认值 useradd -D

[root@centos7 home]#useradd -D
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=ye