Linux.general : Monter une image-disque sans être root

Posté par Kerro () le 23 juin 2008
0

J'utilise Etch. Je souhaite monter des images de disques (Qemu et vmware, mais c'est valable pour n'importe quoi) sans être root.



En étant root je fais:



# losetup -f

--> /dev/loop4

# losetup --offset 32256 /dev/loop4 /chemin/disque_virtuelt.dat

# mount /dev/loop4 /mnt



Facile.



Sans être root, je n'ai pas trouvé.



Je peux ajouter l'utilisateur au groupe 'disk' mais ça lui ouvre les droits de lecture/écriture sur tous les disques. Pas terrible :-)



J'ai essayé avec PAM sans succès. Je suppose que losetup n'est pas compilé pour utiliser PAM.



Je sèche.



Quelqu'un a une idée pour utiliser des images-disques sans être root ?

> Lire le message (8 commentaires, moyenne: 1,9).  

Vous avez demandé le commentaire #943530.

Il y a bien une méthode ...

Posté par Gérald (page perso, ) le 23/06/2008 à 18:49. (lien). Évalué à 1.

... mais c'est un poil du bricolage.
En gros, tu t'arranges pour faire tes losetup au boot, dans un rc.local par exemple.
Ensuite, tu utilises ce bon vieux fstab et son option users:

The fourth field, (fs_mntops), describes the mount options associated
with the filesystem.

It is formatted as a comma separated list of options. It contains at
least the type of mount plus any additional options appropriate to the
filesystem type. For documentation on the available options for non-
nfs file systems, see mount(8). For documentation on all nfs-specific
options have a look at nfs(5). Common for all types of file system are
the options ``noauto'' (do not mount when "mount -a" is given, e.g., at
boot time), ``user'' (allow a user to mount), and ``owner'' (allow
device owner to mount), and ``comment'' (e.g., for use by fstab-main-
taining programs). The ``owner'' and ``comment'' options are Linux-
specific. For more details, see mount(8).

[ Répondre ]

  • [^]Bin non :-)

    Posté par Kerro () le 23/06/2008 à 19:29. (lien). Évalué à 2.

    Ca aurait été trop simple :-)
    Les fichiers à monter ne sont pas connus à l'avance.

    Une autre méthode est de copier 'losetup' en 'losetup_bis' par exemple, et de le mettre en SUID avec un groupe spécifique. Je vais tester ça. C'est gruik mais moins que ma méthode actuelle.

    [ Répondre ]

    • [^]J'améliore

      Posté par Kerro () le 24/06/2008 à 00:21. (lien). Évalué à 2.

      Le fait d'écrire ici m'a fait penser à une autre méthode.

      SUID n'aide en rien, donc pas bon.

      J'ai modifier la règle d'attribution des droits sur /dev/loop[0-9] dans /etc/udev/ et maintenant c'est mieux. Par propre-propre mais mieux.

      Reste qu'un 'wrapper' autour de PAM serait super.

      [ Répondre ]

    [^]Re: Il y a bien une méthode ...

    Posté par Obsidian () le 24/06/2008 à 01:05. (lien). Évalué à 2.

    Pourquoi passez-vous par losetup alors qu'il existe l'option loop dans mount ? Du coup, on met tous dans la fstab, on passe users (pour qu'un utilisateur A puisse démonter ce qui a été monté par un utilisateur B), et il n'y a plus jamais besoin de demander à root.

    /répertoire/monfichier.iso /mon/pointdemontage auto loop,users 0 0

    Par contre, évidemment, cela demande toujours que les images soient connues à l'avance. J'imagine que l'on peut faire facilement un pilote qui se contente de faire le montage, mais je pense que le plus simple reste un script shell dûment privilégié par sudo (il y a moyen d'autoriser, avec ou sans mot de passe, l'accès à un programme unique à certains utilisateurs).

    Sinon, si c'est une distrib' à destination du débutant ou du semi-public, les environnements de bureau tels que Gnome proposent déjà le montage automatique en mode graphique ...

    [ Répondre ]