我想允许用户脚本remount
作为“ro”或“rw”驱动器。
通过使用user
fstab 中的选项,我可以以用户身份成功安装和卸载驱动器,但-o remount,rw
失败。
用户无法使用该remount
选项吗?!?
/etc/fstab
读...
UUID=789f-4b3a-b0b2-c05955d7c5ad /mnt/nasbackup auto rw,user,noexec 0 2
但...
john@johnbox /mnt> mount UUID=789f-4b3a-b0b2-c05955d7c5ad
john@johnbox /mnt> mount | grep nvme
/dev/nvme0n1 on /mnt/nasbackup type ext4 (rw,nosuid,nodev,noexec,relatime,stripe=4,user=john)
john@johnbox /mnt> mount -o remount,ro UUID=789f-4b3a-b0b2-c05955d7c5ad
mount: /mnt/nasbackup: must be superuser to use mount.
dmesg(1) may have more information after failed mount system call.
john@johnbox /mnt [32]> umount UUID=789f-4b3a-b0b2-c05955d7c5ad
john@johnbox /mnt>
这是的架构限制
mount
。作为解决方法,您可以使用 C 编写一些 suid 包装器。Shell 脚本将无法工作,因为 Bash 拒绝保持 suid。sudo apt install build-essential
remountro.c
remountrw.c
:make remountrw remountro
remountro
或remountrw
修复这两个命令您仍然需要该
user
部分,/etc/fstab
以便非重新安装命令继续像以前一样工作。或者,您可以编辑/etc/sudoers
,但确保您编写的参数限制规则sudo
保持安全会更复杂。