爲什麼需要用戶與權限管理?¶
在Linux系統中,用戶和權限管理是保障系統安全、合理分配資源的核心機制。想象一下,如果所有程序都以同一個身份運行,一旦某個程序被攻擊,整個系統可能面臨風險。而權限管理就像給不同用戶分配不同的“鑰匙”,讓他們只能打開自己有權限的“門”,既保證資源合理使用,又防止誤操作或惡意破壞。
一、用戶與組的基本概念¶
1.1 用戶與組的關係¶
- 用戶(User):每個使用系統的人或程序都對應一個用戶,比如你用
root管理系統,用www-data運行網站服務。 - 組(Group):多個用戶可以組成一個組,方便統一管理權限。例如,開發團隊的成員可以加入同一組,共享文件權限。
比喻:用戶是“個人”,組是“家庭”,一個用戶可以屬於多個組(主組+附加組),但只有一個主組。
1.2 UID與GID¶
- UID(用戶ID):每個用戶有唯一的數字ID,
root的UID固定爲0,普通用戶從1000開始(如Ubuntu)。 - GID(組ID):每個組也有唯一數字ID,主組ID與用戶ID一致。
二、用戶管理基礎¶
2.1 創建/刪除用戶¶
- 創建用戶:
useradd 用戶名(需root權限) - 示例:
useradd -m zhangsan(-m表示自動創建家目錄) - 設置密碼:
passwd 用戶名 - 刪除用戶:
userdel -r 用戶名(-r刪除家目錄)
2.2 切換用戶¶
- 臨時切換身份:
su - 用戶名(加-表示切換環境變量,如sudo su -直接切換到root) - sudo提權:普通用戶用
sudo 命令執行管理員操作(無需切換root) - 示例:
sudo apt update(Ubuntu)或yum update(CentOS) - 提示:需先將用戶加入
sudo組(usermod -aG sudo 用戶名)
三、文件權限詳解¶
3.1 權限的含義(rwx)¶
文件權限用3組字符表示,每組對應用戶(u)、組(g)、其他(o)的權限,格式爲rwxrwxrwx:
- r(讀):4(二進制100),可查看文件內容(如cat)
- w(寫):2(二進制010),可修改/刪除文件(需謹慎)
- x(執行):1(二進制001),可運行程序(文件)或進入目錄(目錄)
關鍵區別:目錄的
x權限是“進入目錄”,而非“運行目錄”;文件的x權限是“執行程序”。
3.2 權限表示方法¶
數字權限(簡潔直觀)¶
- 直接用數字組合表示權限,格式爲
所有者權限+組權限+其他權限 - 例:
755= 所有者rwx(7)+ 組r-x(5)+ 其他r-x(5) - 例:
644= 所有者rw-(6)+ 組r--(4)+ 其他r--(4)
符號權限(靈活精確)¶
用u/g/o/a(用戶/組/其他/所有)+ +/-/=(添加/移除/設置)+ r/w/x表示:
- 例:chmod u+x file.txt(給文件所有者添加執行權限)
- 例:chmod go-w directory(移除組和其他用戶的寫權限)
3.3 設置權限命令¶
- 修改權限:
chmod [權限類型] 權限 文件 - 數字:
chmod 755 test.sh(所有用戶可執行,所有者讀寫執行) - 符號:
chmod u+r,g+w test.txt(用戶+讀,組+寫) - 修改所有者/組:
chown 新所有者:新組 文件(如chown root:www-data app.log)chgrp 新組 文件(僅修改組,需root權限)
四、目錄權限的特殊規則¶
- 目錄權限優先級:進入目錄需
x權限,查看目錄內容需r權限,創建/刪除文件需w權限。 - 例:目錄
data權限700(僅所有者可進入),目錄public權限755(所有用戶可進入)
五、特殊權限(高級)¶
5.1 SUID/SGID/SBIT¶
- SUID(Set UID):讓二進制程序臨時擁有所有者權限(如
passwd命令) - 設置:
chmod u+s program(僅對可執行文件有效) - SGID(Set GID):讓文件/目錄的新內容繼承組權限(如團隊共享目錄)
- 設置:
chmod g+s directory(目錄下新建文件默認繼承目錄組) - SBIT(Sticky Bit):防止普通用戶刪除其他用戶的文件(如
/tmp目錄) - 設置:
chmod o+t directory
六、權限繼承與默認權限¶
6.1 umask(默認權限掩碼)¶
- 作用:控制新建文件/目錄的默認權限(如新建文件默認不執行,目錄默認允許進入)
- 查看:
umask(默認022,表示新建文件默認權限644,目錄755) - 修改:臨時生效
umask 002(永久生效需在/etc/profile或~/.bashrc中配置)
七、常見問題與最佳實踐¶
- 忘記密碼:
root用戶可通過passwd 用戶名重置密碼,普通用戶需su -切換到root執行。 - 最小權限原則:僅給用戶分配必要權限(如
www-data僅需訪問網站目錄)。 - 避免root日常操作:用普通用戶+
sudo,防止誤操作(如刪除系統文件)。 - 定期檢查權限:
find / -perm -600(查找高危權限文件,600表示僅所有者可讀寫)。
通過以上內容,你應該能初步掌握Linux用戶與權限管理的核心邏輯。後續可結合實際場景(如搭建Web服務器、部署程序)加深理解,重點注意“權限對文件/目錄的不同影響”和“數字權限與符號權限的轉換”。