Mount

mount 和 fstab:為什麼可以將它們配置為允許使用者掛載但不能解除安裝?

  • March 8, 2021

我最近注意到可以允許普通使用者通過 fstab 掛載設備,但顯然無論如何 umount 只能由 root 完成。

甚至 mount 的手冊頁也只討論了掛載:

掛載手冊頁

除了有一個實際的解決方案之外,我想知道這背後的原因是什麼?

與許多 Unix/Linux 特性一樣,這背後的原因當然是歷史性的。Unix 本身是從 Unics(其前身 Multics 的雙關語)演變而來的,它被設計為真正的多使用者系統。getty使用者可以通過and本地或遠端登錄login,獲取 shell 並執行他們的程序。

如今,TTY 是虛擬的,並login已被 GDM/KDM 取代,但諸如mountdflsps(屬於最古老的 Unix 命令)之類的實用程序在用途上仍基本保持不變,儘管它們在一年中獲得了許多附加功能。

這些命令mountumount最初只打算由系統管理員執行,或者root. 隨著 Unix 的發展和傳播到個人電腦mountumount 成為 SUID 程序,使普通使用者能夠掛載和解除安裝文件系統,但只能在嚴格的條件下進行。來自man mount

通常,只有超級使用者可以掛載文件系統。

$$ … $$ 請注意,mount 對非 root 使用者非常嚴格,並且在解析 fstab 或執行幫助程序之前驗證命令行中指定的所有路徑。$$ … $$ 它刪除 suid 權限並繼續作為正常非 root 使用者。$$ … $$ 只有掛載文件系統的使用者才能再次解除安裝它。如果任何使用者應該能夠解除安裝它,那麼在 fstab 行中使用 users 而不是 user。

因此,兩者mount都是umountSUID 程序,它們會在 中查找user選項或users選項/etc/fstab,然後放棄它們的 root 權限,最後進行mount()/umount()系統呼叫。

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