CUPS / Partage d'imprimantes – ArchWiki – Serveur d’impression
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.
Sommaire
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
Où 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.
- 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é
à Oui
et 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
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
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
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