開發者工具 · Chmod 計算器
修復 nginx 403 禁止:重要的檔案和目錄權限
· 為什麼它很重要
chmod UNIX 存取控制
來自 nginx 的 403 通常是檔案系統問題,而不是設定問題。這篇文章展示瞭如何檢查 nginx 作為哪個使用者執行以及它在路徑中的每個目錄上需要哪些位元。
403 在本地工作的靜態站點上 - 檔案來自 /home/deploy 並 nginx 對每個 URL 表示禁止
nginx 403 可能涉及模式位,但此路由無法辨識其原因。此計算器沒有 nginx 整合、日誌、設定解析器、進程查找或路徑遍歷器。它回答了更狹隘的問題:目錄類別是否已執行以及常規檔案類別是否已讀取,從而幫助解釋在其他地方收集的證據。
從每個路徑組件上觀察到的精確模式開始,而不是假設預設值。進入每種模式並選擇其目標類型。符號文字、複選框和散文公開類別權限並確認轉換,但無法顯示 nginx 嘗試存取、它使用的身份或檔案系統權限是否產生回應。
A 403 可能涉及模式位,但此路由無法辨識其原因
計算器無法發現 nginx 工作人員身分。它對所有者、群組和其他類別進行建模,但不對使用者名稱、進程或成員資格進行建模。因此,像 rwxr-xr-x 這樣的模式沒有說明工人是否擁有該物件、屬於其群組還是屬於其他群組。外部檢查必須確定該分類。
身分發現必須先於相關位的宣告。一旦證據確定了適用的類別,矩陣就會顯示讀取為 4、寫為 2 並執行為 1。在此之前,編輯組或其他都是猜測。該路由未讀取任何進程狀態;它轉換提供的模式而不是推斷伺服器體系結構。
計算器未發現 nginx 工作人員身份
將每個目錄組件作為單獨提供的模式進行檢查。對於目錄,執行允許條目和基於名稱的訪問,讀取允許列出,寫入允許建立、重新命名和刪除條目。特定於目標的解釋可協助審查者確定外部建立的類別是否已在特定元件上執行,而無需宣告檢查路徑本身。
瀏覽器不會從根目錄走到 Web 根目錄。它無法定位阻塞組件、確認其存在或檢查 ACL。分別提供每個觀察到的目錄模式,然後將最終物件作為常規檔案進行檢查,其中讀取涉及內容而不是清單。這會解釋收集到的證據,而不是取代檔案系統檢查。
檔案需要 r,僅此而已 - 為什麼 644 對於靜態檔案來說就足夠了,為什麼檔案上的 755 不能解決問題
對於靜態檔案,644 呈現 rw-r--r--。擁有者接收讀取和寫入,而群組和其他接收讀取;沒有人收到執行。此轉換表明檔案讀取和執行是單獨的位元。該頁面沒有決定特定伺服器是否需要執行的依據,因為不存在伺服器策略。
保持檔案和目錄的解釋不同。目錄執行意味著條目和基於名稱的可及性,而常規檔案執行意味著執行程式。因此,同一個複選框具有針對特定目標的散文。將 644 與 755 進行比較可以澄清一些問題,但無法在沒有配置、身份、ACL 和策略上下文的情況下診斷 403 或規定通用模式。
工作範例:追蹤路徑上的 /home/deploy/site/index.html — namei -l 以及揭示阻止程式的 ls -l 行
支援的範例在其他地方收集路徑證據後開始。假設目錄元件為 755,最終檔案為 644。計算器將目錄呈現為 rwxr-xr-x,將群組和其他執行解釋為入口和可及性。它將檔案呈現為 rw-r--r--,將群組和其他讀取解釋為內容存取。
如果一個元件是 750,則它的另一個三元組是 ---,而群組仍然是 r-x。這種差異可能很重要,但並不能證明 nginx 使用其他的。此路由不能執行 namei 或 ls,因此外部證據必須提供路徑和模式。然後,它會同步每個表示,以減少審核期間的轉錄錯誤。
工作範例:檢查路徑每個元件的提供模式
所有權決策保留在模式轉換之外。此面板不讀取任何所有者或群組,也不提供 chown 或 chgrp 操作。它無法在部署、服務或共享群組所有權之間進行選擇,也無法評估行動內容。這些決策需要來自來源的系統和工作量證據;沒有產生模式可以取代該上下文。
一旦在其他地方解決了所有權問題,請比較模式如何劃分存取權限。模式 750 授予完全擁有者權限、群組讀取和執行權限,而不授予其他權限; 755 新增其他讀取和執行。這仍然以了解工人階級為條件。惰性命令預覽既不更改所有權也不確認伺服器存取權限。
所有權選擇保留在模式轉換之外
此處不診斷配置、索引選擇、強制存取控制和上游行為。沒有來源載入 nginx 設定、檢查 URI 或索引、讀取日誌、聯繫上游或觀察 SELinux 或 AppArmor。因此,正確轉換提供的模式無法確定 nginx 回傳 403 的原因;伺服器證據必須回答這個問題。
當模式顯得可疑時保留這種差異。此面板可能會顯示目錄類別缺少執行或檔案類別缺少讀取,但相關性取決於身分和路徑證據。許可位也不能排除其他原因。準確說明該模式允許的內容,然後返回到特定於伺服器的診斷。
配置、索引、MAC 和上游原因未診斷
路徑存取可能取決於每個元件,但計算器一次只能看到一個提供的值。它的優點在於準確的解碼:八進位、符號文字和複選框保持同步,而目錄散文則區分列出、修改和輸入。它簡化了審查,而無需假裝發現組件或嘗試訪問的進程。
建立伺服器身分並收集該路由以外的路徑模式。將每個目錄解碼為目錄,將最終物件解碼為常規檔案,並專注於外部驗證的類別。分別調查配置、ACL 和強制策略。計算器驗證算術,但無法辨識 403 的原因或驗證修復。