繁體中文

開發者工具 · Chmod 計算器

黏滯位的兩個生命:從交換駐留文字到 /tmp

· 背景

chmod UNIX 存取控制

黏性渲染顯示為不同的 Unix 權限位圖
原始 ToolAcre 向量圖

/tmp 模式中的 t 在 1970 年代的 Unix 中意味著完全不同的東西。這篇文章遵循從性能提示到刪除規則的黏性位,並解釋了它今天的作用。

drwxrwxrwt on /tmp — 最後一個字母不是 r、w 或 x,通常的單字解釋什麼也解釋不了

字串 drwxrwxrwt 說明了為什麼普通的 rwx 算術並不是全部。黏性是 1000 位,在最終執行位置呈現。當存在 other-execute 時,字元為小寫 t;如果沒有它,則會出現大寫 T。因此,輸入 1777 會產生 rwxrwxrwt,而四位數摘要保留前導特殊位數字。

此顯示轉換提供的模式;它不檢查目錄。該頁面將一個值拆分為所有者、群組、其他和特殊位,然後從這些部分重建每個視圖。他們的協議驗證算術,而不是所有權、ACL 或檔案系統策略。產生的 chmod 命令保持純文字狀態,直到有人在其他地方執行它。

原始的意義 — 退出後將程式的文欄位保留在交換中,以便下次執行在慢速磁碟上啟動得更快

常規檔案解釋說,一旦請求程式文字保留在交換中,就會黏滯。這是這些資料來源所支持的完整的歷史主張。他們沒有引用主要的 Unix 手冊、日期、命名系統或採用措施。仔細的考慮可以將先前的檔案含義與當前目錄行為進行對比,而無需發明更廣泛的作業系統歷史記錄。

計算器決定如何表示該位。 Sticky 佔用八進位 1000 並共享符號表示法中的其他執行位置。因此 1777 以 t 結尾,因為設定了執行,而 1644 以 T 結尾,因為它不存在。位元遮罩、解析器、渲染器和往返測試支援這些事實,而不是核心行為的時間順序。

來源描述了先前的檔案提示,但沒有提供主要歷史引用

對於常規檔案,該工具將 Sticky 描述為現代核心忽略的歷史交換提示。該措辭不應成為每個核心或檔案系統的通用宣告。該存儲庫提供計算器解釋,而不是平台調查。它的防禦點更窄:黏性不會改變常規檔案顯示的讀取、寫入或執行授權。

即使未要求強制執行,表述仍然準確。對於 other-execute 設定,最後一個字元是 t;如果沒有它,該字元就是 T。解析器將任一形式還原為黏滯位,並測試涵蓋 1777、1644 以及透過 7777 的每個模式。沒有一個會啟動程式、掛載檔案系統或查詢核心的實際行為。

常規檔案解釋說現代內核忽略黏性;沒有提出普遍的主張

目錄行為是現代使用的實作直接解釋。在共享目錄上,黏性添加了刪除和重新命名限制:人們可以建立條目,但刪除僅限於條目的擁有者或根。預設將 1777 捕獲為 /tmp 模式,而解釋則在目錄可供所有人寫入而不具有粘性時發出警告。

顯示暴露了這種區別,但沒有聲稱檢查 /tmp. 模式 777 和 1777 共享普通權限 rwxrwxrwx。新增 1000 會將最終的符號 x 變更為 t 並將 +t 附加到產生的分配中。所有者、群組和其他補助金保持不變;真正的所有權、ACL 和檔案系統規則仍然在計算之外。

目錄黏性行為是目前實施的解釋

目錄語句規定了一個有限的規則:使用黏性集,只有檔案的擁有者或 root 可以刪除或重新命名它。該工具不會解析身分、檢查目錄所有權或嘗試執行操作。顯示的 1777 確認通用 rwx 位元加黏性,但它無法識別誰擁有涉及實際爭議的條目。

附加政策必須單獨調查。計算器不會讀取 ACL、功能、安裝選項、強制控製或檔案系統狀態。檔案和目錄之間的切換會更改說明,而不是模式。如果重新命名成功或意外失敗,則該頁面無法解釋原因;它僅隔離傳統位元以進行特定於系統的調查。

此工具描述擁有者或根刪除限制,而不檢查策略擴展

將 1777 和 777 作為目錄模式進行比較。模式 777 呈現 drwxrwxrwx 並允許每個類別列出、建立、輸入、重新命名和刪除。該工具警告用戶可能會刪除不屬於他們的條目。啟用黏性會產生 drwxrwxrwt:rwx 授予保持固定,而所有者或根刪除限制進入解釋。

產生的分配顯示相同的一位差異。模式 777 變成 u=rwx,g=rwx,o=rwx,而 1777 新增 +t;八進位預覽也保留前導數字。預覽都不會打開路徑或執行 chmod。比較證明只有 1000 改變了並解釋了它的 t 形式,但所有權和執行仍然需要外部檢查。

工作範例:比較計算器中 1777 和 777 的解釋

Setgid 歷史記錄。儲存庫可以將 setgid 編碼為 2000,在群組執行位置呈現 s 或 S,並解釋目錄群組繼承。這些實作細節沒有記錄 setgid 的起源,也沒有將其開發與黏性聯繫起來。一個特殊位的算術並不是另一個特殊位子的歷史證據。

受保護目錄策略也超出了來源集。該頁面不會讀取 fs.protected 設定、系統配置、ACL、所有權記錄或嘗試的操作。它可以確認提供的模式包含黏性並顯示其基本授予,但它不能證明黏性是機器的唯一限制。更廣泛的診斷需要來自該環境的證據。

Setgid 歷史記錄和受保護目錄策略保留在來源集之外

實際差異適合於一個字元。對於目錄,t 記錄具有其他執行位的黏性,而 T 記錄沒有該執行位的黏性。計算器保留這兩種形式,並使 1000 在其摘要中可見。其來源也提到了先前的常規檔案提示,但提供的主要證據太少,無法支持普遍的歷史年表。

在辯論政策之前使用該頁面來解決代表問題。輸入模式,選擇檔案或目錄,然後比較八進位、符號、矩陣、摘要和賦值。協議確認一致的十二位轉換。除非目標系統提供更多證據,否則就到此為止:該工具不識別任何用戶,不讀取任何路徑,不執行任何命令,也不檢查任何策略擴充。