萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 作業系統 >  >> Linux 教學

Ubuntu useradd 與 adduser 指令差異完整比較:家目錄建立、互動式設定、預設值

Ubuntu 提供兩個建立使用者帳號的指令:底層的 useradd 與友善的 Perl 腳本封裝 adduser。本文透過實測對比兩者在家目錄建立、密碼設定、Shell 指定、骨架檔案複製等方面的差異,並說明如何讓 useradd 達到 adduser 同等效果。

useradd vs adduser 對比示意圖

核心差異一覽表

特性useraddadduser
家目錄建立預設不建立 (需 -m)自動建立 /home/username
密碼設定需另行 passwd互動式提示輸入密碼
Shell 指定預設 /bin/sh (需 -s)預設 /bin/bash (可配置)
骨架檔案 (/etc/skel)不複製 (需 -k)自動複製
GECOS 欄位 (全名、電話等)需 -c 手動指定互動式逐項輸入
群組處理需 -g/-G 手動指定自動建立同名群組並加入
適用場景腳本自動化、批次建立人工互動式管理

實測示範

useradd 不加參數

sudo useradd test1
ls -ld /home/test1
# ls: cannot access /home/test1: No such file or directory
id test1
# uid=1001(test1) gid=1001(test1) groups=1001(test1)
# 家目錄未建,Shell 為 /bin/sh

useradd 加 -m 參數

sudo useradd -m test2
ls -ld /home/test2
# drwxr-xr-x 2 test2 test2 4096 ... /home/test2
# 家目錄已建,但 Shell 仍為 /bin/sh,無密碼

adduser 互動式

sudo adduser test3
# 提示:密碼、全名、房間號碼、電話...
# 完成後:
ls -ld /home/test3
# drwxr-xr-x 2 test3 test3 4096 ... /home/test3
grep test3 /etc/passwd
# test3:x:1003:1003:Test User,,,:/home/test3:/bin/bash
# Shell 為 bash,GECOS 已填入

讓 useradd 等效 adduser 的參數組合

sudo useradd -m -s /bin/bash -c "Full Name" -G sudo username
sudo passwd username  # 另行設定密碼

設定檔控制預設值

  • /etc/default/useradd:useradd 預設值 (SHELL, HOME, SKEL, GROUP 等)。
  • /etc/adduser.conf:adduser 行為配置 (DHOME, DSHELL, FIRST_UID 等)。

建議

  • 手動管理帳號 → 直接用 adduser,省時不易出錯。
  • 自動化腳本/Ansible/Dockerfile → 用 useradd -m -s /bin/bash 並明確指定所有參數。

理解兩者差異,能根據場合選擇最適合的建立帳號方式。

copyright © 萬盛學電腦網 all rights reserved