在Linux系統中,用戶管理是系統維護的基礎技能。就像現實中每個人有不同的身份和權限一樣,Linux系統通過用戶和組來區分不同操作主體的權限,確保系統安全和資源隔離。本文將從基礎概念到實際操作,帶你一步步掌握Linux用戶管理的核心知識。

一、用戶與組的基本概念

在Linux系統中,每個用戶都有一個唯一的身份標識(UID),每個用戶默認屬於一個主要組(GID),還可以附加到多個其他組。組的作用是將多個用戶歸類,方便統一管理權限(比如所有開發人員屬於“dev”組,只需設置一次組權限)。

  • 用戶:登錄系統的身份,如root(管理員)、普通用戶alicebob等。
  • :用戶的集合,同一組用戶共享相同的組權限。
  • 權限三要素:文件/目錄的權限分爲三類——所有者(用戶自己)、所屬組(組內用戶)、其他用戶(非組內且非所有者的用戶)。

二、創建用戶

創建用戶需要管理員權限(通過rootsudo),使用useradd命令(部分系統用adduser,效果類似但參數略有不同)。

1. 基本創建命令

sudo useradd -m 用戶名
  • -m:自動創建用戶的家目錄(若不指定,部分系統可能默認不創建)。
  • 示例:創建用戶alice,並自動生成家目錄:
  sudo useradd -m alice

2. 設置密碼

創建用戶後需設置密碼,否則無法登錄:

sudo passwd alice

輸入密碼後按回車,密碼會被加密存儲(不會明文顯示)。

3. 查看用戶信息

id命令確認用戶是否創建成功:

id alice

輸出示例:uid=1001(alice) gid=1001(alice) groups=1001(alice),表示用戶alice的UID是1001,GID是1001(主組)。

4. 切換用戶登錄

su -命令切換到剛創建的用戶:

su - alice

此時提示符變爲alice@hostname:~$,表示已以alice身份登錄。

三、刪除用戶

刪除用戶使用userdel命令,需謹慎操作(避免誤刪數據)。

1. 基本刪除命令

sudo userdel 用戶名
  • 不加參數:僅刪除用戶信息,家目錄保留(需手動刪除)。
  • -r 參數:同時刪除用戶的家目錄和相關文件:
  sudo userdel -r alice

注意事項

  • 刪除用戶前建議備份相關數據(如用戶目錄下的文件)。
  • 若用戶仍在登錄狀態,需先註銷或強制退出(可通過pkill -9 -u alice終止進程)。

四、權限分配:文件與用戶的關係

權限分配是用戶管理的核心,決定用戶能否訪問、修改或運行文件/目錄。Linux權限通過數字字母表示,以rwxr-xr-x爲例,含義如下:

1. 權限表示法

  • 字母法r(讀,4)、w(寫,2)、x(執行,1)。
  • 三類用戶:u(所有者)、g(所屬組)、o(其他用戶)。
  • 數字法:將r/w/x轉換爲4/2/1,累加後表示權限。例如:
  • rwx = 4+2+1=7(所有者權限)
  • rx = 4+1=5(所屬組/其他用戶權限)

2. 修改文件權限:chmod命令

示例1:字母法修改(更直觀)

# 給文件test.txt的所有者增加執行權限
chmod u+x test.txt

# 給所屬組移除寫權限
chmod g-w test.txt

# 給其他用戶添加讀權限
chmod o+r test.txt

示例2:數字法修改(簡潔高效)

# 所有者讀+寫+執行,所屬組讀+執行,其他用戶讀(權限754)
chmod 754 test.txt

3. 修改文件所有者/所屬組:chownchgrp

  • 修改所有者(需管理員權限):
  sudo chown alice:dev test.txt  # 同時修改所有者爲alice,所屬組爲dev
  • 修改所屬組
  sudo chgrp dev test.txt  # 僅修改所屬組爲dev

4. 批量操作目錄:遞歸修改權限

對目錄使用-R參數,遞歸修改所有子文件/目錄:

# 目錄dir及其子文件全部設置爲所有者讀+寫+執行,其他用戶只讀
sudo chmod -R 754 dir

五、sudo權限:臨時管理員權限

普通用戶默認無法執行系統級命令(如安裝軟件、修改系統配置),需通過sudo臨時獲取管理員權限。

1. 配置sudo權限

默認情況下,sudo需用戶屬於wheel組(CentOS)或sudo組(Ubuntu)。添加用戶到組:

sudo usermod -aG wheel alice  # CentOS添加到wheel組
# 或Ubuntu/Debian:sudo usermod -aG sudo alice

2. 使用sudo執行命令

alice@hostname:~$ sudo apt update  # 更新軟件源(管理員權限)
[sudo] password for alice:  # 輸入alice的密碼

3. 禁止普通用戶使用sudo

若需限制用戶,可編輯/etc/sudoers文件(建議用sudo visudo,避免語法錯誤):

sudo visudo

找到root ALL=(ALL:ALL) ALL行,註釋不需要sudo權限的用戶。

六、總結

Linux用戶管理的核心是創建、刪除用戶合理分配權限。關鍵命令需牢記:
- 創建用戶:sudo useradd -m 用戶名(加-m創建家目錄)+ passwd 用戶名(設置密碼)。
- 刪除用戶:sudo userdel -r 用戶名-r刪除家目錄)。
- 修改權限:chmod(字母/數字法)、chown/chgrp(修改所有者/組)。
- 臨時提權:sudo(需用戶在sudo組中)。

初學者可通過練習創建用戶、修改權限,逐步熟悉Linux的多用戶安全機制。操作時注意避免刪除重要用戶錯誤分配權限,確保系統穩定運行。

小夜