Quero permitir um script de usuário em remount
uma unidade como "ro" ou "rw".
Usando a user
opção no fstab, posso montar e desmontar a unidade com êxito como usuário, mas -o remount,rw
falha.
Não é possível ao usuário utilizar a remount
opção?!?
/etc/fstab
lê...
UUID=789f-4b3a-b0b2-c05955d7c5ad /mnt/nasbackup auto rw,user,noexec 0 2
mas...
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>
Esta é uma limitação arquitetônica do
mount
. Como solução alternativa, você pode usar C para escrever alguns wrappers suid. Os scripts Shell não funcionarão porque o Bash se recusa a manter o suid.sudo apt install build-essential
remountro.c
remountrw.c
:make remountrw remountro
remountro
ouremountrw
corrigir exatamente esses dois comandosVocê ainda precisa da
user
peça/etc/fstab
para que os comandos de não remontagem continuem funcionando como antes. Alternativamente, você pode editar/etc/sudoers
, mas é mais complicado garantir que as regras de restrição de parâmetros que você escrevesudo
permaneçam seguras.