如果塊設備具有 brwx______ 權限,那麼它的安全性如何?

如果塊設備具有 brwx______ 權限,那麼它的安全性如何?

我無法找到有關塊設備權限真正含義的資訊。對於區塊設備來說,讀取權限是什麼意思?這是否意味著我不能做像 hexdump 這樣的事情?寫權限怎麼樣?還是執行?

此外,如果您透過授予使用者 sudo 權限以僅掛載該特定裝置而不是裝置上的 r、w 或 x 權限來獲得裝置上的掛載權限,該怎麼辦?那會發生什麼事?

答案1

對於簡單的情況(當您像文件一樣存取設備時),正如 @Jasen 所寫:

  • 讀取權限允許從設備讀取(轉儲、fsck以唯讀模式運作等)
  • 寫入權限允許寫入設備(用圖像覆蓋等)
  • 運作、等需要讀取的權限fscktune2fs需要修改檔案系統。
  • 執行權限被忽略。如果您嘗試執行裝置文件,即使區塊裝置包含有效的可執行程式碼,您也會收到「權限被拒絕」的訊息。

如果你是 root 你通常會得到CAP_DAC_READ_SEARCHCAP_DAC_OVERRIDE 能力,這意味著權限標誌被完全忽略。

為了讀寫控制更複雜的是:

要執行 ioctl,您需要能夠打開文件,這意味著至少您需要讀取或寫入權限。

其他一切都取決於驅動程式。某些裝置驅動程式僅檢查CAP_SYS_RAWIO或等功能CAP_SYS_ADMIN,某些裝置驅動程式使用「無害」ioctl 的讀取權限,僅提供資訊和其他 ioctl 的讀取+寫入權限。裝置驅動程式可能使用執行權限進行 ioctl 權限檢查,但我不知道有任何驅動程式可以執行此操作。

為了更容易:

系統mount呼叫僅檢查兩件事:

  1. 你需要能夠抵達設備文件。這表示裝置檔案路徑上的所有目錄都需要至少設定執行權限位元(或您需要具有該CAP_DAC_READ_SEARCH功能)。
  2. 你需要具備這種CAP_SYS_ADMIN能力(當你是 root 時通常會獲得這種能力)

設備檔案本身的權限位在安裝時完全被忽略,並且不會以任何方式影響對已安裝檔案系統的存取。

使用須藤以具有所有可用功能的root身份運行執行的程序,這意味著所有權限檢查都被忽略,並且正如@Jasen在評論中所寫,/bin/mount通常是setuid-root,這導致它始終獲得所有可用功能,因此權限位元沒有影響在mount大多數 Linux 發行版上和其他unixoid作業系統

編輯:有關功能的部分是 Linux 特定的。其他 unixoid 作業系統(例如 BSD 或 OSX)不會將 root 的特殊能力分成功能,因此當提到功能時,您只需要成為 root 即可。根據可用的線上說明頁,這些檢查mount與我所描述的 Linux 特定檢查類似。似乎沒有作業系統在安裝時檢查權限位。

答案2

read 允許讀取(例如 hexdump) write 允許寫入(例如將映像寫入裝置) 組合起來這表示您可以使用「hexedit」等工具來檢視和修改內容。

我不知道 x 允許什麼(可能它允許 ioctl?)

因為權限brwx______意味著只有所有者(通常root)才能執行這些操作。

相關內容