一、命令简介
useradd命令用于建立用户帐号。如果在没有-D选项的情况下调用,useradd命令将使用命令行上指定的值加上系统中的默认值创建一个新的用户帐户。根据命令行选项,useradd命令将更新系统文件,还可能创建新用户的主目录并复制初始文件。默认情况下,还将为新用户创建一个组。adduser命令作用与useradd命令一样,adduser命令实际为useradd命令的软连接。不同的linux系统默认选项不一样,比如Ubuntu系统useradd命令默认只创建用户,不会创建家目录。以下命令示例环境为centos7.6。
二、使用示例
1、获取命令帮助
[root@s141 ~]# useradd --help
2、添加一个普通用户
[root@s141 ~]# useradd test
#如下可见自动创建了家目录
[root@s141 ~]# ll /home/test/
#自动创建了test组
[root@s141 ~]# cat /etc/group |grep test
test❌1003:
3、为添加的用户指定相应的用户组
[root@s141 ~]# useradd -g test test1
#可以看到test1用户加入了组test
[root@s141 ~]# cat /etc/passwd |grep 1003
test❌1003:1003::/home/test:/bin/bash
test1❌1004:1003::/home/test1:/bin/bash
4、创建一个系统用户
[root@s141 ~]# useradd -r test2
#系统用户的ID小于1000
[root@s141 ~]# cat /etc/passwd |grep test2
test2❌996:994::/home/test2:/bin/bash
#系统用户一步给程序使用,不需要登录所以没有创建家目录
[root@s141 ~]# ll /home/test2
ls: cannot access /home/test2: No such file or directory
5、创建用户时指定家目录
[root@s141 ~]# useradd -d /home/abc test3
[root@s141 ~]# cat /etc/passwd |grep test3
test3❌1005:1005::/home/abc:/bin/bash
6、创建用户时指定shell环境,默认bash
[root@s141 ~]# useradd -s /bin/sh test4
#shell环境变成了/bin/sh
[root@s141 ~]# cat /etc/passwd |grep test4
test4❌1006:1006::/home/test4:/bin/sh
7、创建用户时不要创建家目录
[root@s141 ~]# useradd -M test5
[root@s141 ~]# ll /home/test5
ls: cannot access /home/test5: No such file or directory
8、查看创建用户时的默认值
[root@s141 ~]# useradd -D
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes
9、添加用户并设置密码
[root@s141 ~]# useradd -p ‘x5zxHGgD$oBuQSK/oCfwXFTG6u7HN1U4/yKN2hqErHbv/eNetBQ00BrGkv9JnUMbu90NjC0ccPdy78eZnyZ8xUanLQFWHP1’ test6
#-p 参数后面接密文,可以通过/etc/shadow文件中复制一个已知密码的密文,-p参数一般用户脚本中,可以隐藏密码,更加安全。
三、使用语法及参数说明
1、使用语法
用法1:useradd -D #查看创建用户的默认值
用法2:useradd [选项] 用户名 #根据选项创建用户
2、参数说明
参数 | 参数说明 |
-b,–base-dirBASE_DIR | 新帐户主目录的基本目录 |
-c,–commentCOMMENT | 新帐户的GECOS字段 |
-d,–home-dirHOME_DIR | 新帐户的主目录 |
-D,–defaults | 打印或更改默认用户添加配置 |
-e,–expiredateEXPIRE_DATE | 新帐户的到期日期 |
-f,–inactiveINACTIVE | 新帐户的密码不活动期 |
-g,–gidGROUP | 新帐户的主组的名称或ID |
-G,–groupsGROUPS | 新帐户的补充组列表 |
-h,–help | 显示此帮助消息并退出 |
-k,–skelSKEL_DIR | 使用这个替代的框架目录 |
-K,–keyKEY=VALUE | 覆盖/etc/login.defs默认值 |
-l,–no-log-init | 不要将用户添加到lastlog和faillog数据库 |
-m,–create-home | 创建用户的主目录 |
-M,–no-create-home | 不要创建用户的主目录 |
-N,–no-user-group | 不要创建与用户同名的组 |
-o,–non-unique | 允许创建具有重复(非唯一)UID的用户 |
-p,–password PASSWORD | 新帐户的加密密码 |
-r,–system | 创建一个系统帐户 |
-R,–root CHROOT_DIR | 要导入的目录 |
-s,–shell SHELL | 新帐户的登录shell |
-u,–uidUID | 新帐户的用户ID |
-U,–user-group | 创建与用户同名的组 |
-Z,–selinux-user SEUSER | 为SELinux用户映射使用特定的SEUSER |