Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> Linux 系統教學 >> Linux 教學

Linux 用戶與群組管理完整手冊:命令、參數與最佳實踐

編輯:Linux 教學

核心概念速覽

  • 用戶:系統存取主體,分為 root(UID 0)、系統用戶(UID 1-999,如 daemon、nginx)、普通用戶(UID ≥ 1000)。
  • 群組:用戶集合,便於權限集中管理。每個用戶有一個主群組(登入時生效),可屬於多個附屬群組。
  • 關鍵檔案:/etc/passwd(用戶資訊)、/etc/shadow(加密密碼)、/etc/group(群組資訊)、/etc/gshadow(群組密碼)。

一、用戶生命週期管理

1.1 新增用戶

# 推薦:互動式建立(自動建家目錄、複製 /etc/skel、提示設密碼)
adduser devuser
# 或非互動式(腳本適用)
useradd -m -s /bin/bash -c "Developer" devuser
echo "devuser:StrongPass123" | chpasswd

常用參數:

參數說明
-m建立家目錄
-d指定家目錄路徑
-s指定登入 Shell
-g指定主群組(GID 或名稱)
-G指定附屬群組(逗號分隔)
-u指定 UID
-r建立系統用戶(無家目錄、UID < 1000)

1.2 修改用戶屬性

# 修改登入 Shell
usermod -s /bin/zsh devuser
# 追加附屬群組(-a 必須配合 -G,否則會覆蓋)
usermod -aG docker,dev devuser
# 鎖定/解鎖帳號(禁止/允許密碼登入)
usermod -L devuser   # 在 /etc/shadow 密碼前加 !
usermod -U devuser
# 修改 UID(謹慎操作,需同步 chown 家目錄)
usermod -u 2000 devuser

1.3 刪除用戶

# 僅刪除帳號,保留家目錄
userdel devuser
# 連同家目錄與郵件佇列一併刪除
userdel -r devuser
# 強制刪除(即使用戶仍在線上)
userdel -f devuser

1.4 密碼與過期管理

# 設定密碼
passwd devuser
# 強制下次登入修改密碼
chage -d 0 devuser
# 設定密碼有效期 90 天、提前 7 天警告
chage -M 90 -W 7 devuser
# 查看密碼狀態
chage -l devuser

二、群組管理

2.1 基本操作

# 新增群組
groupadd devteam
# 指定 GID
groupadd -g 2000 devteam
# 刪除群組
groupdel devteam
# 修改群組名稱/GID
groupmod -n newname oldname
groupmod -g 3000 devteam

2.2 群組成員維護

# 將用戶加入群組(推薦 gpasswd,語意清晰)
gpasswd -a devuser devteam
# 從群組移除用戶
gpasswd -d devuser devteam
# 設定群組管理員(可用 gpasswd -A 管理成員)
gpasswd -A adminuser devteam

三、查詢與審計

# 查看用戶詳細資訊(UID、GID、群組列表)
id devuser
# 列出用戶所屬群組
groups devuser
# 查看線上用戶
who
w
# 查看登入歷史
last
lastb   # 失敗嘗試
# 檢查用戶/群組檔案完整性
pwck
grpck

四、進階實戰技巧

4.1 批量建立用戶

# users.txt 格式:username:password:uid:gid:comment:home:shell
newusers users.txt

4.2 臨時切換身分

# 以目標用戶身分執行單一命令
sudo -u devuser whoami
# 取得完整登入環境
sudo -iu devuser
# su 切換(需目標用戶密碼或 root 權限)
su - devuser

4.3 限制用戶僅能 SFTP(Chroot)

編輯 /etc/ssh/sshd_config:

Match Group sftponly
    ChrootDirectory %h
    ForceCommand internal-sftp
    X11Forwarding no
    AllowTcpForwarding no

將用戶加入 sftponly 群組,設定家目錄擁有者為 root、權限 755。

五、安全基線檢查清單

項目建議配置
Root 遠端登入PermitRootLogin no (SSH)
空密碼帳號awk -F: '($2==""){print $1}' /etc/shadow → 立即鎖定
密碼複雜度配置 /etc/security/pwquality.conf (minlen=12, minclass=3)
登入失敗鎖定配置 /etc/pam.d/system-auth + pam_faillock.so
定期審計每月檢視 /etc/passwd、/etc/group、lastlog

結語

用戶與群組管理是 Linux 安全的基石。熟練掌握 useradd/usermod/userdel、groupadd/gpasswd 等工具,結合 chage、pwck、sudo 等輔助機制,能構建清晰、可審計、最小權限的存取控制體系。

Copyright © Windows教程網 All Rights Reserved