一、爲什麼需要文件權限?¶
在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=4、w=2、x=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下只能刪除自己創建的文件。
七、常見問題與避坑¶
-
普通用戶無法修改文件?
權限不足,需確保自己是文件所有者,或被加入所屬組並擁有寫權限。 -
修改目錄權限後子文件沒變化?
目錄權限需遞歸修改:chmod -R 755 dir/。 -
權限數字算錯?
牢記:r=4、w=2、x=1,例如rw-r--r--是644(6=4+2,4=4+0,4=4+0)。
總結¶
文件權限是Linux系統安全的核心,初學者需先掌握:
1. 字符形式(rwxrwxrwx)和數字形式(755)的轉換。
2. chmod的兩種修改方式(字符/數字)。
3. 文件與目錄權限的區別。
通過實際操作(如創建測試文件、修改權限、觀察效果),很快就能熟練掌握!