Linux 用戶與組管理
一、用戶和組的基本概念
1. 用戶賬號類型
- 超級用戶(root):默認擁有系統最高權限(UID=0),僅建議用于系統管理與維護,日常操作應使用普通用戶。
- 普通用戶:由管理員創建,權限受限,通常僅在自身家目錄擁有完整權限。
- 程序用戶(服務用戶):為系統服務(如
nginx
、mysql
)創建的專用賬號,一般不允許登錄系統。
2. 組賬號類型
- 基本組:用戶創建時默認所屬的組,每個用戶至少屬于一個基本組。
- 附加組:用戶額外加入的組,用于獲取該組的權限集合。
3. UID 與 GID
-
UID(用戶 ID)
:系統識別用戶的唯一標識,范圍:
- 0:超級用戶(root)
- 1~999:系統預留(程序用戶)
- 1000~60000:普通用戶
-
GID(組 ID):系統識別組的唯一標識,范圍與 UID 對應,root 組 GID=0。
二、用戶和組的核心配置文件
1. /etc/passwd
(用戶基本信息)
- 作用:存儲用戶名稱、UID、GID、家目錄、登錄 Shell 等信息,所有用戶可讀取,僅 root 可修改。
- 格式:7 個字段用冒號分隔
用戶名:密碼占位符(x):UID:GID:描述信息:家目錄:登錄Shell
例:zhangsan:x:1001:1001:張三:/home/zhangsan:/bin/bash
2. /etc/shadow
(用戶密碼信息)
-
作用:存儲用戶密碼(加密形式)及密碼策略,僅 root 可讀取。
-
格式
:9 個字段用冒號分隔
用戶名:加密密碼:最近改密天數:密碼不可改天數:密碼有效期:警告天數:寬限天數:賬號失效日期:保留
- 加密密碼:
*
或!!
表示賬號鎖定,空值表示無需密碼登錄。 - 日期計算:以 1970 年 1 月 1 日為起始點(如
1900
表示 1970 年 1 月 1 日后第 1900 天)。
- 加密密碼:
3. /etc/group
(組基本信息)
- 作用:存儲組名稱、GID、組成員等信息。
- 格式:4 個字段用冒號分隔
組名:組密碼占位符:GID:組成員列表
例:dev:x:1002:zhangsan,lisi
4. /etc/gshadow
(組密碼信息)
-
作用:存儲組密碼及管理員信息,僅 root 可讀取。
-
格式
:4 個字段用冒號分隔
組名:組加密密碼:組管理員:組成員
- 組密碼為空或
!
表示無密碼,組管理員可管理組成員。
- 組密碼為空或
三、用戶和組管理命令
1. 用戶管理
(1)創建用戶(useradd
)
# 創建普通用戶,指定UID、家目錄、基本組、附加組、登錄Shell
useradd -u 1005 -d /home/wangwu -g dev -G admin -s /bin/bash wangwu
- 選項說明:
-u
:指定 UID-d
:指定家目錄-g
:指定基本組(必須已存在)-G
:指定附加組(多個組用逗號分隔)-s
:指定登錄 Shell(/sbin/nologin
表示禁止登錄)
(2)設置密碼(passwd
)
# 為用戶設置密碼
passwd wangwu# 鎖定/解鎖用戶
passwd -l wangwu # 鎖定
passwd -u wangwu # 解鎖# 清空用戶密碼(允許無密碼登錄)
passwd -d wangwu
(3)修改用戶屬性(usermod
)
# 修改用戶家目錄,移動原內容到新目錄
usermod -d /home/new_wangwu -m wangwu# 更改用戶基本組為admin,附加組為dev、test
usermod -g admin -G dev,test wangwu# 鎖定/解鎖用戶
usermod -L wangwu # 鎖定
usermod -U wangwu # 解鎖
(4)刪除用戶(userdel
)
# 刪除用戶(保留家目錄)
userdel wangwu# 徹底刪除用戶(含家目錄和郵件文件)
userdel -r wangwu
2. 組管理
(1)創建組(groupadd
)
# 創建組,指定GID
groupadd -g 1006 testgroup
(2)刪除組(groupdel
)
# 刪除組(組必須無成員,否則需先移除成員)
groupdel testgroup
(3)管理組成員(gpasswd
)
# 添加用戶到組(附加組)
gpasswd -a zhangsan testgroup# 從組中移除用戶
gpasswd -d zhangsan testgroup# 設置組管理員(允許管理員管理組成員)
gpasswd -A lisi testgroup
(4)查看用戶所屬組(groups
)
# 查看指定用戶所屬組
groups zhangsan # 輸出:zhangsan : dev admin
3. 密碼策略管理(chage
)
# 查看用戶密碼策略
chage -l wangwu# 設置密碼有效期為90天,提前7天警告,過期后3天鎖定
chage -M 90 -W 7 -I 3 wangwu# 設置賬號2024-12-31過期
chage -E 2024-12-31 wangwu
四、權限委派(sudo
)
允許普通用戶臨時以 root 權限執行指定命令,配置文件為/etc/sudoers
(需用visudo
編輯)。
配置示例:
visudo # 安全編輯sudoers文件# 添加以下內容:允許admin組用戶執行useradd、usermod、userdel命令
Cmnd_Alias USERMGMT = /usr/sbin/useradd, /usr/sbin/usermod, /usr/sbin/userdel
%admin ALL=(ALL) USERMGMT
使用方法:
# 普通用戶執行授權命令
sudo useradd tom # 輸入自身密碼驗證后執行
總結
用戶與組管理通過/etc/passwd
、/etc/shadow
等文件記錄核心信息,借助useradd
、groupadd
等命令進行創建、修改和刪除操作。合理配置用戶權限與密碼策略,結合sudo
進行權限委派,可保障系統安全性與可管理性。