mount -r (読み取り専用) 読み取り - 書き込みマウント

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フラグを削除して常にフラグを使用するように強制することに加えて、フラグを尊重するために私ができる他の方法はありますか?-rusersudo

ベストアンサー1

通常のユーザーとして実行すると、カスタムmountマウントオプションを指定することはできません(実行はマウントオプションをmount -r追加するのと同じro)。この場合、すべてのカスタムマウントオプションが削除され、fstabデフォルトオプション+オプションのみが使用されます。

ランタイム結果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オプションを指定するfstabか、rootとしてコマンドを実行する必要がありますmount

mount「無許可」マウントを使用して実行することは通常fstab非常に制限的であり、これは意味があります。 root以外のユーザーfstab。この場合、に切り替えるときに権限を「下げる」ため、「安全」にはできますがrw変更roできない項目は依然として変更されます。

おすすめ記事