Quieres libguestfs. Puede usarlo a través de guestfish o guestmount, o usar la biblioteca directamente a través de su interfaz C o cualquiera de los muchos enlaces de lenguaje, como Python.
Con respecto a este, me viene a la mente lo siguiente.
Puede agregar una línea a su /etc/fstab
para el dispositivo que desea montar como usuario con privilegios normales.
Una línea de ejemplo sería
/dev/mydevice /mnt/directory auto rw,user 0 0
Con esta línea, un usuario normal puede montar mydevice
a /mnt/directory
y, además, puede leer y escribir en el dispositivo. Solo tienes que invocar
mount mydevice
o
mount /mnt/directory
Para una excelente explicación de la sintaxis de /etc/fstab
deberías mirar
www.tuxfiles.org/linuxhelp/fstab.html
Desde el raspberry
es un dispositivo usb, puede lograr esto de manera más elegante con udev
agregando una regla udev específica (montaje automático, etc.). En este caso, déjame ahora si quieres una explicación más detallada.
Necesita privilegios de superusuario para poder montar. Pero estos se le pueden proporcionar mediante comandos auxiliares de setuid como sudo, mount o fusermount. En /etc/fstab, y el administrador puede otorgar a algunos usuarios simples montar FS específicos. A algunos usuarios se les puede permitir montar sistemas de archivos a través de fuse (por ejemplo, si el FS es ext, es posible que pueda usar fuseext.
O tal vez pueda prescindir del montaje, utilizando aplicaciones que pueden escribir dentro de un sistema de archivos. Por ejemplo, debugfs puede escribir en una imagen ext fs (crear directorios, archivos, cambiar la propiedad...), debugfs se puede programar fácilmente. También puede usar qemu para ejecutar un kernel de Linux y los comandos asociados para escribir en ese FS.