Serveur d'impression

CUPS / Partage d'imprimantes – ArchWiki – Serveur d’impression

Le 28 juin 2019 - 8 minutes de lecture

Cet article contient des instructions sur le partage d'imprimantes entre systèmes, que ce soit entre deux systèmes GNU / Linux ou entre un système GNU / Linux et Microsoft Windows.

Création de classe pour plusieurs imprimantes

Dans CUPS, une classe est un groupe d'imprimantes qui apparaît aux clients comme une seule imprimante. Lorsqu'un client choisit d'imprimer dans la classe, CUPS sélectionne n'importe quelle imprimante du groupe pour accepter le travail d'impression. Cela peut être particulièrement utile lorsqu'une imprimante de la classe doit être supprimée. S'il est exclu de la classe, les utilisateurs finaux ne remarqueront aucun changement car le travail d'impression sera mis en file d'attente sur une autre imprimante de la classe. La création et la gestion de classes peuvent être effectuées à partir de l'interface graphique Web de CUPS.

Entre les systèmes GNU / Linux

Le serveur peut être configuré à l'aide de l'interface Web ou en modifiant manuellement /etc/cups/cupsd.conf.
Pour configurer le client, voir CUPS.

Utiliser l'interface web

Ouvrez l'interface Web sur le serveur, sélectionnez le Administration onglet, regardez sous le Serveur en-tête et activez l'option "Partager les imprimantes connectées à ce système". Enregistrez votre modification en cliquant sur le bouton Modifier les paramètres bouton. Le serveur va redémarrer automatiquement.

Pour des configurations plus complexes, vous pouvez éditer directement le /etc/cups/cupsd.conf déposer en sélectionnant Editer le fichier de configuration. Voir #Manual setup pour plus d'informations.

Installation manuelle

Sur l'ordinateur serveur (celui directement connecté à l'imprimante), autorisez l'accès au serveur en modifiant la directive d'emplacement. Par exemple:

/etc/cups/cupsd.conf

    
    
    
    Ordre permettre, refuser
    Autoriser localhost
    Autoriser 192.168.0. *

...

Assurez-vous également que le serveur écoute l'adresse IP que le client utilisera:

/etc/cups/cupsd.conf
...
Écoute : 631
...

Il existe davantage de possibilités de configuration, y compris les méthodes automatiques, décrites en détail dans Utilisation des imprimantes réseau. cupsd.conf (5).

Après toute modification, redémarrez org.cups.cupsd.service.

Si CUPS est démarré à l’aide de l’activation de socket, créez un extrait de code pour org.cups.cupsd.socket de sorte que l'activation de socket fonctionne également pour les connexions à distance:

/etc/systemd/system/org.cups.cupsd.socket.d/override.conf
[Socket]



ListenStream = 631

Activation de la navigation

Pour activer la navigation (découverte d'imprimantes partagées), Avahi doit être installé et en cours d'exécution sur le serveur.
Si vous n'avez pas besoin de rechercher des imprimantes, Avahi n'est requis ni sur le serveur ni sur le client.

Pour activer la navigation, sélectionnez soit Partager les imprimantes connectées à ce système dans l'interface Web, ou activez manuellement la navigation:

/etc/cups/cupsd.conf
...
Navigation sur
...

et redémarrer org.cups.cupsd.service.

Notez que "naviguer" sur le serveur d'impression est différent de "naviguer" sur un hôte distant en réseau. Sur le serveur d'impression, cupsd fournit le support du protocole DNS-SD que le avahi-daemon émissions. le tasses feuilletées le service n'est pas nécessaire sur le serveur d'impression, sauf si vous diffusez également l'ancien protocole CUPS ou si le serveur d'impression "navigue" également vers d'autres imprimantes en réseau. Sur l’hôte distant en réseau, le tasses feuilletées le service est Champs obligatoires "parcourir" les diffusions réseau des services d'impression et exécuter tasses feuilletées sera également automatiquement commencer cupsd.

le org.cups.cupsd.service Le service sera automatiquement lancé lorsqu’une imprimante USB est branchée. Toutefois, cela peut ne pas être le cas pour d’autres types de connexion. Si cupsd ne fonctionne pas, avahi-daemon ne diffuse pas les services d'impression, donc dans ce cas, le fichier de service de l'unité systemd doit être modifié pour pouvoir démarrer au démarrage, puis le service doit à nouveau être "activé / installé" avec la nouvelle dépendance. Pour ce faire, éditez le fichier de service [Install] section pour ajouter un WantedBy = default.target dépendance, puis activez et démarrez le org.cups.cupsd.service un service.

Entre GNU / Linux et Windows

Serveur Linux – client Windows

Le partage vers les clients Windows peut être réalisé en utilisant #Sharing via IPP ou #Sharing via Samba.

Après avoir configuré le serveur, installez les pilotes d’imprimante natifs de votre imprimante sur un ordinateur Windows. Si la file d’impression du serveur CUPS est configurée pour utiliser ses propres pilotes d’imprimante au lieu de brut file d'attente, vous pouvez simplement sélectionner un pilote d'imprimante postscript générique pour le client Windows (par exemple, "HP Color LaserJet 8500 PS" ou "Xerox DocuTech 135 PS2" ou "pilote Microsoft PS Class").

Partage via IPP

Le protocole d'impression Internet est une norme largement prise en charge parmi les systèmes d'exploitation et facile à configurer. Il comporte la redirection de port, la tunnelisation, etc.

Remarque: Vous devrez peut-être ajouter Internet Printing Client à Windows (Panneau de configuration> Programmes> Activer ou désactiver des fonctionnalités Windows> Services d'impression et de documentation)

Commencez par configurer le serveur comme décrit dans la section #Entre les systèmes GNU / Linux.

Sur l'ordinateur Windows, allez à Panneau de configuration> Périphériques et imprimantes et choisissez "Ajouter une imprimante". Si sous Windows 10, cliquez sur "L'imprimante que je veux n'est pas répertoriée". Ensuite, choisissez "Sélectionnez une imprimante partagée par son nom" et tapez l'emplacement de l'imprimante:

http: //nom d'hôte: 631 / imprimantes /Printer_Name

nom d'hôte est le nom d'hôte ou l'adresse IP du serveur GNU / Linux et Printer_Name est le nom de la file d'attente d'impression à laquelle être connecté. Vous pouvez également utiliser le nom de domaine complet du serveur, le cas échéant, mais vous devrez peut-être définir ServerAlias ​​my.fully.qualified.domain.name dans /etc/cups/cupsd.conf pour que cela fonctionne.

Remarque:

  • La boîte de dialogue "Ajouter une imprimante" de Windows suggère le format http: //nom_ordinateur/printers/nom_prin/.printer, qu'il n'acceptera pas. Utilisez plutôt la syntaxe suggérée ci-dessus.
  • Si vous utilisez un proxy, vérifiez soigneusement tout proxy utilisé. les exclusions. Un paramètre incorrect peut vous empêcher d'ajouter une imprimante jusqu'au prochain redémarrage, même si vous désactivez ensuite le proxy (au moins sous Windows 7).

Partage via Samba

Samba est une implémentation des protocoles de partage de fichiers et d’imprimantes Windows, même les plus anciens.

Notez que le partage d’imprimantes utilisant Samba est généralement Plus difficile configurer et maintenir.

Pour configurer Samba sur le serveur Linux, modifiez /etc/samba/smb.conf fichier pour permettre l'accès aux imprimantes. Fichier smb.conf peut ressembler à quelque chose comme ça:

/etc/samba/smb.conf
[global]



groupe de travail = groupe de travail
chaîne du serveur = serveur d'impression Linux Arch
sécurité = utilisateur
impression = CUPS

[printers]
    comment = toutes les imprimantes
    chemin = / var / spool / samba
    consultable = oui
    # pour permettre à l'utilisateur 'compte invité' pour imprimer.
    invité ok = non
    accessible en écriture = non
    imprimable = oui
    Mode création = 0700
    liste d'écriture = root @adm @wheel ton nom d'utilisateur

Cela devrait suffire à partager l’imprimante, mais l’ajout d’une entrée individuelle à l’imprimante peut être souhaitable:

/etc/samba/smb.conf
[ML1250]
    
    
    
    comment = Imprimante laser Samsung ML-1250
    imprimante = ml1250
    chemin = / var / spool / samba
    impression = tasses
    imprimable = oui
    pilote client utilisateur = oui
    # pour permettre à l'utilisateur 'compte invité' pour imprimer.
    invité ok = non
    accessible en écriture = non
    liste d'écriture = root @adm @wheel ton nom d'utilisateur
    utilisateurs valides = root @adm @wheel ton nom d'utilisateur

Veuillez noter que cela suppose que la configuration a été effectuée de sorte que les utilisateurs doivent disposer d'un compte valide pour accéder à l'imprimante. Pour avoir une imprimante publique, définissez ok invité à Ouiet retirez le utilisateurs valides ligne. Pour ajouter des comptes, configurez un compte GNU / Linux normal, puis définissez un mot de passe Samba sur le serveur. Voir Samba # Gestion des utilisateurs.

Après cela, redémarrez smb.service et nmb.service.

Consultez la documentation de Samba Configuration de Samba en tant que serveur d'impression pour plus de détails.

Serveur Windows – client Linux

Merge-arrows-2.png "src =" http://wiki.archlinux.org/images/c/c9/Merge-arrows-2.png "width =" 48 "height =" 48 "/><b>Cet article ou cette section est candidat à la fusion avec CUPS # Network_2.</b><img alt=

Remarques: Ce n'est pas une section sur le partage d'une imprimante à partir de Linux, il s'agit uniquement de se connecter à un serveur d'impression (qui exécute Windows). (Discuter dans Talk: N ° de partage CUPS / Printer)
Attention: Tous les caractères spéciaux figurant dans les URI de l’imprimante doivent être correctement cités. Sinon, si le nom de votre imprimante Windows ou vos mots de passe utilisateurs comportent des espaces, CUPS émettra une erreur. lpadmin: mauvais périphérique-uri Erreur.

Par exemple, smb: // BEN-DESKTOP / HP Color LaserJet série CP1510 PCL6 devient smb: // BEN-DESKTOP / HP% 20Color% 20LaserJet% 20CP1510% 20series% 20PCL6.

Cette chaîne de résultat peut être obtenue en exécutant la commande suivante:

$ python -c 'à partir de la citation d'importation urllib.parse; print ("smb: //" + citation ("BEN-DESKTOP / HP Color LaserJet série CP1510 PCL6")) '

Partage via LPD

Windows 7, 8 et 10 ont un serveur LPD intégré – son utilisation sera probablement l’approche la plus simple car elle ne nécessite pas non plus l’installation de Samba sur le client, ni une configuration lourde sur le serveur. Il peut être activé dans le Panneau de contrôle sous Programmes -> Activer les fonctions Windows dans la section Services d'impression. L'imprimante doit avoir partagé activé dans ses propriétés. Utilisez un nom de partage sans caractères spéciaux tels que des espaces, des virgules, etc.

Ensuite, l’imprimante peut être ajoutée dans CUPS, en choisissant le protocole LPD. L'adresse de l'imprimante ressemblera à ceci:

lpd: // windowspc / printersharename

Avant d’ajouter l’imprimante, vous devrez probablement installer un pilote d’imprimante approprié en fonction du modèle de votre imprimante. Les pilotes PostScript ou RAW génériques peuvent également fonctionner.

Partage via IPP

Comme ci-dessus, IPP est également le préféré protocole de partage d'imprimante bien qu'il ne fonctionne qu'avec les versions de Windows Server. Les versions de Windows Server (par exemple, Server 2016) incluent le support IPP (rôle "Print and Document Services", service "Impression Internet"). Les versions client (Windows 10, par exemple) incluent uniquement le client IPP et ne supporte pas le partage via IPP.

Partage via Samba

UNE manière beaucoup plus simple utilise le partage d'imprimante natif de Windows via Samba. Il n’ya presque aucune configuration nécessaire, et tout cela peut être fait à partir du backend de CUPS. Comme indiqué ci-dessus, s'il existe des problèmes, la raison en est principalement liée aux problèmes d'authentification et aux restrictions d'accès de Windows.

Côté serveur, activez le partage pour l’imprimante de votre choix et assurez-vous que l’utilisateur de la machine cliente a le droit d’accéder à l’imprimante.

La section suivante explique comment configurer le client, en supposant que les deux démons (cupsd et smbd) sont en cours d'exécution.

Configuration à l'aide de l'interface Web

Tango-inexactes.png "src =" http://wiki.archlinux.org/images/d/d6/Tango-inaccurate.png "width =" 48 "height =" 48 "/><b>L'exactitude factuelle de cet article ou de cette section est contestée.</b><img alt=

Le backend Samba CUPS est activé par défaut si, pour une raison quelconque, il ne l’active pas en entrant la commande suivante et en redémarrant CUPS.

# ln -s $ (quel smbspool) / usr / lib / cups / backend / smb

Ensuite, connectez-vous simplement sur l'interface Web CUPS et choisissez d'ajouter une nouvelle imprimante. En tant que périphérique, choisissez "Imprimante Windows via SAMBA".

Pour l'emplacement de l'appareil, entrez:

smb: // nom d'utilisateur: mot de passe @ nomhôte / nom_imprimante

Ou sans mot de passe:

smb: // nomutilisateur @ nomhôte / nom_imprimante

Assurez-vous que l'utilisateur a effectivement accès à l'imprimante sur l'ordinateur Windows et sélectionnez les pilotes appropriés. Si l'ordinateur est situé sur un domaine, assurez-vous que l'URI inclut le domaine:

smb: // nom d'utilisateur: mot de passe @ domaine / nom d'hôte / nom_imprimante
Configuration manuelle

Tango-inexactes.png "src =" http://wiki.archlinux.org/images/d/d6/Tango-inaccurate.png "width =" 48 "height =" 48 "/><b>L'exactitude factuelle de cet article ou de cette section est contestée.</b><img alt=

Pour la configuration manuelle, arrêtez le démon CUPS et ajoutez votre imprimante à /etc/cups/printers.conf, qui pourrait par exemple ressembler à ceci

/etc/cups/printers.conf




AuthInfoRequired nom d'utilisateur, mot de passe
Info Mon imprimante via SAMBA
Lieu dans mon bureau
MarqueModel Samsung ML-1250 - CUPS + Gutenprint v5.2.7 # <= utilisez 'lpinfo -m' pour lister les modèles disponibles.
DeviceURI smb: // nom d'utilisateur: mot de passe @ nom_hôte / nom_imprimante # <= URI du serveur, comme décrit dans la section précédente
Etat ralenti
Type 4
Accepter Oui
Part non
Feuilles de travail aucune aucune
QuotaPeriod 0
PageLimit 0
KLimit 0
AllowUser yourusername # <= n'oubliez pas de changer cela
OpPolicy par défaut
ErrorPolicy stop-printer

Ensuite, redémarrez le démon CUPS et essayez d’imprimer une page de test.

Recherche d'URI pour les serveurs d'impression Windows

Parfois, Windows est un peu moins que futur sur les URI de périphérique exacts (emplacements de périphérique). Si vous ne parvenez pas à spécifier le bon emplacement de périphérique dans CUPS, exécutez la commande suivante pour répertorier tous les partages disponibles pour un nom d'utilisateur Windows donné:

$ smbtree -U windowsusername

Cela répertorie tous les partages disponibles pour un nom d'utilisateur Windows donné sur le sous-réseau du réseau local, à condition que Samba soit configuré et fonctionne correctement. Il devrait retourner quelque chose comme ceci:

    GROUPE DE TRAVAIL
\ REGULATOR-PC
\ REGULATOR-PC  Z
\ REGULATOR-PC  Public
\ REGULATOR-PC  print $ Pilotes d'imprimante
\ REGULATOR-PC  G
\ REGULATOR-PC  EPSON Stylus série CX8400 EPSON Stylus CX8400 série

Ce qui est nécessaire ici, c'est la première partie de la dernière ligne, la ressource correspondant à la description de l'imprimante. Donc, pour imprimer sur l’imprimante EPSON Stylus, il faut entrer:

smb: // nom d'utilisateur: mot de passe @ REGULATOR-PC / EPSON% 20Stylus% 20CX8400% 20Series

comme l'URI dans CUPS.

Administration à distance

Une fois que le serveur est configuré comme décrit dans #Entre les systèmes GNU / Linux, il peut également être configuré de manière à pouvoir être administré à distance. Ajouter les hôtes autorisés au bloquer /etc/cups/cupsd.conf, en utilisant la même syntaxe que celle décrite dans #Manual setup. Notez que trois niveaux d'accès peuvent être accordés:

                                            #accès au serveur
	#accès aux pages d'administration
	#accès aux fichiers de configuration

Pour donner aux hôtes distants l’accès à l’un de ces niveaux, ajoutez un Permettre déclaration à la section de ce niveau. Un Permettre déclaration peut prendre une ou plusieurs des formes énumérées ci-dessous:

Autoriser de tous
Autoriser depuis host.domain.com
Autoriser à partir de * .domain.com
Autoriser depuis l'adresse ip
Autoriser depuis adresse IP / masque de réseau
Autoriser à partir de @LOCAL

Les déclarations de refus peuvent également être utilisées. Par exemple, pour donner un accès complet à tous les hôtes de vos interfaces réseau locales, éditez /etc/cups/cupsd.conf inclure ceci:

# Restreindre l'accès au serveur ...
# Par défaut, seules les connexions localhost sont possibles.

   Ordre permettre, refuser
   Autoriser à partir de @LOCAL








# Restreindre l'accès aux pages d'administration ...

   Ordre permettre, refuser
   Autoriser à partir de @LOCAL








# Restreindre l'accès aux fichiers de configuration ...

   AuthType Basic
   Requiert l'utilisateur @SYSTEM
   Ordre permettre, refuser
   Autoriser à partir de @LOCAL

Vous devrez peut-être également désactiver la configuration HTTPS lorsque vous utilisez le certificat auto-signé par défaut généré par CUPS:

DefaultEncryption IfRequested

Ceci devrait éviter l'erreur suivante: 426 – Mise à niveau requise lors de l'utilisation de l'interface Web CUPS à partir d'un ordinateur distant.

Kerberos

Kerberos peut être utilisé pour authentifier les utilisateurs accédant à un serveur CUPS distant. Cela suppose que votre machine a un keytab et qu'elle aura besoin d'un ticket pour "HTTP". À la place d'utiliser http: // localhost: 631 Tu dois utiliser https://host.example.co.uk:631 – le cryptage est requis pour l'authentification (donc https) et le nom d'hôte complet est nécessaire pour que Kerberos / Negotiate puisse fonctionner. De plus, le serveur doit être configuré dans /etc/cups/cupsd.conf utiliser un DefaultAuthType de Négocier.

Si vous utilisez le support Winbind NSS de Samba, vous pouvez ajouter un nom de groupe AD à /etc/cups/cups-files.conf – dans l'exemple suivant administrateur système pourrait être un groupe AD:

Racine système SystemGroup sysadmin

Dépannage

Voir CUPS / Troubleshooting pour des conseils de dépannage généraux.

Impossible d'imprimer avec les applications GTK

Si vous obtenez un échec de l'obtention d'informations sur l'imprimante Lorsque vous essayez d’imprimer à partir d’applications GTK, ajoutez cette ligne à votre / etc / hosts:

serverip some.name.org ServersHostname

Erreurs de permission sous Windows

Certains utilisateurs fixes NT_STATUS_ACCESS_DENIED (Clients Windows) en utilisant une syntaxe légèrement différente:

smb: // groupe de travail / nom d'utilisateur: mot de passe @ nom_hôte / nom_imprimante

Autres systèmes d'exploitation

Vous trouverez plus d’informations sur l’interfaçage de CUPS avec d’autres systèmes d’impression dans le manuel CUPS, par exemple. sur http: // localhost: 631 / help / network.html.


Commentaires

Laisser un commentaire

Votre commentaire sera révisé par les administrateurs si besoin.