在Linux系統中,用戶管理是系統維護的基礎技能。就像現實中每個人有不同的身份和權限一樣,Linux系統通過用戶和組來區分不同操作主體的權限,確保系統安全和資源隔離。本文將從基礎概念到實際操作,帶你一步步掌握Linux用戶管理的核心知識。
一、用戶與組的基本概念¶
在Linux系統中,每個用戶都有一個唯一的身份標識(UID),每個用戶默認屬於一個主要組(GID),還可以附加到多個其他組。組的作用是將多個用戶歸類,方便統一管理權限(比如所有開發人員屬於“dev”組,只需設置一次組權限)。
- 用戶:登錄系統的身份,如
root(管理員)、普通用戶alice、bob等。 - 組:用戶的集合,同一組用戶共享相同的組權限。
- 權限三要素:文件/目錄的權限分爲三類——所有者(用戶自己)、所屬組(組內用戶)、其他用戶(非組內且非所有者的用戶)。
二、創建用戶¶
創建用戶需要管理員權限(通過root或sudo),使用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. 修改文件所有者/所屬組:chown與chgrp¶
- 修改所有者(需管理員權限):
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的多用戶安全機制。操作時注意避免刪除重要用戶或錯誤分配權限,確保系統穩定運行。