导航菜单

Linux命令大全-useradd命令

陆兴东 2026-04-07 14 浏览 Linux命令

一、简介

useradd命令用于创建系统中的用户账号。使用 useradd 指令所建立的账号,实际上是保存在 /etc/passwd 文本文件中。

二、语法

语法:useradd [选项] [用户名]

参数说明:

-c:<备注>加上备注文字。备注文字会保存在passwd的备注栏位中

-d:<登入目录>指定用户登入时的起始目录

-D:变更预设值

-e:<有效期限>指定帐号的有效期限

-f:<缓冲天数>指定在密码过期后多少天即关闭该帐号

-g:<群组>指定用户所属的群组

-G:<群组>指定用户所属的附加群组

-m:制定用户的登入目录

-M:不要自动建立用户的登入目录

-n:取消建立以用户名称为名的群组

-r:建立系统帐号

-s<shell>:指定用户登入后所使用的shell

-u<uid>:指定用户ID

-o:允许创建重复UID的用户

-p:设置用户的密码

-R:设置根目录

-k:设置用户的骨架目录

-U:创建与用户同名的组,并将其加入

-l:不将用户添加到最近登录和登录失败数据库文件

-Z:设置用户的SELinux映射角色

-h:显示帮助信息

三、实战

1、添加一个用户

[root@app01 ~]# useradd tom  

2、添加用户时添加一个指定的组

[root@app01 ~]# useradd -g root tom1

如果在创建用户时,不指定组,系统默认会创建一个同用户相同的组。

3、创建一个系统用户

[root@app01 ~]#  useradd -r tom2

useradd加“-r”不加“-r”的区别:

1.加-r选项‌:创建一个系统账户(System Account),UID分配在sys_uid_min至sys_uid_max范围内(通常为201-999),不会自动创建用户家目录,且默认无登录Shell权限(如/sbin/nologin),主要用于运行系统服务进程。‌

2.不加-r选项‌:创建一个普通用户账户(General User),UID分配在uid_min至uid_max范围内(通常为1000-60000),系统会自动创建家目录(如/home/用户名)和邮箱,并分配可登录的Shell环境(如/bin/bash)。‌

具体差异总结:

用户类型与UID范围‌:

1.系统账户(加-r):UID在201-999区间,用于非交互式服务管理。‌

2.普通用户(不加-r):UID在1000-60000区间,供日常交互使用。‌

家目录创建‌:

1.加-r时默认不生成家目录;需额外添加-m选项强制创建。‌

2.不加-r时自动创建家目录并初始化文件。‌

登录权限与Shell‌:

1.系统账户通常禁用登录(Shell设为/sbin/nologin),聚焦资源管理。‌

2.普通用户允许登录并分配默认Shell(如/bin/bash)。‌

使用场景‌:

1.加-r适用于守护进程或服务账户(如Apache或MySQL服务用户)。‌

2.不加-r适用于实际用户登录和交互操作。

这种设计确保了系统安全性与资源隔离,通过/etc/login.defs文件可自定义UID范围。‌

4、创建用户指定家目录

[root@app01 home]# useradd -d /home/tom tom

创建用户时,默认会创建在/home/用户名(实际创建的用户名称)下,在实际的工作中,有时候会把用户的家目录指定到别的目录中,此时创建用户时需要用参数“-d”来创建。

5、创建用户,并指定用户id

[root@app01 home]# useradd -u 1002 tom

创建用户时,如果不加用户id系统会默认分配一个1000以后的id号(系统用户除外,且体可查看本文件中:useradd加“-r”不加“-r”的区别),组新创建的用户使用,在实际工作中,有些用户需要指定一个分配好的用户id使用,此时创建用户时,需要用参数“-u”来指定用户id创建。

6、创建一个不可登录的用户

[root@app01 home]# useradd -s /sbin/nologin tom

7、创建一个用户,且不创建家目录

[root@app01 home]# useradd -M tom1

8、创建用户,为其分配一个扩展组(附属组)

[root@app01 home]# useradd -G root tom

9、创建用户,并指定过期时间

[root@app01 home]# useradd -e "2025/12/31" tom