一、爲什麼需要文件權限?

在Linux系統中,文件權限就像一把“鑰匙”,控制誰能以何種方式訪問文件。如果權限設置錯誤,可能導致文件被誤刪、被惡意修改,甚至服務器數據泄露。比如,一個僅用於團隊協作的文檔,如果權限開放給所有人,就可能被無關人員篡改;反之,如果權限過於嚴格,自己也無法編輯文件。因此,理解並正確設置文件權限是Linux系統管理的基礎。

二、文件權限的“身份標籤”:用戶與組

每個文件(或目錄)都有三類關聯用戶:
- 所有者(User):文件的創建者,擁有最高控制權(除非被修改)。
- 所屬組(Group):文件所有者所在的用戶組,組內成員共享組權限。
- 其他人(Others):既不是所有者也不屬於所屬組的用戶。

權限的核心是:對這三類用戶分別設置“讀、寫、執行”三種操作的允許/禁止

三、權限的兩種表示方式

Linux用兩種方式表示權限,新手需掌握“字符形式”和“數字形式”的互轉:

1. 字符形式:直觀易懂

-rwxrwxrwx爲例,共10個字符,分爲4部分:
- 第1個字符:文件類型(-代表普通文件,d代表目錄,l代表鏈接等)。
- 第2-4字符:所有者權限(r讀、w寫、x執行,無權限用-表示)。
- 第5-7字符:所屬組權限。
- 第8-10字符:其他人權限。

權限含義速查表
| 字符 | 含義 | 數字值 |
|------|------|--------|
| r | 讀(查看內容) | 4 |
| w | 寫(修改/刪除文件) | 2 |
| x | 執行(運行程序/進入目錄) | 1 |
| - | 無權限 | 0 |

2. 數字形式:快速計算

將字符形式的權限轉換爲八進制數字(0-7),規則是:r=4w=2x=1,三類用戶權限相加。
例如:
- rwx(所有者):4+2+1=7
- rw-(所屬組):4+2+0=6
- r-x(其他人):4+0+1=5
合併後爲 765

四、文件 vs 目錄:權限的區別

權限對“文件”和“目錄”的影響不同,新手常混淆,需重點注意:

類型 r(讀) w(寫) x(執行)
文件 可查看內容 可修改內容 可執行文件(如腳本、二進制程序)
目錄 可列出目錄內容(ls) 可在目錄內創建/刪除文件 可進入目錄(cd)

五、如何修改文件權限?

常用命令:chmod(修改權限)、chown(修改所有者/組)。

1. chmod:修改權限
  • 字符形式:用u(所有者)、g(組)、o(其他人)、a(所有用戶),配合+(加權限)、-(減權限)、=(設爲精確權限)。
    示例:
  • chmod u+x file.txt:給所有者加執行權限(u+x)。
  • chmod go-r file.txt:給組和其他人減讀權限(go-r)。
  • chmod a+rwx file.txt:給所有用戶加讀/寫/執行權限(a+rwx)。

  • 數字形式:直接用數字指定權限(八進制)。
    示例:

  • chmod 755 file.txt:所有者rwx(7),組r-x(5),其他人r-x(5)。
  • chmod 644 file.txt:所有者rw-(6),組r--(4),其他人r--(4)。

  • 遞歸修改目錄:用-R參數對目錄及其子文件/目錄生效。
    示例:chmod -R 755 /home/user/docs/

2. chown:修改所有者/組
  • 修改所有者:chown 新所有者 文件/目錄
    示例:chown alice file.txt(將file.txt的所有者改爲alice)。

  • 修改所屬組:chown :新組 文件/目錄
    示例:chown :dev-team file.txt(將file.txt的所屬組改爲dev-team)。

  • 同時修改所有者和組:chown 新所有者:新組 文件/目錄
    示例:chown alice:dev-team file.txt

六、特殊權限:SUID、SGID、SBIT

新手可先了解基礎權限,再掌握特殊場景(避免複雜但常用):

  • SUID(Set UID):讓程序運行時臨時獲得文件所有者權限。
    示例:passwd命令用chmod u+s /usr/bin/passwd,普通用戶執行passwd時,會以root身份修改密碼(僅對二進制程序有效)。

  • SGID(Set GID):讓程序運行時臨時獲得文件所屬組權限,或讓目錄內新建文件自動繼承組。
    示例:chmod g+s /home/shared,在/shared目錄新建文件,所屬組會繼承/shared的組。

  • SBIT(Sticky Bit):僅用於目錄,防止普通用戶刪除他人文件。
    示例:chmod o+t /tmp,用戶在/tmp下只能刪除自己創建的文件。

七、常見問題與避坑

  1. 普通用戶無法修改文件?
    權限不足,需確保自己是文件所有者,或被加入所屬組並擁有寫權限。

  2. 修改目錄權限後子文件沒變化?
    目錄權限需遞歸修改:chmod -R 755 dir/

  3. 權限數字算錯?
    牢記:r=4w=2x=1,例如rw-r--r--644(6=4+2,4=4+0,4=4+0)。

總結

文件權限是Linux系統安全的核心,初學者需先掌握:
1. 字符形式(rwxrwxrwx)和數字形式(755)的轉換。
2. chmod的兩種修改方式(字符/數字)。
3. 文件與目錄權限的區別。

通過實際操作(如創建測試文件、修改權限、觀察效果),很快就能熟練掌握!

小夜