4. Partager des imprimantes avec des PC sous Windows

4.1. Les bases du partage

Figure 3. Partage d'imprimante

Partage d'imprimante

Samba utilise les démons nmbd et smbd pour le partage de fichiers et d'imprimantes avec des PC sous Windows. nmbd fonctionne comme un service de nommage Windows, en diffusant le nom de votre ordinateur aux autres PC sous Windows du réseau local. smbd accepte les demandes de fichiers et d'impression en provenance de machines sous Windows (cf. figure 3, « Partage d'imprimante »).

Vous aurez besoin de télécharger et d'installer sous Windows les pilotes des imprimantes que vous partagerez sous Linux. Vous pourrez en général trouver ces pilotes sur les sites web de leurs constructeurs.

4.2. Configuration de Samba

Si vous autorisez un accès anonyme à votre imprimante, vous devrez créer un compte utilisateur pour les impressions à distance :

/usr/sbin/adduser --system --disabled-password smbprint

Cette commande ajoute un utilisateur appelé smbprint sur votre système. Vérifiez qu'il y a assez d'espace disque dans /home/smbprint, le répertoire personnel de l'utilisateur smbprint pour stocker les fichiers en attente d'impression. Vérifiez que l'utilisateur smbprint ne dispose pas des droits de lecture ou de modification sur les fichiers et les répertoires sensibles. Si vous avez configuré CUPS pour restreindre l'impression à certains utilisateurs sur votre système, vous devrez autoriser l'utilisateur smbprint à accéder aux imprimantes que vous voulez partager.

Le fichier de configuration de Samba est /etc/samba/smb.conf. Ce qui suit est un exemple de configuration permettant d'utiliser CUPS avec l'utilisateur smbprint :

[global]
 printcap name = cups  
 printing = cups   
 security = share

[printers]   
 browseable = yes   
 printable = yes   
 public = yes   
 create mode = 0700   
 guest only = yes   
 use client driver = yes
 guest account = smbprint   
 path = /home/smbprint   

Veuillez noter que cette configuration va autoriser l'impression par toute personne pouvant établir une connexion réseau à votre ordinateur, ce qui n'est pas recommandé pour des machines situées sur des réseaux non sûrs. Ce qui est par exemple le cas des ordinateurs reliés directement à internet. Si vous devez mettre en place un contrôle d'accès, mettez security = user ou security = domain et lisez les pages de manuel de Samba pour de plus amples informations.

Une fois que vous aurez ajouté les réglages ci-dessus à votre fichier de configuration Samba, vous devez redémarrer Samba avec la commande :

/etc/init.d/samba restart

4.3. Configuration de CUPS

Les pilotes d'imprimante Windows formatent leur sortie pour l'imprimante avant de l'envoyer au travers du réseau. Vous devrez configurer CUPS pour accepter la sortie pré-formatée en enlevant dé-commentant[1] la ligne ci-dessous du fichier /etc/cups/mime.convs :

application/octet-stream   application/vnd.cups-raw   0   -

Vous devrez aussi dé-commenter la ligne ci-dessous dans /etc/cups/mime.types :

application/octet-stream

Maintenant, vous devez configurer CUPS pour autoriser les connexions en provenance des autres machines du réseau. Ajoutez les lignes ci-dessous au fichier /etc/cups/cupsd.conf :

<Location /printers>
 AuthType None
 Order Deny,Allow
 Deny From None
 Allow From All
</Location>

Comme dans la configuration de Samba, cette configuration autorise n'importe quelle machine à se connecter à vos imprimantes et n'est pas recommandée sur des réseaux non sécurisés. Pour apprendre comment configurer le contrôle d'accès de vos imprimantes, lisez la page de manuel du fichier cupsd.conf et la documentation de CUPS.

Finalement, redémarrez CUPS avec la commande suivante :

/etc/init.d/cupsys restart

Votre imprimante sous Linux devrait désormais être accessible par les PC sous Windows de votre réseau local. Suivez les étapes habituelles de configuration d'une imprimante réseau sur vos machines sous Windows et n'oubliez pas d'imprimer une page de test.



[1] C'est-à-dire en retirant le caractère dièse (« # ») en début de ligne.