Vous voulez libguestfs. Vous pouvez l'utiliser via guestfish ou guestmount, ou utiliser la bibliothèque directement via son interface C ou l'une des nombreuses liaisons de langage, comme Python.
Concernant celui-ci, ce qui suit me vient à l'esprit.
Vous pouvez ajouter une ligne à votre /etc/fstab
pour l'appareil que vous souhaitez monter en tant qu'utilisateur avec des privilèges normaux.
Un exemple de ligne ressemblerait à
/dev/mydevice /mnt/directory auto rw,user 0 0
Avec cette ligne, un utilisateur normal peut monter mydevice
à /mnt/directory
et peut en outre lire et écrire sur l'appareil. Vous n'avez qu'à invoquer
mount mydevice
ou
mount /mnt/directory
Pour une excellente explication de la syntaxe de /etc/fstab
tu devrais regarder
www.tuxfiles.org/linuxhelp/fstab.html
Depuis les raspberry
est un périphérique USB, vous pouvez y parvenir plus élégamment avec udev
en ajoutant une règle udev spécifique (montage automatique, etc.). Dans ce cas, laissez-moi maintenant si vous voulez avoir une explication supplémentaire.
Vous avez besoin des privilèges de superutilisateur pour pouvoir monter. Mais ceux-ci pourraient vous être donnés par des commandes d'assistance setuid telles que sudo, mount ou fusermount. Dans /etc/fstab, l'administrateur peut autoriser certains simples utilisateurs à monter un FS spécifique. Certains utilisateurs peuvent être autorisés à monter des systèmes de fichiers via fuse (par exemple, si le FS est ext, vous pourrez peut-être utiliser fuseext.
Ou peut-être pouvez-vous vous passer du montage, en utilisant des applications qui peuvent écrire à l'intérieur d'un système de fichiers. Par exemple, debugfs peut écrire dans une image ext fs (créer des répertoires, des fichiers, changer de propriétaire...), debugfs peut être facilement scripté. Vous pouvez également utiliser qemu pour exécuter un noyau Linux et les commandes associées pour écrire dans ce FS.