linux設置文件許可權777:linux修改許可權777仍然不讓我改

引言

如果你遇到了修復web伺服器的文件許可權問題,在網上搜索後,有大牛告訴你需要遞歸地chmod 777 你的web目錄!

在這樣做之前,你很有必要了解chmod -R 777 到底做了什麼,以及為什麼你永遠不應該將許可權設置為777。

本文解釋基本的Linux許可權模型以及與許可權對應的數字的含義。

真實經歷:一個Linux小白被許可權繞暈,大牛告訴他777,結果太意外

文件許可權

在Linux中,對文件的訪問由操作系統使用文件許可權、屬性和所有權進行控制。

通過了解Linux文件系統許可權模型,你可以將對文件和目錄的訪問限制為僅由授權用戶和進程訪問,從而使系統更加安全。

每個文件由特定用戶和組擁有,並為三種不同類別的用戶分配許可權訪問許可權:

  • 文件所有者。
  • 群組成員。
  • 其他人(其他所有人)。

有三種文件許可權類型適用於每個用戶類,並允許指定允許哪些用戶讀取文件、寫入文件或執行文件。

相同的許可權屬性適用於含義不同的文件和目錄:

讀許可權

  • 該文件是可讀的。例如,設置讀取許可權後,用戶可以在文本編輯器中打開文件。
  • 可以查看目錄的內容。用戶可以使用ls命令列出目錄中的文件。

寫許可權

  • 可以更改或修改該文件。
  • 可以更改目錄的內容。用戶可以創建新文件、刪除現有文件、移動文件、重命名文件等。

執行許可權

  • 可以執行該文件。
  • 可以使用cd命令進入該目錄

可以使用 ls 命令查看文件許可權。下面是一個例子:

ls -l example.txt

輸出內容如下:

-rw-r--r-- 12 coder coder 2.0K Apr  1 17:51 example.txt

詳細許可權參數含義:

真實經歷:一個Linux小白被許可權繞暈,大牛告訴他777,結果太意外

第一個字元顯示文件類型。它可以是常規文件(-)、目錄(D)、符號鏈接(L)或任何其他特殊類型的文件。

接下來的9個字元表示文件許可權,三個三元組,每個三個字元。第一個三元組顯示所有者許可權,第二個三元組顯示組許可權,最後一個三元組顯示所有其他許可權。

真實經歷:一個Linux小白被許可權繞暈,大牛告訴他777,結果太意外

許可權數字

文件許可權可以用數字或符號格式表示。在本文中,我們將重點介紹數字格式。

許可權可以由三位或四位數字組成,範圍從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

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
投稿專員的頭像投稿專員
上一篇 2024-12-08 16:39
下一篇 2024-12-08 16:39

相關推薦

發表回復

登錄後才能評論