Linux(Centos 7.6)命令詳解:useradd

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…