Chrooter apache
Matériel
Ajout disque dur
Ajout carte
Audit des disques durs
Gestion des peripheriques
Disquette d'installation
Ajout d'un scanner
Astuces
Ajout d'une imprimante
Réseau
Configuration reseau
Dns
Serveur cvs
Proxy squid 
Installation serveur ftp
Installation qmail 
Installation serveur courrier sous debian
Outil TCP/IP 
Le serveur samba
Connexion a distance securisee
Client/serveur vnc
Configurer apache
Dyndns
Installer un LAMP sous mandriva
Sécurité
Chiffrer un fichier/dossier
Securiser son poste
Mur pare feu pas a pas
Authentification ht-access
Surveillance de serveur CACTI
Snort
Snort-inline
Securiser Apache avec mod_security
Filtrage squid/squidguard/dansguardian
Auditer son site web
Sécuriser son linux
Installer un Lamp avec ssl
Contrer les scans de ports
Traitement anti-spam
Installer/Utiliser tripwire
Faire des sauvegardes incrémentales
Rsync
Nessus
Divers
Elisa, le multimédia facile
Utilisation de lilo
Les commandes Linux
Le multi-tache
Le crontab
Exploration de la configuration
Quotas
Messagerie
Installer une application
Debugger ses applications
Le format RPM
Mise a jour du noyau
Qemu
Tour d'horizon des principaux p2p
Récupération du système
Bips d'un pc
Astuces windows
Table Ascii
Lamerland
Conversion de fichiers musicaux
Compiler ses rpms
Graver en ligne de commande
Graver un fichier avi pour un dvd de salon
Récupérer des fichiers effacés
Liens
hakin9
Secureroot.com
Hackerthreads.org
Defcon
Hackerlounge
Les derniers exploits
Tous les codes sources
Securite sous Linux
Les logiciels libres quotidiens
Ezine divers
Madchat
Textes divers
Archives
 
Traductions LG
Toutes les traductions
Traductions Phrack
Toutes les traductions

Il y a actuellement 7 visiteurs connectés sur le site !

Google

Gestion des peripheriques
Gestion des peripheriques

 

Introduction
Fichiers spéciaux
Identifier le nom du périphérique à monter
Montage manuel du périphérique en ligne de commande
Autoriser un simple utilisateur à monter et démonter des périphériques
Remarque sur le démontage d’une clé usb
Ajouter un icône de périphérique dans KDE pour les monter et démonter facilement
Montage de périphériques avec pmount
Montage automatique des périphériques avec udev sous kde 3.4 ou supérieur
Configurer udev pour renommer ses périphériques
Gérer les droits sur vos périphériques avec udev
Gérer les droits des périphériques montés sous KDE
Autres sources d’informations

 

Introduction

Revenons sur le fonctionnement des périphériques au sein d'un ordinateur. Le principe est généralement le meme sur tous les ordinateurs.

Les périphériques sont reliés à un controleur, par exemple un controleur IDE pour les disques IDE, un controleur SCSI pour les disques, lecteurs et autres scanners SCSI, ou encore un controleur USB. Un controleur sait généralement controler plusieurs périphériques qui lui sont rattachés.
Le controleur communique avec le micro-processeur et la mémoire à l'aide d'un bus (bus de commandes et bus de données).
Coté Unix, le controleur et ses périphériques sont gérés à l'aide de pilotes (un pilote pour le controleur, et un ou plusieurs pilotes pour les périphériques qui y sont rattachés, exemple un pilote pour le controleur SCSI puis un pilote pour les disques, un autre pour les scanners, et encore un autre pour un cdrom). Le pilote est souvent un module complémentaire du noyau, livré par le constructeur ou déjà présent.
Le périphériques sont vus comme des fichiers. Du coup, les processus accédent aux périphériques par l'intermédiaire de ces fichiers à l'aide des primitives en langace C dont le code est dans le noyau UNIX. Le processus doit d'abord ouvrir le fichier spécial du périphérique (primitive open), puis lire (read) ou écrire (write) des données de ou vers le périphérique comme il le ferait avec un fichier normal. Ces opérations de lecture/écriture sont ensuite interprétées par le pilote du périphérique.

Fichiers speciaux

Les fichiers spéciaux périphériques sont par convention placés dans le répertoire /dev et disposent, comme n'importe quel autre fichier, d'un inode unique. On peut donc connaitre ses attributs à l'aide de la commande ls -l.
Le premier caractère identifie le type de périphérique :
* c : type de périphérique en mode caractère
* b : type de périphérique en mode bloc
Ces modes différencient le type d'échange de données entre le module de gestion de fichiers et le pilote du périphérique. En mode caractère, il n'y a pas d'utilisation des buffers du système et l'échange se fait octet par octet.
Les deux autres attributs essentiels d'un fichier périphérique sont la paire d'information qu'on trouve à la place de la taille du fichier : le numéro ? majeur ? et le numéro ? mineur ?.
Le numéro majeur identifie le pilote et par conséquence le controleur de périphérique.
Le numéro mineur identifie généralement le périphérique mais il peut aussi désigner une particularité du périphérique, comme la partition d'un disque, un emplacement précis, le numéro de carte (en cas de présence de plusieurs cartes controleurs identiques, de plusieurs cartes son, etc), ...
br> Il existe des périphériques particuliers dont les noms sont communs à tous les systémes UNIX :
Fichier spécial Signification
/dev/mem La mémoire physique
/dev/kmem La mémoire virtuelle du noyau
/dev/console La console maitre (/dev/syscon)
/dev/tty L'entrée/sortie standard du processus en cours
/dev/mouse La souris, souvent un raccourci
/dev/swap Le disque swap primaire
/dev/null La poubelle UNIX. On peut y écrire. La lecture provoque un EOF
/dev/root système de fichier spécial root
/dev/dump Le disque dans lequel le noyau fait son dump en cas de panique système


Pour les autres périphériques on trouve diverses nomenclatures suivant le système UNIX :

Fichier spécial Signification
/dev/rmt0 Lecteur de bande magn?tique ou de cartouche en mode caractère
/dev/fd0 Lecteur de disquettes en mode bloc
/dev/tty1 Liaison s?rie
/dev/tty[p-s]1 Pseudo-terminal pour les connexions réseau (telnet) sous BSD
/dev/pts/1 Idem mais pour Unix SYSTEM V (et linux)
/dev/lp0 Une imprimante paralléle
/dev/disk0d Partition disque en mode bloc BSD
/dev/rdisk0d meme partition en mode caractère
/dev/dsk/c1d0s2 Partition disque en mode bloc SYSTEM V
/dev/rdsk/c1d0s2 meme partition en mode caractère


Sous Linux, on trouve les périphériques suivants :

Fichier spécial Signification
/dev/eth0 Premiére carte Ethernet (sur les Linux anciens)
/dev/lp0 Imprimante paralléle
/dev/ttyS0 Port COM1
/dev/ttyS1 Port COM2
/dev/psaux Port PS2 pour la souris
/dev/sound Carte son
/dev/dsp controleur DSP de la carte son
/dev/sequencer Séquenceur MIDI de la carte son
/dev/ide/* Les périphériques IDE
/dev/scsi/* Les périphériques SCSI
/dev/usb/* Les périphériques USB

On crée un périphérique avec la commande mknod :
mknod /dev/peripherique type majeur mineur
On trouve aussi la commande makedev qui permet de rajouter un nouveau périphérique.
Sous Linux, on trouve la commande scsiinfo qui donnes des informations sur le bus SCSI, la commande hdparm qui donne des informations sur les disques IDE, la commande lspci qui donne des infos sur le bus PCI (cartes connectées, ponts, pilotes, ...).

Les pilotes sont soit intégrés au noyau ? en dur ? ? la compilation de celui-ci, soit compilés sous forme de modules complémentaires chargés dynamiquement ou à la demande.
Suivant les distributions le répertoire /dev est parfois un système de fichiers dynamique (devfs) donc le contenu varie suivant la présence ou non des périphériques. C'est ainsi que la création du fichier périphérique est prise en charge par le pilote de périphérique et un démon particulier devfsd. Cela permet par exemple le hotplug, comme le branchement de périphériques USB à la demande : le noyau le détecte, charge le bon pilote, et ce pilote crée dynamiquement le fichier périphérique.

Parfois seule une partie du répertoire /dev est dynamique comme le support de l'USB avec le système de fichier usbdevfs.

Identifier le nom du périphérique à monter

La consultation des logs permet de connaître le nom actuel du périphérique lors de son insertion :
# tail -f /var/log/syslog
Aug 16 17:33:45 localhost kernel: sda: assuming drive cache: write through
Aug 16 17:33:45 localhost kernel: sda: sda1

Nous voyons donc qu’il s’agit du périphérique « sda ».
Une autre méthode pour retrouver le nom d’un périphérique qu’on vient d’insérer est de regarder le contenu du dossier « /sys/block/ ». Lors de l’insertion du périphérique, un nouveau dossier correspondant au nom du périphérique sera créé (ex : sda).
Ce nouveau périphérique (ex : sda) sera créé également dans « /dev ».
Remarque : Une fois le périphérique identifié, il est possible de connaître ses différentes partitions avec la commande « fdisk -l /dev/sda » ou la commande « cat /proc/partitions »

Montage manuel du périphérique en ligne de commande

Avant de monter un périphérique, il faut commencer par créer le répertoire devant accueillir la partition à monter. Exemple :

# mkdir /media/sda1

Voici un exemple de commande permettant de monter la partition « sda1 » du périphérique « /dev/sda1 » sur le dossier « /media/sda1 » :

# mount /dev/sda1 /media/sda1

Et voici la commande permettant de démonter ce périphérique :

# umount /dev/sda1

ou :

# umount /media/sda1

Remarque : Il faut obligatoirement être root pour effectuer les opérations précédentes

Autoriser un simple utilisateur à monter et démonter des périphériques

Pour autoriser un simple utilisateur à monter et démonter des périphériques, il faut ajouter la ligne suivante dans le fichier « /etc/fstab » :

/dev/sda1 /media/sda1 vfat rw,auto,user 0 0

Remarque : L’option « user » autorise les utilisateurs à monter et démonter ce périphérique.

Une fois le fichier « /etc/fstab » correctement configuré, un simple utilisateur peut monter une partition avec la commande :

$ mount /dev/sda1

ou la commande :

$ mount /media/sda1

Et la démonter avec cette commande :

$ umount /dev/sda1

ou cette commande :

$ umount /media/sda1

Remarque sur le démontage d’une clé usb

Lorsque des données sont écrites sur une clé USB, celles-ci ne sont pas immédiatement écrites mais simplement stockées dans une zone mémoire.
L’écriture réelle des données est effectuée seulement lors du démontage de la clé USB.
C’est pour cela qu’il est obligatoire de démonter proprement une clé USB avant de la retirer de son emplacement sinon les fichiers ne seront pas correctement enregistrés.
Cela permet d’augmenter la durée de vie des clés USB, car le nombre d’écritures est limité.

Ajouter un icône de périphérique dans KDE pour les monter et démonter facilement

L’ajout d’un icône de périphérique, permet de monter et démonter des périphériques sans saisir de ligne de commande.
Pour créer un icône de périphérique, il faut commencer par configurer « /etc/fstab » comme indiqué précédemment et ensuite effectuer les opérations suivantes :
- Clic-droit sur le fond du bureau ou dans un dossier sous Konqueror
- Menu « Créer un nouveau / Lien vers un périphérique » et choisir votre périphérique
- Dans l’onglet « Général » mettre le nom de votre périphérique
- Dans l’onglet « Périphérique », sélectionner la ligne de votre « /etc/fstab » correspondant à votre périphérique.

Une fois l’icône créé, un clic droit sur celui-ci permettra de monter ou démonter la partition.

Montage de périphériques avec pmount

La commande « pmount » permet de simplifier le montage et le démontage de périphériques amovibles. Elle offre plusieurs avantages par rapport a la commande « mount » :
- Il n’est plus nécessaire de configurer le fichier « /etc/fstab » pour les périphériques amovibles et si des entrées existent, il est même conseillé de les supprimer.
- Un simple utilisateur peut monter et démonter des périphériques à condition qu’il appartienne au groupe « plugdev ». - Le point de montage dans « /media » est créé et supprimé automatiquement lors du montage et du démontage du périphérique.
Si ce n’est pas déjà fait, il faut commencer par installer le paquet « pmount » qui est désormais installé en standard avec KDE sous Debian Testing et Sid.

La commande suivante permet de monter le périphérique :

$ pmount /dev/NomDuPeripherique
ou même plus simplement :

$ pmount NomDuPeripherique

La commande suivante permet de démonter le périphérique :

$ pumount NomDuPeripherique

Montage automatique des périphériques avec udev sous kde 3.4 ou supérieur

Grâce à udev et pmount et depuis la version 3.4 de kde, lors de la connexion d’un nouveau périphérique, plusieurs opérations sont effectuées automatiquement :
- Un icône apparaît sur le bureau lors de la connexion et disparaît lors de la déconnexion du périphérique. Si ce n’est pas le cas, il faut vérifier dans la configuration du bureau et dans la section « Comportement » et dans l’onglet « Icônes de périphériques » que les icônes sont biens affichés.
- Une fenêtre s’ouvre demandant quelle opération il faut effectuer. Si ce n’est pas le cas, il faut aller dans « Centre de configuration de KDE / Périphériques / Support de stockage », sélectionner le type de périphérique à configurer et déterminer une action.
- Le montage du périphérique est réalisé automatiquement dans le dossier « /Media ».

Remarque : Le nom de l’icône qui apparaît sur le bureau est déterminé automatiquement par KDE et à priori, il n’est pas possible de le changer (en tout cas, je n’ai pas trouvé).

Configurer udev pour renommer ses périphériques

udev s’occupe entre autre de la gestion et la création des noms des périphériques dans « /dev ». Il permet en particulier de renommer ses périphériques usb automatiquement en fonction des caractéristiques et des identifiants de ceux-ci. Par exemple une clé usb sera nommée /dev/cle_usb un appareil photo /dev/apareil_photo et non pas simplement /dev/sda1. Mais pour cela, il faut configurer udev comme indiqué ci-dessous.
Obtenir des informations sur votre périphérique pour l’identifier de manière unique
Une fois le nom du périphérique identifié, la commande suivante permet d’obtenir de nombreuses informations sur celui-ci :

udevinfo -a -p /sys/block/sda

Dans les nombreuses informations précédentes, il faut isoler une ligne identifiant de manière unique votre périphérique. Exemple :

SYSFS{serial}=="18113A4123115881"

Configurer udev

Une fois votre périphérique clairement identifié, il faut configurer udev, pour lui indiquer le nom que nous souhaitons désormais donner à ce périphérique. Pour cela, il faut éditer le fichier « /etc/udev/rules.d/udev.rules » et ajouter vers le début une ligne ressemblant à cela :

BUS=="usb", SYSFS{serial}=="18113A4123115881", NAME="cle_usb"

Après avoir déconnecté et reconnecté votre périphérique usb, celui-ci sera désormais renommé avec le nom indiqué ci-dessus soit « cle_usb »

Remarque : Pour que le montage manuel de vos périphériques continue à fonctionner correctement, il faudra encore modifier votre fichier « /etc/fstab » pour lui indiquer les nouveaux noms de vos périphériques. Points à vérifier si cela ne fonctionne pas correctement
- Vérifier que les paquets kdebase-kio-plugins, udev, hal et dbus-1 sont installés
- Vérifier que l’utilisateur appartient au groupe plugdev
- Vérifier que le démon dbus est bien démarré (ps aux | grep dbus)
- Vérifier que la version de votre noyau est supérieure à 2.6.13 (uname -r)
- Vérifier que votre version de KDE est supérieure ou égale à 3.4
- Vérifier que le périphérique apparaît correctement dans Konqueror à l’adresse « media :/ »

- Vous pouvez éventuellement installer le paquet « hal-device-manager » et lancer le programme du même nom pour vérifier que le périphérique apparaît correctement. Pour éviter d’installer les dépendances de gnomes, vous pouvez aussi utiliser la commande « lshal », mais le résultat est beaucoup moins lisible.

Gérer les droits sur vos périphériques avec udev

En plus de nommer vos périphériques, udev permet d’autres choses et en particulier la gestion des droits. En reprenant l’exemple précédent, il est possible d’affecter un groupe avec le paramètre « GROUP= » et un masque avec le paramètre « MODE= » à notre clé USB. Exemple :

BUS=="usb", SYSFS{serial}=="18113A4123115881", NAME="cle_usb", GROUP="tony", MODE="0770"

Voici le résultat :

# ls -la /dev/cle_usb
brwxrwx--- 1 root tony 8, 97 2007-04-07 10:08 /dev/cle_usb

Gérer les droits des périphériques montés sous KDE

Sous KDE quand une clé USB est insérée, celle-ci est montée automatiquement dans « /media » sans que celle-ci soit déclarée dans « /etc/fstab » grâce à pmount.
Si vous souhaitez maîtriser le point le montage ou la gestion des droits sur ce périphérique, vous pouvez créer une entrée dans « /etc/fstab » pour cela. Dans cet exemple, le point de montage est indiqué dans « /mnt », et grâce à « umask » et « gid », il n’y aura que les utilisateurs appartenant à « mongroup » qui auront accès à ce périphérique :
/dev/cle_usb /mnt/cle_usb vfat rw,user,noauto,umask=0007,gid=mongroup 0 0
Il ne faut pas oublier de créer manuellement le dossier qui va contenir le point de montage :
# mkdir mnt/cle_usb

Autres sources d’informations

La documentation de référence de udev : - http://www.kernel.org/pub/linux/utils/kernel/hotplug/udev.html


Sources de l'article

 

Blog
Le blog
La radio
La Radio
Boutique
La boutique du Geek
Php/Mysql
Formulaire en php
Administrer un serveur Mysql
Session en php
Gerer ses bases mysql
Les bases php
Securiser ses scripts PHP
Controler ses programmes avec RATS
Convertir une base sql en utf8
Astuces php
Le fichier php.ini
Programmation
Python rapide
Tutorial Python
Tutorial Perl
Tutorial Perl complet
Tutoriel ruby
Tutoriel C
Introduction à gawk
Filtres et utilitaires
Find
Programmation Shell
Ecriture de scripts bash
Expressions regulieres
Vi
Introduction a Javascript
Compiler avec gcc
Astuces en Bash
Cracking
Tutoriel Assembleur
Guide du cracking pour débutant
Assembleur
Manual Unpacking
Techniques de Protection
Différentes failles Web
Arp spoofing dans un réseau switché
Les intrusions
Les attaques externes
Defacage
Defacage complet
Buffer overflow
Netcat
Injection sql
Injection sql(suite)
John the Ripper
Spoofer un email
Utiliser google
La faille system
Usurper une identité
Le rooting
Shellcode sous Unix
La faille race condition
La faille xss
La faille xss (2)
Attaques sur un routeur
P2P
Azureus pas-a-pas
News
Lire les news de Linux-pour-lesnuls.com au format RSS
Distros
Gestion des paquets debian
101 commandes debian
Jeu
Webtarot
Graphisme
Effet neon dans GIMP
Effet vapeur dans GIMP
Cours fonctionnalités de GIMP
Redimentionner une image avec GIMP
Redimentionner une photo pour en faire un cadre avec gimp
Morphing avec gimp
Détourer avec gimp
Réduire le poids d'une image avec gimp
Caricature avec gimp
Humour
Ensemble
Divers