Este é o meu script bash em init.d
:
#!/bin/bash
case "$1" in
'start')
# mount
bindfs -n /home/my_user/.local/share/Cryptomator/mnt /home/my_user/drivefolder
;;
'stop')
fusermount -u /home/my_user/drivefolder
;;
*)
echo "Usage: $0 { start | stop }"
;;
esac
então eu corro da conta root:
/etc/init.d/drivemount.sh start
/etc/init.d/drivemount.sh stop
O que eu quero é montar/desmontar /home/my_user/drivefolder
de root
conta em my_user
conta sem privilégios (para que a pasta montada possa ser manipulada sem privilégios).
Há alguma maneira de fazer isso? (sem precisar executar o script em my_user
conta sem privilégios e de outro local)
Esclarecimento : O script não é executado automaticamente. O que eu quero é executar o script manualmente, de root
ou apenas com my_user
o local (por motivos não relacionados à pergunta)sudo
/etc/init.d
PD: Eu li que com eval
isso pode ser feito, mas eu não sei.
Em vez de
bindfs …
usarsudo -u my_user bindfs …
.Se o root executar o script,
sudo
deverá permitir tornar-se my_user sem senha. Se my_user executar o script,sudo
deverá permitir se tornar o mesmo usuário sem senha. Se algum usuário executar o script comsudo
, será como se o root executasse o script.( Talvez algumas configurações
sudoers
possam alterar esse comportamento em relação às senhas. Não tenho certeza. Espero que a configuração sã comum se comporte conforme descrito.)Meus testes indicam que o root não precisa
sudo -u my_user
antesfusermount -u
. No entanto, se outro usuário simplesmente executar o script (semsudo
) e puder se autenticar como my_user, ele poderá montar. Para consistência, será bom permitir que eles desmontem da mesma maneira, entãosudo -u my_user
antesfusermount …
pode ser uma coisa boa.