Differences

This shows you the differences between two versions of the page.

Link to this comparison view

openbsd:cle_usb [2010/01/12 13:29] (current)
Line 1: Line 1:
 +Dans sa version 3.7, OpenBSD est installé avec un noyau generique compilé pour reconnaitre la plupart des mémoires flash usb de base!
 +
 +Il suffit de brancher la clé et d'​exécuter un petit dmesg pour voir le résultat:
 + umass0 at uhub0 port 1 configuration 1 interface 0
 + umass0: USB Mass storage, rev 2.00/2.00, addr 2
 + umass0: using SCSI over Bulk-Only
 + scsibus1 at umass0: 2 targets
 + sd0 at scsibus1 targ 1 lun 0: <​GENERIC,​ USB Mass Storage, 2.00> SCSI2 0/direct removable
 + sd0: 124MB, 124 cyl, 64 head, 32 sec, 512 bytes/sec, 255744 sec total
 +
 +On regarde la structure du disque:
 + disklabel sd0 (à remplacer par le sd fourni par la commande dmesg...)
 +               size        offset ​ fstype [fsize bsize  cpg]
 +   c:        255744 ​            ​0 ​ unused ​     0     ​0 ​     # Cyl     0 -   124*
 +   i:        255456 ​           32   ​MSDOS ​                  # Cyl     ​0*- ​  124*
 +Bon, on remarque qu'​elle n'a qu'une partition “i”, formaté en SaleFS...
 +
 +pour la monter, c'est simple:
 + #mkdir /mnt/cleusb
 + #mount -t msdos /dev/sd0i /mnt/cleusb
 +
 +Pour qu'un utilisateur puisse monter un device, il faut que le répertoire de destination lui appartienne.
 +On va pas créer un répertoire par périphérique par utilisateur!
 +Alors on modifie la table des systèmes de fichier, en ajoutant la ligne:
 + /dev/sd0i /mnt/cleusb msdos noauto,rw 0 0
 +
 +Et on utilise ce petit script tout convi, qu'on place dans /​usr/​local/​bin (avec les droits 755 pour le root):
 +Le script en question:
 +
 + #!/bin/sh
 + # Montage et démontage de systèmes de fichier
 + # Par bedis
 + # v 0.1
 +
 + if [ ! $1 ]; then
 +         echo Utilisation:​ $scriptname nom
 +        exit 1
 + fi
 +
 + scriptname=`basename $0`
 + case $scriptname in
 +        '​usermount'​)
 +                cmd='​mount'​
 +                 expl='​Montage'​
 +                ;;
 +         '​userumount'​)
 +                cmd='​umount'​
 +                expl='​Démontage'​
 +                 ;;
 +        *)
 +                echo Mauvais nom d''​appel du script...
 +                 exit 1
 +                ;;
 + esac
 +
 + for montage in '​cleusb';​ do
 +        if [ $montage = $1 ]; then
 +                echo $expl de $1
 +                 `sudo $cmd /​mnt/​cleusb`
 +        fi
 + done
 +
 +Vous le créez dans /​usr/​local/​bin/​usermount
 +Vous le passez en mode exécutable:​
 + #chmod 755 /​usr/​local/​bin/​usermount
 +Vous créez son équivalent userumount par un petit lien symbolique:
 + #ln -s /​usr/​local/​bin/​usermount /​usr/​local/​bin/​userumount
 +
 +Maintenant, reste plus qu'à modifier le fichier sudoers:
 + #visudo
 +Ajouter les lignes suivantes:
 + Cmnd_Alias ​ USERMOUNT = /​sbin/​mount,​ /​sbin/​umount
 + %users ​ ALL=(ALL)NOPASSWD:​ USERMOUNT
 +
 +Et mes utilisateurs peuvent maintenant monter et démonter une cléusb.
 +
 +Bien sûr, à adapter selon les cas.
 +Fonctionne aussi pour CDROM, disquette nfs etc...
 +
  
openbsd/cle_usb.txt · Last modified: 2010/01/12 13:29 (external edit)