SCANNER EN TANT QU'UTILISATEUR AVEC UN SCANNER SUR PORT PARALLELE
par
A  r  t  i  c  l  e  s 





Introduction
Partie 1
Partie 2
Conclusion
Retour Index
Introduction

Cet article va vous proposer la procédure nécessaire pour pouvoir scanner en tant que simple utilisateur avec un scanner sur port parallèle.
Il comporte quelques rappels sur les services sous linux. Si vous connaissez déjà tout des services, vous pouvez sauter la page correspondante (partie 1) !
La procédure décrite concerne un scanner Umax 2000P, utilisé avec une Mandrake 8.2. Elle peut être appliquée pour tout scanner sur port parallèle (en changeant simplement le backend utilisé) et sur toute distribution récente basée sur la Red Hat (Mandrake, Suse, ...).

Comment scanner en tant qu'utilisateur sous Linux avec un scanner sur port parallèle

Sous Linux, l'accès aux scanners se fait via sane (Scanner Access Now Easy), qui est l'équivalent (mais en mieux :-) ) de twain sous Windows, notamment parce qu'il est conçu pour fonctionner en réseau.

Sane se compose de deux parties : le frontend, qui est l'interface avec utilisateur, et le backend, qui est l'interface avec le scanner. Ces deux parties communiquent entre elles de manière transparente pour l'utilisateur.
Le backend implémente les fonctions de communication avec le firmware du scanner (c'est-à-dire le logiciel interne du scanner, qui permet de recevoir des commandes de l'utilisateur). Le frontend offre un accès unifié au backend.

Il existe des frontend's graphiques, comme xsane ou xscanimage, permettant l'acquisition d'image via une interface graphique. Le frontend le plus utilisé est xsane, notamment parce qu'il peut être lancé comme plugin de The Gimp, logiciel de référence de retouche d'image sous Linux. Mais il en existe d'autres, vous en trouverez la description sur ce site.

Le backend est propre à un modèle (ou à une famille) de scanner(s).

Il existe un backend particulier, appelé net , qui permet l'acquisition via le réseau. Nous en parlerons plus loin.

Rappels sur l'accès au matériel sous linux

Sous linux, l'accès au matériel nécessite les droits d'administrateur (droit de root). En effet, si l'accès au matériel était possible en tant qu'utilisateur, tous les mécanismes de protection du système pourraient être outrepassés (par exemple, écriture directe sur le disque dur). De ce fait, le système ne serait plus sûr !

Ces restrictions sur l'accès au matériel ont pour conséquence de nécessiter les droits de root pour accéder au port parallèle. Cette situation est inacceptable dans un système de type linux où justement la fiabilité du système est liée (entre autres) à une séparation des droits des utilisateurs et de l'administrateur de la machine.

Mais il y a des solutions : la première qui vient à l'esprit est de donner les droits root au programme sane lui-même, via le bit suid.

Cette solution est à exclure car tout programme exécuté avec le bit suid s'exécute avec les droits de root est constitue donc une faille potentielle de sécurité.

La solution à préférer est celle consistant à scanner via l'interface réseau (avec le backend net ).