1.命令作用

创建新用户或更新默认的新用户信息(create a new user or update default new user information)

2.命令语法

Usage: useradd [options] LOGIN
useradd -D
useradd -D [options]

3.参数详解

OPTION:

  • -b, --base-dir BASE_DIR,新帐户的主目录的基本目录;目录必须存在
  • -c, --comment COMMENT,新帐户的注释信息,会显示在/etc/passwd文件中
  • -d, --home-dir HOME_DIR,新帐户的主/家目录;必须保证用户上一层目录存在,如/opt/home/user3为user3的家目录,必须保证/opt/home存在才成功
  • -D, --defaults,打印或更改默认useradd配置
  • -e, --expiredate EXPIRE_DATE,新帐户的截止日期
  • -f, --inactive INACTIVE,新帐户密码过期后可登录宽限的时间
  • -g, --gid GROUP,新建帐户的用户组名或ID,设置一个主用户组,仅能设置一个,用户组ID可在/etc/group中查看
  • -G, --groups GROUPS,新帐户的补充组列表,设置附加用户组,可设置多个,用逗号分隔
  • -h, --help,显示此帮助信息并退出
  • -k, --skel SKEL_DIR,使用这个备选骨架(skeleton)目录;默认的目录是/etc/skel/,主要包括.bashrc、.bash_profile、.mozilla等目录或文件
  • -K, --key KEY=VALUE,覆盖/etc/login.defs默认值
  • -l, --no-log-init,不将用户添加到 lastlog 和 faillog 数据库中;文件位于/var/log/目录下
  • -m, --create-home,创建用户的主目录(默认参数)
  • -M, --no-create-home,不创建用户的主目录
  • -N, --no-user-group,不创建与用户同名的组
  • -o, --non-unique,允许创建具有重复(非唯一)UID的用户
  • -p, --password PASSWORD,创建用户时指定加密后的密码字符串,注意是加密后的字符串
  • -r, --system,创建系统帐户,创建的系统用户UID范围是1-999,默认没有家目录,可添加-m参数指定家目录
  • -R, --root CHROOT_DIR,指定chroot目录执行命令(参考chroot命令用法)
  • -s, --shell SHELL,新帐户的登录shell,一般是'-s /bin/bash',也可以指定'/bin/zsh',默认值可在useradd -D中查看
  • -u, --uid UID,新帐户的user ID
  • -U, --user-group,创建与用户同名的组,与-N相反,默认参数
  • -Z, --selinux-user SEUSER,为SELinux用户映射使用特定的SEUSER

4.常用用例

4.1.查看/修改基目录,指定基目录创建用户

[root@node1 ~]# useradd -D  # 创建用户的基本信息(也可在/etc/default/useradd文件查看),其基目录默认是/home目录,可以自定义创建用户的基目录;
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes
[root@node1 ~]# 
[root@node1 ~]# useradd -D -b /opt        # 可以修改其基目录
[root@node1 ~]# useradd -D -s /bin/zsh
[root@node1 ~]# useradd -D
GROUP=100
HOME=/opt
INACTIVE=-1
EXPIRE=
SHELL=/bin/zsh
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes
[root@node1 ~]# useradd -D -b /home
[root@node1 ~]# useradd -D -s /bin/bash
[root@node1 ~]# 
[root@node1 ~]# useradd -b /opt user1   # 可以使用-b指定创建用户的基目录;-b指定/opt时注意不要写成/opt/(这样执行后pwd查看的家目录显示/opt//user1)
Creating mailbox file: File exists
[root@node1 ~]# su - user1              # su - user1 用于Linux用户之间切换
[user1@node1 ~]$ pwd                    # 打印当前所处的目录
/opt/user1
[user1@node1 ~]$ 

4.2.创建用户时添加注释

[root@node1 ~]# useradd -c 'this is user2 comment' user2
[root@node1 ~]#
[root@node1 ~]# cat /etc/passwd | grep user2
user2:x:1004:1004:this is user2 comment:/home/user2:/bin/bash
[root@node1 ~]#
[root@node1 ~]# getent passwd user2
user2:x:1004:1004:this is user2 comment:/home/user2:/bin/bash
[root@node1 ~]# 
[root@node1 ~]# finger user4     # finger命令需要自己安装,系统默认没有该命令
Login: user2          			Name: this is user2 comment
Directory: /home/user4              	Shell: /bin/bash
Never logged in.
No mail.
No Plan.
[root@node2 ~]# 

4.3创建用户时自定义家目录

[root@node1 ~]# useradd -d /opt/user1 user3     # user1上一层目录存在,执行成功
[root@node1 ~]# su - user3                      # su - user1是切换用户的命名
[user3@node1 ~]$ pwd                            # 切换后的目录就是-d指定的目录
/opt/user3
[user3@node1 ~]$ exit                           # 退出user3用户,回到之前的root用户 
logout
[root@node1 ~]# useradd -d /opt/user2 -m user4  # -m是要创建家目录,指定的目录满足条件,可正常执行
[root@node1 ~]# su - user4
[user4@node1 ~]$ pwd
/opt/user4
[user4@node1 ~]$ exit
logout
[root@node1 ~]# useradd -d /opt/home/user5 user5      # user1上一层目录不存在,用户会创建成功,但是家目录创建失败
useradd: cannot create directory /opt/home/user5
[root@node1 ~]# 
[root@node1 ~]# userdel user5                         # 上面仅是目录创建失败,但用户是创建成功的,需要删除用户
[root@node1 ~]# useradd -d /opt/home/user5 -m user5   # -m是要创建家目录,指定的目录user3上一层目录不存在,不满足条件,用户会创建成功,但是家目录创建失败
useradd: cannot create directory /opt/home/user5
[root@node1 ~]# 
[root@node1 ~]# userdel user5
[root@node1 ~]# useradd -d /opt/home/user5 -M user5   # -M是不要创建家目录,即使user3上一层目录不存在,也会成功,但是su - user3切换用户后,所处的目录是/root,注意与上面的区别
[root@node5 ~]# su - user5
su: warning: cannot change directory to /opt/home/user3: No such file or directory
-bash-4.2$ pwd
/root
-bash-4.2$ 

4.4.创建用户时指定过期时间

[root@node1 ~]# useradd -e "2025-12-31" user6
[root@node1 ~]# chage -l user6
Last password change					: Jun 09, 2025            # 最后一次密码口令修改时间
Password expires					: never                       # 密码口令过期
Password inactive					: never                       # 密码活跃,没设置为never不活跃
Account expires						: Dec 31, 2025                # 过期时间
Minimum number of days between password change		: 0           # 密码更改之间的最小天数
Maximum number of days between password change		: 99999       # 密码更改之间的最大天数
Number of days of warning before password expires	: 7           # 密码过期前的警告天数
[root@node1 ~]# 

 4.5.指定用户组创建用户

[root@node1 ~]# groupadd usergroup           # 需要先创建一个用户组
[root@node1 ~]# useradd -g usergroup user7   # 也可以指定GID,形如useradd -g 1003 user7;GID可以在/etc/group中查看;如果不指定-g用户组,会默认创建一个与用户名相同的用户组
[root@node1 ~]# su - user7
[user7@node1 ~]$ ll -a
total 12
drwx------. 5 user7 usergroup 107 Jun  9 14:24 .
drwxr-xr-x. 6 root  root       57 Jun  9 14:24 ..
-rw-r--r--. 1 user7 usergroup  18 Oct 31  2018 .bash_logout
-rw-r--r--. 1 user7 usergroup 193 Oct 31  2018 .bash_profile
-rw-r--r--. 1 user7 usergroup 231 Oct 31  2018 .bashrc
drwxr-xr-x. 3 user7 usergroup  18 Jun  9 14:24 .cache
drwxr-xr-x. 3 user7 usergroup  18 Jun  9 14:24 .config
drwxr-xr-x. 4 user7 usergroup  39 Dec 13 00:58 .mozilla
[user7@node1 ~]$ exit
logout
[root@node1 ~]# groupadd usergroup1
[root@node1 ~]# groupadd usergroup2
[root@node1 ~]# useradd -g usergroup -G usergroup1,usergroup2 user8   # 还可以指定附加用户组
[root@node1 ~]# 

4.6.创建用户时不创建同名用户组 

# 默认情况下未指定-g参数时,创建用户会自动创建一个与用户名称相同的用户组
# 指定-N同时未指定-g参数时,创建的用户会归于100用户组下
# 如指定-N参数时建议也指定-g参数
# 指定-g参数,会按照-g参数指定的名称创建组,就算没有指定-N也不会创建与用户名相同的用户组
[root@node1 ~]# useradd -N user9
[root@node1 ~]# getent passwd user9
user9:x:1005:100::/home/user9:/bin/bash
[root@node1 ~]# 

4.7.创建用户时指定UID,且可设置重复的UID

[root@node1 ~]# useradd -u 1000 user10        # 默认情况下不能指定已经存在的UID号
useradd: UID 1000 is not unique
[root@node1 ~]# useradd -o -u 1000 user10     # 指定-o参数可存在重复的UID
[root@node1 ~]# getent passwd user10
user10:x:1000:1006::/home/user10:/bin/bash
[root@node1 ~]# 

4.8.创建密码过期设置

[root@node1 ~]# useradd -f 11 user11  # 设置密码过期后多少天后不能登录
[root@node1 ~]# passwd -S user11
user11 LK 2025-06-09 0 99999 7 11 (Password locked.)
[root@node1 ~]# # 解释说明:
user11 LK 2025-06-09 0 99999 7 11 (Password locked.)
用户名 Locked(被锁定,没有设置密码) 最后修改日期 修改密码的最小间隔 密码最大有效期 警告期(提前多少天提示密码过期) 宽限期(密码过期后可宽限登录的天数)  状态注释(密码被锁定)user13 PS 1970-01-01 0 99999 7 10 (Alternate authentication scheme in use.)
不同处解释: Password Set(密码已设置且有效) 用户使用‌替代认证方案‌

4.9.删除用户后再次创建说明

[root@node1 ~]# userdel user
[root@node1 ~]# useradd user
useradd: warning: the home directory already exists.  # 删除用户是其家目录不会删除,再次创建会提示已经存在
Not copying any file from skel directory into it.     # 不从skel目录复制任何内容;正常情况下会创建家目录,然后会复制一些内容到家目录,如.bashrc文件复制到家目录
Creating mailbox file: File exists                    # mailbox文件存在/var/spool/mail/,每个用户对应一个文件,如果文件存在就会提示该信息
[root@node1 ~]# 

4.10.-Z参数

[root@node1 ~]# id -Z      # 查看selinux 用户列表
unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
[root@node1 ~]# ps -Z $$   # 查看selinux 用户列表
LABEL                              PID TTY      STAT   TIME COMMAND
unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 15275 pts/5 Ss   0:00 -bash
[root@node1 ~]# 
[root@node1 ~]# semanage login -l   # 查看selinux用户与系统用户的关联列表
[root@node1 ~]# useradd -Z unconfined_u user10    # selinux用户与系统用户关联
Creating mailbox file: File exists
[root@node1 ~]# semanage login -l                 # 关联查看Login Name           SELinux User         MLS/MCS Range        Service__default__          unconfined_u         s0-s0:c0.c1023       *
root                 unconfined_u         s0-s0:c0.c1023       *
system_u             system_u             s0-s0:c0.c1023       *
user10               unconfined_u         s0-s0:c0.c1023       *
[root@node1 ~]# 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/bicheng/88474.shtml
繁体地址,请注明出处:http://hk.pswp.cn/bicheng/88474.shtml
英文地址,请注明出处:http://en.pswp.cn/bicheng/88474.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

异步I/O库:libuv、libev、libevent与libeio

异步I/O编程是现代高性能网络服务的核心,而libuv、libev、libevent、libeio这四个库则是这一领域的常青树。它们虽同属事件驱动模型,却在设计哲学、适用场景和实现细节上各具特色。本文将深入剖析其异同。 一、共同点:异步事件驱动 事件循环&…

go go go 出发咯 - go web开发入门系列(四) 数据库ORM框架集成与解读

go go go 出发咯 - go web开发入门系列(四) 数据库ORM框架集成与解读 往期回顾 go go go 出发咯 - go web开发入门系列(一) helloworldgo go go 出发咯 - go web开发入门系列(二) Gin 框架实战指南go go g…

CD47.【C++ Dev】list的模拟实现(2)

目录 1.const修饰的迭代器的实现 方法1:分成两个类 完整代码 方法2:STL库的写法 2.STL库的第三个模版参数T*的解释 ->->的简写语法 3.其他成员函数 insert erase push_back、push_front、pop_front、pop_back size clear 析构函数~list() 拷贝构造函数(★…

UI前端与数字孪生融合新领域拓展:智慧教育的虚拟实验室建设

hello宝子们...我们是艾斯视觉擅长ui设计、前端开发、数字孪生、大数据、三维建模、三维动画10年经验!希望我的分享能帮助到您!如需帮助可以评论关注私信我们一起探讨!致敬感谢感恩!一、引言:虚拟实验室 —— 打破教育边界的技术革命传统实验教学正面临 “设备昂贵、…

7. TCP 和 UDP 的区别

总结 TCP 面向连接,需要三次握手建立连接,UDP 无连接,不需要握手,直接发送数据。UDP 有较好的实时性,效率比 TCP 高。TCP 面向字节流,实际上是 TCP 把数据看成一连串无结构的字节流,UDP 是面向报…

iOS Widget 开发-7:TimelineProvider 机制全解析:构建未来时间线

在 WidgetKit 中,TimelineProvider 是小组件生命周期的核心机制之一。它控制着 数据获取时机、展示内容 与 刷新策略,是实现时间驱动内容更新的基础。 本文将介绍 TimelineProvider 的工作原理、设计模式、常见场景与高级用法,帮助大家构建智…

基于PHP/MySQL的企业培训考试系统源码,高并发、稳定运行,源码开源可二开

温馨提示:文末有资源获取方式这是一款专为企业设计的开源培训考试系统,采用PHPMySQL技术栈开发,具有高并发处理能力和稳定运行特性。系统源码完全开放,支持二次开发,可满足各类企业的培训考核需求。核心功能特点1. 高性…

时序数据库InfluxDB

一.定义 时序数据库 是一种专门用于高效存储和查询带有时间戳的数据的数据库。如果你的数据是随着时间变化而不断产生,并且你想知道过去某一时刻发生了什么,那么你应该用时序数据库。 这类数据通常具有以下特征: 数据点按时间顺序不断写入…

2025.07.09华为机考真题解析-第三题300分

📌 点击直达笔试专栏 👉《大厂笔试突围》 💻 春秋招笔试突围在线OJ 👉 笔试突围OJ 03. 博物馆安保摄像头配置 问题描述 A先生负责为一家新开的博物馆设计安保监控系统。博物馆有多个展厅需要监控,每个展厅都有不同的面积。现在有多种型号的监控摄像头可供选择,每…

存储过程封装:复杂业务逻辑的性能优化

存储过程作为数据库层面的重要功能,能够显著提升复杂业务逻辑的执行效率。以下是存储过程在性能优化中的核心优势、实现策略和实际应用场景。一、存储过程的核心优势‌网络传输压缩‌存储过程将多条SQL语句封装为单次调用,相比应用层多次请求可减少60%-8…

逗号分隔字段统计秘籍:一条SQL实现逗号分割字段的数量分析

一、问题场景与痛点 在数据库设计中,经常会遇到统计某一些数据的最大数量最小数量等,特别是**逗号分隔字段 **的统计会显得非常困难 下面以我生产上遇到的一个问题讲解: 有个需求是在o_work_order表中统计sn字段中哪个工单号的数量最多&#…

数据库性能优化指南:解决ORDER BY导致的查询性能问题( SQL Server )

数据库性能优化指南:解决ORDER BY导致的查询性能问题 问题描述 在300万行的INTERFACE_INTERACTION_LOG表中执行以下查询: SELECT TOP 1 * FROM INTERFACE_INTERACTION_LOG WHERE 1 1AND (SENDSTATUS 0 OR SENDSTATUS -1)AND SENDMETHOD POSTAND ERRO…

Centos 7下使用C++使用Rdkafka库实现生产者消费者

1. 了解 Kafka Apache Kafka 是一个分布式流处理平台,核心功能包括: 发布/订阅消息系统:解耦生产者和消费者 分布式存储:持久化、容错的消息存储 流处理:实时处理数据流 核心概念: 概念说明BrokerKaf…

UE5多人MOBA+GAS 13、添加死亡、复活逻辑以及布娃娃含物理资产的修改调整

文章目录使用GE为角色添加定时的Tag控制死亡时间1、添加死亡Tag2、创建死亡GE,并完成相关配置3、在AbilitySystemComponent中监听属性的变化,调用GE来添加Tag到角色上4、在角色中监听ASC传入的Tag以及Tag的层数,来响应不同的函数添加死亡、复…

Jiasou TideFlow重塑AI SEO全链路自动化新标杆

引言 在Google日均处理85亿次搜索请求的数字化浪潮中,传统SEO工作流面临三大致命瓶颈:人工拓词效率低下、跨部门协作成本高企、数据监控链路断裂。因此诸如Jiasou AI SEO这样专门为AI SEO而生的Agent就应运而生了。 背景 Jiasou AIGC不仅仅可以批量生成…

CentOs 7 MySql8.0.23之前的版本主从复制

准备俩台虚拟机并启动俩台虚拟机都开启mysql后查看二进制日志是否开启先登录mysqlmysql -u root -r输入sql命令show variables like %log_bin%;如果log_bin 的value为OFF则是没有开启,跟着下面步骤开启二进制日志退出mysqlexitvim /etc/my.cnf在最底下添加log_binmy…

Leetcode 3607. Power Grid Maintenance

Leetcode 3607. Power Grid Maintenance 1. 解题思路2. 代码实现 题目链接:3607. Power Grid Maintenance 1. 解题思路 这一题思路上首先是一个DSU的思路,将所有的连通网络计算出来,并对每一个网络的节点进行归类。然后我们需要对每一个网…

开源 python 应用 开发(三)python语法介绍

最近有个项目需要做视觉自动化处理的工具,最后选用的软件为python,刚好这个机会进行系统学习。短时间学习,需要快速开发,所以记录要点步骤,防止忘记。 链接: 开源 python 应用 开发(一&#xf…

1-Kafka介绍及常见应用场景

Kafka 介绍 Apache Kafka 是一个开源的 分布式流处理平台,最初由 LinkedIn 开发,后捐赠给 Apache 软件基金会。它被设计用于高吞吐量、低延迟、可水平扩展地处理实时数据流。官网地址是:https://kafka.apache.org/ 以下是 Kafka 的核心介绍…

CH9121T电路及配置详解

目录1. CH9121T简介2. 原理图及接口2.1 参考电路2.2 CH9121T评估板2.3 差分端口2.4 网口灯显示2.5 晶振2.6 其他接口3. 使用手册及说明3.1 配置介绍3.2 默认参数3.3 串口波特率3.4 配置指令3.5 应用示例1. CH9121T简介 CH9121 是一款网络串口透传芯片,自带 10/100M…