Filesystems
mount -r (只讀) 掛載讀寫
**更新:**事實證明,這是由於 libmount 中的一個錯誤,現已在上游修復。https://github.com/karelzak/util-linux/issues/1235
原始問題如下
當我執行
mount -r /media/sdd1
設備時,設備以讀寫方式安裝,沒有警告或-r
選項失敗的跡象。$ egrep sdd1 /etc/fstab /dev/sdd1 /media/sdd1 auto user,noauto,exec,nodev 0 0 $ umount /media/sdd1 umount: /media/sdd1: not mounted $ mount -r /media/sdd1 $ touch /media/sdd1/file.tmp $ umount /media/sdd1 $ mount -r /media/sdd1 $ ls /media/sdd1/file.tmp /media/sdd1/file.tmp $ rm -f /media/sdd1/file.tmp $ umount /media/sdd1 $ mount -r /media/sdd1 $ ls /media/sdd1/file.tmp ls: cannot access '/media/sdd1/file.tmp': No such file or directory
這具有潛在的破壞性,例如,如果我忘記了不應該寫入文件系統。我試過的文件系統類型是 FAT16,如果這很重要的話。
除了移除旗幟以強迫自己始終使用之外,我還能做些什麼來
mount
紀念旗幟?-r``user``sudo
以普通使用者身份執行
mount
不允許指定自定義掛載選項(執行mount -r
相當於添加ro
掛載選項),在這種情況下會刪除所有自定義掛載選項,僅使用預設選項 + 選項 fromfstab
。執行時的結果
sudo mount -r /mnt/test
:/dev/sdb /mnt/test vfat ro,nosuid,nodev,noexec,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=ascii,shortname=mixed,errors=remount-ro 0 0
與普通使用者一樣,您可以看到該
ro
選項被忽略:/dev/sdb /mnt/test vfat rw,nosuid,nodev,noexec,relatime,uid=1000,gid=1000,fmask=0002,dmask=0002,allow_utime=0020,codepage=437,iocharset=ascii,shortname=mixed,errors=remount-ro 0 0
無法更改此設置,因此您需要在其中指定
ro
選項或以 root 身份fstab
執行命令。mount
“非特權”掛載通常具有非常嚴格的限制,
mount
而且fstab
它是有道理的——您不希望允許非 root 使用者更改fstab
. 在這種情況下,它可能是“安全的”,因為您在從rw
to切換時“降低”了您的權限,ro
但它仍然在更改您不允許更改的內容。