Media amovibles

Un article de Diablotins.org.


Image:brush.png

Lecteur optique, disquettes, clé USB...




Un FreeBSD fraîchement installé ne donne aucun droit aux utilisateurs sur les périphériques. Il est alors nécessaire d'acquérir le crédit de root pour les monter, ce qui, dans le cas des supports de stockage amovibles, disquettes, Cédéroms, clefs USB etc., n'est pas souhaitable.


Sommaire

Qui a le droit ?

Définissons les groupes d'utilisateurs dédiés aux pilotages des certains périphériques amovibles, «floppy» (lecteur de disquette) et «cdrom» (Lecteur CD).
Dans les exemples suivants, David et Lecid seront membres de «floppy» et de «cdrom», Nolwenn, de «cdrom».

Les permissions des périphériques

Au démarrage, le système consulte le fichier «/etc/devfs.conf» pour déterminer les crédits à affecter aux périphériques. Devfs propose la structure suivante:

Action périphérique utilisateur:groupe

Le mot clef «own» détermine le propriétaire du périphérique, «perm» les droits affectés à ce dernier. Ainsi:

link acd0 cdrom   #Cas particulier, le périphérique cdrom est un lien vers acd0.
own acd0 root:cdrom
perm acd0 0660
own cdrom root:cdrom
perm cdrom 0660
own     fd0 root:floppy
perm    fd0     0660

Les permissions du lecteur de disquette (fd0) et du lecteur de cédérom (acd0) sont ainsi définis: le propriétaire root et le groupe («:cdrom» ou «:floppy») ont le droit de lire et d'écrire sur le périphérique («666»/«-rw-rw----»);ce qui inclue «root» alors qu'il n'est pas membre des groupes idoines.

Le montage par l'utilisateur

Par défaut, seul root a le droit de monter un périphérique.Pour permettre aux autres de le faire, ajoutez une entrée dans sysctl.conf

# echo vfs.usermount=1 >> /etc/sysctl.conf

Et, pour éviter de redémarrer la machine:

# sysctl vfs.usermount=1

Les utilisateur peuvent ainsi monter des systèmes de fichiers, mais seulement dans leur propre espace. Ce qui veut dire que l'utilisateur doit être le propriétaire du point de montage.
Aussi, créez pour chaque utilisateur, un répertoire associé au système à monter:

david:$ mkdir ~/floppy ~/cdrom
lecid:$ mkdir ~/floppy ~/cdrom
nolwenn:$ mkdir ~/cdrom


Plus simplement et pour éviter de le faire à chaque nouvel utilisateur, créez le squelette idoine.

Automatiser le montage

Le système consulte le fichier /etc/fstab pour contrôler le montage de système de fichier.
Définissez une entrée pour chaque utilisateur et chaque périphérique:

/dev/cd0  /usr/home/david/cdrom cd9660 ro,noauto 0 0
/dev/cd0  /usr/home/nolwenn/cdrom cd9660 ro,noauto 0 0
/dev/cd0  /usr/home/lecid/cdrom cd9660 ro,noauto 0 0

/dev/fd0  /usr/home/david/floppy msdos rw,noauto 0 0
/dev/fd0  /usr/home/lecid/floppy msdos rw,noauto 0 0

Les Cédéroms seront automatiquement montés en cd9660, les disquettes en FAT.

Cas particuliers

Systèmes de fichiers

La commande mount charge automatiquement le module noyau nécessaire au système de fichier. Mais cette action de mount n'est possible qu'en super utilisateur. Pour monter en utilisateur, il faut charger les modules nécessaires au boot ou inclure les systèmes de fichiers dans un noyau personnalisé. Par exemple pour les CD, il faut inclure cd9660.ko voir même udf.ko. Les systèmes inclus au noyau GENERIC diffèrent suivant les versions de FreeBSD.

Les clefs USB

Ces périphériques sont détectés par le système lors de leur introduction, consultez la console d'évènement pour les reconnaître.
- Généralement, les périphériques de stockage USB sont reconnus comme des disques SCSI: da[n]. -
N'étant pas branchés au démarrage du système, il ne sont pas présent dans /dev/ et ne peuvent donc pas être déclarés dans /etc/devfs.conf comme précédemment.
Lorsqu'ils sont détectés, le sytème doit en créer les entrées. Définissez les droits requis par leurs utilisateurs en ajoutant une règle à /etc/devfs.rules:

[usb_key=1]
add path 'da2*' mode 0660 user root group cdrom

Si, vous n'avez aucun véritable disque SCSI dans la station, utilisez da*.
Et, comme précédemment, précisons dans /etc/fstab:

/dev/da2s1   /usr/home/david/photo    msdos    ro,noauto    0 0
/dev/da2s1   /usr/home/nolwenn/photo  msdos    ro,noauto    0 0
/dev/da2s1   /usr/home/Joueur/photo   msdos    ro,noauto    0 0

Ici, mon appareil photo numérique (reconnu comme /dev/da2s1), par exemple, sera monté automatiquement dans ~/photo, avec les même droits que cdrom.

Les graveurs

Pour utiliser cdrecord vous avez certainement associé un pilote périphérique SCSI («cd[n]») à votre lecteur de cédérom, même s'il ne l'est pas.
Aussi, considerez, outre ce lecteur, d'autres périphériques supplémentaires à considérer: «pass[n]».

Ajoutez les entrées nécessaires au fichier «/etc/devfs.conf».

Utilisation

commande simple

Il suffit d'utiliser désormais la commande «mount»:

$ mount ~/cdrom
$ mount ~/floppy

Interfaces graphiques

Ces interfaces prĂ©sentant des icĂ´nes pour monter ces pĂ©riphĂ©riques, cliquez ! Sinon, crĂ©ez des icĂ´nes qui reprĂ©sentent les commande prĂ©cĂ©dentes.

Les media virtuels

Attention ce qui suit ne fonctionne que depuis la branche 5 de FreeBSD;auparavant la procédure utilise les fonction vn et vnconfig.

Ceux sont des images de média amovibles, Cédérom (ISO) ou disquettes (flp).
Pour éviter d'avoir à les graver, FreeBSD va créer un périphérique pour les contenir.

Vous avez rĂ©cupĂ©rĂ© l'ISO de Duke Nukem 3D et vous voudriez y jouer grâce aux Ă©mulateurs, DosBox par exemple ?
Créez un périphérique (md) qui pointe sur le fichier, ou plutôt, son contenu:

   mdconfig -a -t vnode -f ~david/game/DUKE3D.ISO -u 1

Le paramètre «-u» vous permet de forcer le numéro du périphérique, ici, «md1»; pour utiliser la numérotation automatique, omettez le.

Montez le périphérique, de manière classique:

   mount -t cd9660 /dev/md1 ~/cdrom

Démontez le tout:

   mount -u ~/cdrom

Libérez le périphérique virtuel:

   mdconfig -d -u 1

Notez que certains fichiers dit «ISO» sont en fait des images faites par le logiciel Nero, dans un format un peu particulier, dit «.nrg», qui comporte une entête supplémentaire. Supprimez la:

dd if=FichierNero.nrg of=Fichier9660.iso bs=2048 skip=150

Documentation

Récupérée de « http://diablotins.org/index.php/Media_amovibles »
Projets :
Boîte à outils