Linux

為什麼 procfs 掛載選項僅適用於重新掛載?

  • May 6, 2020

我為我的系統編寫了自己的初始化程序(pid 1),為了提高安全性,我決定在安裝位置時添加(hidepid=2預設情況下未安裝)。procfs``/proc``procfs

安裝後,procfs我執行mount命令以使用給定的安裝選項檢查所有安裝是否正常,我注意到選項hidepid=2中沒有列出。一段時間後,我發現hidepid=2只能在remount.

我也使用命令行確認了行為,如下所示

  • 最初/proc沒有安裝procfs
  • 執行mount -t proc -o hidepid=2 proc /proc
  • 執行mount,顯示proc on /proc type proc (rw,relatime)
  • 執行mount -t proc -o remount,hidepid=2 proc /proc
  • 執行mount,顯示proc on /proc type proc (rw,relatime,hidepid=2)

任何人都請解釋我為什麼我無法一次嘗試procfs安裝hidepid=2

Linux核心中有一個送出(https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=69879c01a0c3f70e0887cfb4d9ff439814361e46)說:

此外,消除核心掛載的不必要的複雜性修復了導致 proc 掛載選項被忽略的回歸。現在 proc 的初始掛載來自使用者空間,這些掛載選項再次得到尊重。這修復了 Android 對 proc hidepid 選項的使用。

所以這似乎是Linux核心中的一個錯誤,目前(https://github.com/torvalds/linux/commit/69879c01a0c3f70e0887cfb4d9ff439814361e46),它僅在v5.7版本(v5.7)的候選發布標籤中修復-rc4、v5.7-rc3、v5.7-rc2 和 v5.7-rc1)。

引用自:https://unix.stackexchange.com/questions/584054