爲什麼需要用戶與權限管理?

在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中配置)

七、常見問題與最佳實踐

  1. 忘記密碼root用戶可通過passwd 用戶名重置密碼,普通用戶需su -切換到root執行。
  2. 最小權限原則:僅給用戶分配必要權限(如www-data僅需訪問網站目錄)。
  3. 避免root日常操作:用普通用戶+sudo,防止誤操作(如刪除系統文件)。
  4. 定期檢查權限find / -perm -600(查找高危權限文件,600表示僅所有者可讀寫)。

通過以上內容,你應該能初步掌握Linux用戶與權限管理的核心邏輯。後續可結合實際場景(如搭建Web服務器、部署程序)加深理解,重點注意“權限對文件/目錄的不同影響”和“數字權限與符號權限的轉換”。

小夜