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.
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 |
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.