useradd命令-创建用户

338 阅读4分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第24天,点击查看活动详情

一、命令详解

1.1【功能说明】

useradd命令可以用于创建新的用户或者更改用户的信息。

1.2【语法格式】

[root@7bfe451a2fe1 ~]# useradd --help
Usage: useradd [options] LOGIN
       useradd -D
       useradd -D [options]

1.3【选项说明】

1、使用useradd常规添加用户工作原理流程

在使用useradd命令时,若不加任何参数选项,后面直接跟所添加的用户名,那么系统首先会读取/etc/login.defs(用户定义文件)和/etc/default/useradd(用户黑夜配置文件)文件中所定义的参数和规则,然后根据所设置的规则添加用户,同时还会向/etc/passwd(用户文件)和/etc/group(组文件)文件内添加新用户和新用户组记录,向/etc/shadow(用户密码文件)和/etc/gshadow(组密码文件)文件里添加新用户和组对应的密码信息的相关记录。同时系统还会根据/etc/default/useradd文件所配置的信息建立用户的家目录,并将/etc/skel中的所有文件(包括隐藏的环境配置文件)都复制到新用户的家目录中。

image-20221219225811363.png

2、useradd不加选项-D的参数选项及说明

  • -c comment 新用户passwd文件中的说明栏,冒号分隔后的第五列
  • -d home_dir 新用户每次登入时所使用的家目录
  • -e expire_date 用户终止日期,日期的指定格式为 yyyy-MM-dd
  • -f inactive_days 用户过期几日后永久停权。当值为0时用户立即被停权,而当值为-1时则关闭此功能,默认为-1
  • -g initial_group 指定用户对应的用户组。用户组名必须为系统现已存在的名称
  • -G group,[...] 定义此用户为多个不同组的成员。每个用户组使用逗号分隔,用户组名必须为系统现已存在的名称,默认为用户的起始用户组
  • -m 用户目录如不存在则自动创建
  • -M 不创建用户家目录,优先于/etc/login.defs文件设定。创建虚拟用户时一般不需要建立家目录,部署应用服务时则需要创建虚拟用户
  • -n 默认情况下用户的用户组与用户的名称是相同的。如果命令添加了-n参数,就不会生成与用户同名的用户组了
  • -r 此参数是用来建立系统用户的。系统用户的UID会比定义在系统档上的/etc/login.defs的UID_MIN要小。注意此用法下useradd所建立的用户不会创建用户家目录,也会忽略/etc/login.defs中定义的值。
  • -s shell 用户登入后使用的shell名称。默认值为空,这样系统会从/etc/default/useradd中取值
  • -u uid 用户的ID值,这个值必须是唯一的,除非-o选项,数字不可为负值。

二、使用范例

2.1 创建用户

创建一个用户,不添加任何参数创建用户

# 创建用户
useradd zhangsan

# 查看家目录 /home/zhangsan
ls -ld /home/zhangsan

# 查看用户目录 /etc/passwd
grep -w zhangsan /etc/passwd

# 分别查看/etc/shadow, /etc/group, /etc/gshadow
grep -w zhangsan /etc/shadow
grep -w zhangsan /etc/group
grep -w zhangsan /etc/gshadow

2.2 创建用户-指定UID和用户组

指定UID和用户组

# 先添加一个用户组sa并指定gid为801
groupadd -g 801 sa

# 创建用户指定uid为901 用户组为sa
useradd -u 901 -g sa lisi

# 验证一下
id lisi

2.3 创建虚拟用户-不建立家目录且禁止登录

在生产场景中部署Nginx、MySQL等服务时经常用到

useradd -M -s /sbin/nologin nginxuser

三、扩展知识

3.1 UID的范围

我们创建的普通账号是1000号以后,使用者自己创建和系统账号(通过-r参数)则一般是小于1000的。由于系统账号是用来进行运行系统所需服务的权限设置,所以系统账号默认都不会主动创建主文件夹的。

四、命令总结

  • 2022/12/19 回到家里,空调坏了,而外面阳了一片没人来修,不会冻阳了吧