Media amovibles
Un article de Diablotins.org.
|
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
