開發者工具 · Chmod 計算器
使用 find -perm 尋找全域可寫檔案和 setuid 二進位檔案
· 為什麼它很重要
chmod UNIX 存取控制
有兩種權限模式可以解釋許多實際事件:任何人都可以更改的檔案和以 root 身分執行的程式。這篇文章展示瞭如何使用 find -perm 來尋找兩者以及如何處理它們。
審閱者要求提供您沒有的清單 - 任何使用者都可以修改哪些檔案,以及哪些程式在執行時提升權限
權限審查通常從其他地方已收集的模式開始:可能是 0002、4000、2000 或完整值,例如 4755。計算器可以將這些數字解碼為所有者、群組和其他權限,包括三個特殊位元。它不搜尋目錄、檢查二進位檔案或產生路徑清單。
將每個提供的模式視為位元的描述,而不是關於檔案的判斷。輸入它,將八進位欄位與符號顯示和複選框矩陣進行比較,然後記錄更改的內容。使用該路徑的任何進程的所有權、ACL 條目、功能和身分仍然是從實際環境中收集的事實。
世界可寫意味著其他類別具有 w — 八進位模式 0002 以及為什麼 -perm -0002 會找到它,而不管其他位元如何
值 0002 隔離其他寫入位元。在普通的三類佈局中,最後一位數字屬於擁有者類別和群組類別之外的每個人,且其寫入元件的權重為 2。因此,包含該位元的完整模式將在另一個類別中顯示 w,儘管計算器本身無法找到此類模式。
特定查找表達式是否意味著精確匹配、全位匹配或任意位元匹配屬於查找文件,而不屬於此轉換器。而是提供一個結果模式。例如,0666 變成 rw-rw-rw-,而 0644 變成 rw-r--r--;在群組和其他寫入位置中可以看到差異,但這並不表示任一模式都適合特定路徑。
0002 公開其他寫入位元;尋找匹配語意是外部的
前導特殊位元數字使用 4 作為 setuid,使用 2 作為 setgid。因此 4755 將 setuid 與普通 755 權限組合起來,而 2755 將 setgid 與相同的尾隨位組合起來。計算器在渲染完整模式時單獨公開這些掩碼,並將它們的符號字母放置在所有者或群組執行位置中。
案件帶有有用的證據。如果setuid伴隨owner執行,owner執行位置顯示s;如果不執行它會顯示 S。 Setgid 在群組位置遵循相同的規則。這些輸出會對提供的整數進行解碼,但它們不檢查程式、確定其所有者、執行它或決定特殊位元是否合理。
4000 和 2000 解碼為 setuid 和 setgid,無需審核二進位檔案
權限搜尋語法必須與權限算術分開。此計算器接受八進位或九字元符號模式並傳回一個十二位元值。它沒有搜尋運算子、路徑謂詞或符合規則的表示,因此在此介面內無法區分精確模式查詢和全必需位元查詢。
從每個外部搜尋結果中解碼模式,而不是貼上搜尋運算式。三個普通數字映射到所有者、群組和其他,而可選的前導數字映射到 setuid、setgid 和 Sticky。此工作流程驗證報告的位,但將搜尋覆蓋範圍和匹配語意留給產生清單的工具。
精確、全位和任意位元查找模式需要尋找文件
假設在其他地方執行的審核報告 0666 和 4755。輸入 0666 會產生 rw-rw-rw-,使 other-write 在最後一個三元組中可見。輸入 4755 會產生 rwsr-xr-x:擁有者已讀取、寫入和執行,並 setuid 將擁有者執行字元替換為小寫 s,因為該執行位元存在。
第二個命中(例如 4644)說明了為什麼符號形式很重要。它呈現 rwSr--r--,大寫 S 顯示 setuid,而擁有者執行不存在。計算器可以使這種不一致變得明顯。它仍然無法識別路徑、確定誰擁有該路徑、檢查其內容或建議刪除該位元。
工作範例:在不掃描路徑的情況下解碼提供的稽核命中
不要自動修復每個異常模式。模式只是決策的一種輸入,該決策還取決於目標、所有者、群組和所需的操作。該頁面故意不接收任何上下文。它的命令預覽是惰性文字,甚至瀏覽器也不會打開或檢查正確引用的路徑。
在變更報告模式之前,請一次一位地比較目前值和建議值。從 0666 中刪除其他寫入會產生 0664;從 4755 中刪除 setuid 會產生 0755。這些算術事實是可重現的,但無論哪種更改都能保留工作量,都需要計算器之外和文章 501 的普通位演練之外的本地證據。
異常和補救需要當地所有權和工作量證據
缺少幾個相關的審計維度。此路由不會查詢 ACL 條目、檔案功能、所有權、可寫入路徑元件、掛載行為或強制原則。它也不會執行查找、檢查 PATH 或遍歷儲存。因此,乾淨的轉換僅表示提供的數字和顯示的字母一致。
讓這些邊界在任何報表中都可見。在解碼模式旁邊記錄路徑和收集方法,然後使用適當的外部工具調查身分和其他存取機制。該計算器作為符號檢查很有價值,因為它拒絕無效的八進制數字並公開特殊位;它不是檔案系統掃描器或修復引擎。
重點:了解您的可寫入和特權檔案 - 並在更改之前使用 Chmod 計算器轉換每個可疑模式
有用的權限審核將發現與解釋分開。讓外部記錄的流程收集候選路徑,然後使用計算器將每個傳回的模式轉換為明確類別權限。請像檢查後三位一樣仔細檢查可選的特殊位數字,因為 0755、2755 和 4755 共享普通權限,但描述不同的 12 位元值。
最後得出一個狹隘的結論:所提供的模式包含哪些所有者、群組、其他和特殊位元。不要將該算術變成關於風險敞口或所需政策的不受支持的主張。計算器可協助審查者準確讀取可疑模式;在任何人更改之前,即時系統必須提供所有權、工作負載和執行證據。