Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學

Linux 使用者、群組與權限進階:核心配置檔深度解析與實戰管理

編輯:Linux 系統常見問題解答

前言:身份與存取控制的基石

Linux 多使用者、多任務架構的安全核心在於「誰能做什麼」。/etc/passwd、/etc/shadow、/etc/group、/etc/gshadow 四大檔案構成了帳號資訊的權威來源。本文將逐欄位拆解這四個檔案,揭示密碼策略、Shell 限制、群組巢狀等進階機制,並提供生產環境常用的管理指令與最佳實踐。

一、四大核心檔案架構總覽

檔案用途權限關鍵特性
/etc/passwd使用者基本資訊644 (root:root)全域可讀,UID/GID 映射
/etc/shadow加密密碼與策略000 (root:root)僅 root 可讀,含過期/鎖定資訊
/etc/group群組定義與成員644 (root:root)支援群組密碼(極少用)
/etc/gshadow群組密碼與管理員000 (root:root)群組管理員可代管成員

二、/etc/passwd:使用者身份證

user1:x:500:500::/home/user1:/bin/bash
欄位說明備註
1. 使用者名登入識別碼,1-32 字元建議小寫、無特殊符號
2. 密碼佔位x 表示密碼在 /etc/shadow若為空則無需密碼登入(極度危險)
3. UID使用者識別碼0=root,1-999 系統保留,1000+ 一般使用者
4. GID主要群組 ID對應 /etc/group 第 3 欄
5. GECOS/描述全名、辦公室、電話等逗號分隔,chfn 修改
6. 家目錄登入後預設工作目錄不存在時回退至 /
7. 登入 Shell啟動的解釋器/bin/bash、/bin/sh、/sbin/nologin

特殊 Shell:/sbin/nologin

  • 將使用者 Shell 設為 /sbin/nologin 可禁止互動式登入
  • 但仍可運行 sudo -u user cmd、su -s /bin/bash user、SFTP、Cron 任務
  • 適用於服務帳號(如 www-data、mysql、nginx)

三、/etc/shadow:密碼金庫與策略引擎

user1:$6$2WJEp9K7$h.NRfJsaEm8VMksBQHZm7.:14668:0:99999:7:::
欄位名稱說明
1使用者名同 passwd
2加密密碼$id$salt$hash,id: 1=MD5, 5=SHA-256, 6=SHA-512, yescrypt
3最後修改日自 1970-01-01 起的天數(date -d "1970-01-01 +14668 days")
4最小間隔天數,0=隨時可改
5最大壽命天數,99999=永不過期
6警告天數到期前幾天開始警告
7非活動期過期後寬限天數,鎖定帳號
8絕對過期日自 1970 起天數,帳號完全失效
9保留未來擴展

密碼鎖定標記

  • ! 或 !! 前綴:帳號被鎖定(passwd -l / usermod -L)
  • *:無有效密碼(系統帳號常見)
  • 解鎖:passwd -u user 或編輯移除前綴

四、/etc/group 與 /etc/gshadow:群組協作模型

# /etc/group
developers:x:1001:alice,bob,charlie

# /etc/gshadow
developers:!::alice,bob
欄位groupgshadow
1群組名群組名
2密碼佔位 (x/!)群組密碼雜湊(極少用)
3GID群組管理員清單(逗號分隔)
4成員清單群組成員清單(同 group 第 4 欄)

群組管理員 可執行 gpasswd -a user group 新增成員,無需 root 權限。

五、實戰管理指令速查表

任務指令範例影響檔案
新增使用者(含家目錄、Shell)useradd -m -s /bin/bash -G docker,developers alicepasswd, shadow, group, gshadow
設定密碼passwd alice / echo "Passw0rd" | passwd --stdin aliceshadow
修改 UID/GID(需停止該使用者所有進程)usermod -u 2000 -g 2000 alicepasswd, group
鎖定/解鎖帳號usermod -L alice / usermod -U aliceshadow
設定密碼過期策略chage -M 90 -W 7 -I 30 aliceshadow
新增群組groupadd -g 2001 devopsgroup, gshadow
管理群組成員gpasswd -a alice devops / gpasswd -d bob devopsgroup, gshadow
設定群組管理員gpasswd -A alice,charlie devopsgshadow
驗證使用者完整資訊id alice / getent passwd alice / chage -l alice-

六、進階主題:權限邊界與審計

6.1 ACL 存取控制清單

# 給特定使用者單獨權限
setfacl -m u:alice:rwx /project/secret
getfacl /project/secret

6.2 Sudo 權限最小化原則

# /etc/sudoers.d/alice
alice ALL=(ALL) NOPASSWD: /usr/bin/systemctl restart nginx, /usr/bin/docker ps

6.3 審計關鍵檔案變更

auditctl -w /etc/passwd -p wa -k identity_change
auditctl -w /etc/shadow -p wa -k identity_change
ausearch -k identity_change

七、常見錯誤與避坑指南

❌ 直接用 vim 編輯 /etc/passwd:易導致格式錯誤、UID 衝突、Shell 路徑不存在
✅ 使用 useradd/usermod/vipw:vipw 會鎖定檔案並語法檢查

❌ 刪除使用者未清理家目錄與排程:userdel alice 預設保留家目錄
✅ 完整清理:userdel -r alice 並檢查 crontab -u alice -l、atq -u alice

❌ 系統帳號設定弱密碼或解鎖:mysql、nginx 等服務帳號應保持 /sbin/nologin + 鎖定狀態
✅ 定期掃描:awk -F: '($2 != "x" && $2 != "*" && $2 != "!" && $2 != "!!") {print $1}' /etc/shadow

使用者與群組管理看似基礎,實則是安全合規的第一道防線。掌握四大檔案結構、善用標準管理工具、落實最小權限與審計追蹤,才能在審計師敲門時從容應對,更能在日常運維中避免「誤刪 root」「密碼永不過期」等低級災難。

Copyright © Windows教程網 All Rights Reserved