引言
如果你遇到了修復web伺服器的文件許可權問題,在網上搜索後,有大牛告訴你需要遞歸地chmod 777 你的web目錄!
在這樣做之前,你很有必要了解chmod -R 777 到底做了什麼,以及為什麼你永遠不應該將許可權設置為777。
本文解釋基本的Linux許可權模型以及與許可權對應的數字的含義。

文件許可權
在Linux中,對文件的訪問由操作系統使用文件許可權、屬性和所有權進行控制。
通過了解Linux文件系統許可權模型,你可以將對文件和目錄的訪問限制為僅由授權用戶和進程訪問,從而使系統更加安全。
每個文件由特定用戶和組擁有,並為三種不同類別的用戶分配許可權訪問許可權:
- 文件所有者。
- 群組成員。
- 其他人(其他所有人)。
有三種文件許可權類型適用於每個用戶類,並允許指定允許哪些用戶讀取文件、寫入文件或執行文件。
相同的許可權屬性適用於含義不同的文件和目錄:
讀許可權
- 該文件是可讀的。例如,設置讀取許可權後,用戶可以在文本編輯器中打開文件。
- 可以查看目錄的內容。用戶可以使用ls命令列出目錄中的文件。
寫許可權
- 可以更改或修改該文件。
- 可以更改目錄的內容。用戶可以創建新文件、刪除現有文件、移動文件、重命名文件等。
執行許可權
- 可以執行該文件。
- 可以使用cd命令進入該目錄
可以使用 ls 命令查看文件許可權。下面是一個例子:
ls -l example.txt
輸出內容如下:
-rw-r--r-- 12 coder coder 2.0K Apr 1 17:51 example.txt
詳細許可權參數含義:

第一個字元顯示文件類型。它可以是常規文件(-)、目錄(D)、符號鏈接(L)或任何其他特殊類型的文件。
接下來的9個字元表示文件許可權,三個三元組,每個三個字元。第一個三元組顯示所有者許可權,第二個三元組顯示組許可權,最後一個三元組顯示所有其他許可權。

許可權數字
文件許可權可以用數字或符號格式表示。在本文中,我們將重點介紹數字格式。
許可權可以由三位或四位數字組成,範圍從0到7。當使用3位數字時,第一位代表文件所有者的許可權,第二位代表文件組的許可權,最後一位代表所有其他用戶的許可權。
寫入、讀取和執行許可權具有以下數字值:
- r (讀) = 4
- w (寫) = 2
- x (可執行) = 1
- 無許可權 = 0
特定用戶類的許可權數字是該類的許可權值之和。
許可權的每個數字可以是4、2、1 和 0 的和:
- 0(0+0+0)-沒有許可權。
- 1(0+0+1)-僅執行許可權。
- 2(0+2+0)-僅寫入許可權。
- 3(0+2+1)-寫入和執行許可權。
- 4(4+0+0)-只讀許可權。
- 5(4+0+1)-讀取和執行許可權。
- 6(4+2+0)-讀寫許可權。
- 7(4+2+1)-讀取、寫入和執行許可權。
例如,如果許可權設置為750,則表示文件所有者有讀、寫、執行許可權,文件組有讀、執行許可權,其他用戶沒有許可權:
- 屬主:rwx=4+2+1=7。
- 屬組:r-x=4+0+1=5。
- 其他:—=0+0+0=0
當許可權使用4位數字時,第一個數字的含義如下:
- setuid = 4
- setgid = 2
- sticky = 1
- no changes = 0
接下來的三位數的含義與使用三位數時相同。
如果第一位數字為0,則可以省略,模式可以用3位數字表示,例如0755與755相同。
要以數字(八進位)表示法查看文件的許可權,請使用stat命令:
stat -c "%a" filename
輸出數字如:644。
永遠不要 chmod 777
對文件或目錄設置777許可權意味著它將對所有用戶都是可讀、可寫和可執行的,並且可能會帶來巨大的安全風險。
例如,如果你以遞歸方式將 /var/www 目錄下所有文件和子目錄的許可權更改為777,則系統上的任何用戶都可以創建、刪除或修改該目錄中的文件。
如果你的Web伺服器遇到許可權問題,請將文件的所有權更改為運行應用程序的用戶,並將文件的許可權設置為644,將目錄的許可權設置為755,而不是遞歸地將許可權設置為777。
可以使用chown命令更改文件所有權,使用chmod命令更改許可權。
假設您的伺服器上有一個PHP應用程序以用戶「www」身份運行。
要設置要運行的正確許可權,請執行以下操作:
chown -R www: /var/www
find /var/www -type d -exec chmod 755 {} ;
find /var/www -type f -exec chmod 644 {} ;
只有root用戶、文件所有者或具有sudo許可權的用戶才能更改文件的許可權。
使用chmod時要格外小心,特別是在遞歸更改許可權的時候。
寫在最後
如果你管理的是Linux系統,了解Linux許可權是如何工作的非常重要。
永遠不要設置777(rwx rwx rwx)許可權、文件和目錄許可權。
777意味著任何人都可以對這些文件做任何事情。
原創文章,作者:投稿專員,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/211514.html