Linux useradd
命令詳細教程
useradd
是 Linux 系統中用于創建新用戶賬戶的基礎命令,它通過配置文件(如/etc/passwd
、/etc/shadow
)和默認設置自動完成用戶創建流程。本文將詳細介紹其用法、參數及相關配置。- 資料已經分類整理好:
https://pan.quark.cn/s/26d73f7dd8a7
一、基本語法
useradd [選項] 用戶名
- 核心功能:
- 在系統中創建新用戶賬戶。
- 自動生成用戶主目錄(默認
/home/用戶名
)。 - 分配用戶 ID(UID)和組 ID(GID)。
- 配置用戶基本信息(如 shell、過期時間等)。
二、常用選項
選項 | 功能描述 |
---|---|
-d 目錄 | 指定用戶的主目錄(如 -d /data/user1 ) |
-m | 自動創建主目錄(若不存在) |
-M | 不創建主目錄(默認不創建,除非 -m 已指定) |
-g 組名 | 指定用戶的初始主組(如 -g developers ) |
-G 組名1,組名2 | 指定用戶的附加組(如 -G sudo,adm ) |
-s shell | 指定用戶的登錄 shell(如 -s /bin/bash ) |
-u UID | 指定用戶的 UID(需手動確保唯一性) |
-e 日期 | 設置賬戶過期日期(格式:YYYY-MM-DD) |
-f 天數 | 設置密碼過期后賬戶的寬限期(如 -f 7 ) |
-c 注釋 | 添加用戶注釋(如 -c "系統管理員" ) |
-N | 不創建與用戶名同名的組(默認會創建) |
三、實際操作示例
1. 創建普通用戶(默認配置)
useradd testuser # 創建用戶 testuser,使用默認配置
- 默認行為:
- 主目錄:
/home/testuser
(需配合-m
自動創建)。 - 主組:
testuser
(同名組)。 - shell:
/bin/sh
(或系統默認 shell)。 - UID:自動分配(通常從 1000 開始遞增)。
- 主目錄:
2. 創建用戶并指定主目錄
useradd -m -d /data/admin admin # 創建用戶 admin,主目錄為 /data/admin
3. 將用戶添加到多個組
# 創建用戶 dev1,主組為 developers,附加組為 sudo 和 docker
useradd -m -g developers -G sudo,docker dev1
4. 創建系統用戶(無交互式 shell)
useradd -r -s /sbin/nologin nginx # 創建系統用戶 nginx,用于運行服務
-r
:創建系統用戶(UID 通常小于 1000)。-s /sbin/nologin
:禁止用戶登錄交互式 shell。
5. 設置用戶賬戶過期時間
useradd -e 2025-12-31 tempuser # 創建臨時用戶,賬戶2025年底過期
四、配置文件與默認值
useradd
的默認行為由以下配置文件控制:
-
/etc/default/useradd
:全局默認設置GROUP=100 # 默認組 ID HOME=/home # 主目錄前綴 INACTIVE=-1 # 密碼過期后賬戶不鎖定 EXPIRE= # 賬戶默認不過期 SHELL=/bin/bash # 默認 shell SKEL=/etc/skel # 主目錄模板目錄 CREATE_MAIL_SPOOL=yes # 是否創建郵件假脫機文件
-
/etc/skel/
:主目錄模板- 新用戶主目錄會復制此目錄下的所有文件(如
.bashrc
、.profile
)。
- 新用戶主目錄會復制此目錄下的所有文件(如
-
/etc/login.defs
:系統級用戶賬戶配置- 定義 UID/GID 范圍、密碼策略等。
五、驗證用戶創建結果
創建用戶后,可通過以下命令驗證:
-
查看用戶信息:
id username # 顯示用戶 UID、GID 和所屬組 cat /etc/passwd | grep username # 查看用戶賬戶信息
-
檢查主目錄:
ls -ld /home/username # 查看主目錄權限和所有者
-
設置密碼:
passwd username # 為新用戶設置密碼
六、注意事項
-
權限要求:
必須使用sudo
或 root 權限執行useradd
。 -
UID 唯一性:
使用-u
手動指定 UID 時,需確保該 UID 未被其他用戶使用(可通過/etc/passwd
檢查)。 -
主目錄與模板:
若不使用-m
選項,需手動創建主目錄并配置權限。 -
系統用戶與服務賬戶:
運行系統服務(如 Web 服務器、數據庫)時,建議創建專用系統用戶(如nginx
、mysql
),并限制其登錄權限。
七、與其他命令對比
命令 | 功能 | 適用場景 |
---|---|---|
useradd | 創建用戶賬戶(非交互式) | 批量創建用戶、腳本自動化 |
adduser | 創建用戶賬戶(交互式) | 手動創建用戶,引導輸入信息 |
usermod | 修改用戶賬戶屬性 | 修改現有用戶的組、shell 等 |
userdel | 刪除用戶賬戶 | 移除不再需要的用戶 |
八、總結
useradd
是 Linux 系統中創建用戶的基礎工具,核心用法可總結為:
- 基本創建:
useradd -m username
- 指定主組:
useradd -g groupname username
- 添加附加組:
useradd -G sudo,docker username
- 系統用戶:
useradd -r -s /sbin/nologin servicename
合理配置用戶賬戶是系統安全的重要環節,建議結合 usermod
和 userdel
命令管理用戶生命周期,并定期清理不再使用的賬戶。