CUPS / Condivisione distampanti – ArchWiki – Print Server

, Author

Questo articolo contiene istruzioni sulla condivisione di stampanti tra sistemi, sia tra due sistemi GNU / Linux o tra un sistema GNU / Linux e Microsoft Windows.

Summary

Creare una classe per stampanti multiple

In CUPS, una classe è un gruppo di stampanti che appare ai client come una singola stampante. Quando un cliente sceglie di stampare alla classe, CUPS seleziona qualsiasi stampante del gruppo per accettare il lavoro di stampa. Questo può essere particolarmente utile quando una stampante della classe deve essere rimossa. Se è esclusa dalla classe, gli utenti finali non noteranno alcun cambiamento perché il lavoro di stampa sarà messo in coda su un’altra stampante della classe. La creazione e la gestione delle classi può essere fatta dalla GUI web di CUPS.

Tra i sistemi GNU / Linux

Il server può essere configurato utilizzando la GUI web o modificando manualmente /etc/cups/cupsd.conf.
Per configurare il client, vedi CUPS.

Utilizzando l’interfaccia web

Apri l’interfaccia web sul server, seleziona la scheda Amministrazione, guarda sotto l’intestazione Server e attiva l’opzione “Condividi stampanti collegate a questo sistema”. Salva la tua modifica cliccando sul pulsante Change Settings. Il server si riavvierà automaticamente.

Per configurazioni più complesse, puoi modificare il /etc/cups/cupsd.conf drop direttamente selezionando Edit Configuration File. Vedi #Configurazione manuale per maggiori informazioni.

Configurazione manuale

Sul computer server (quello direttamente collegato alla stampante), permetti l’accesso al server cambiando la direttiva sulla posizione. Per esempio:

/etc/cups/cupsd.conf
 Order allow, deny Allow localhost Allow 192.168.0... *...

Assicurati anche che il server ascolti l’indirizzo IP che il client userà:

/etc/cups/cupsd.conf
...In ascolto: 631...

Ci sono più opzioni di configurazione, inclusi metodi automatici, descritti in dettaglio in Using Network Printers. cupsd.conf (5).

Dopo qualsiasi modifica, riavvia org.cups.cupsd.service.

Se CUPS è avviato usando l’attivazione delle prese, create un frammento di codice per org.cups.cupsd.socket in modo che l’attivazione delle prese funzioni anche per le connessioni remote:

/etc/systemd/system/org.cups.cupsd.socket.d/override.conf
ListenStream = 631

Abilitare la navigazione

Per abilitare la navigazione (scoperta delle stampanti condivise), Avahi deve essere installato e funzionante sul server.
Se non è necessario cercare le stampanti, Avahi non è richiesto né sul server né sul client.

Per abilitare la navigazione, selezionare Share printers connected to this system nell’interfaccia web, o abilitare manualmente la navigazione:

/etc/cups/cupsd.conf
...Navigare su...

e riavviare org.cups.cupsd.service.

Nota che “navigare” sul server di stampa è diverso dal “navigare” su un host remoto in rete. Sul server di stampa, cupsd fornisce il supporto per il protocollo DNS-SD che il avahi-daemon trasmette. il servizio tasses feuilletées non è necessario sul server di stampa a meno che si trasmetta anche il vecchio protocollo CUPS o il server di stampa stia anche “navigando” verso altre stampanti in rete. Sull’host remoto in rete, il servizio tasses feuilletées è Campi richiesti “sfogliare” le trasmissioni di rete dei servizi di stampa ed eseguire tasses feuilletées avvierà automaticamente anche cupsd.

il servizio org.cups.cupsd.service si avvia automaticamente quando viene collegata una stampante USB. Tuttavia, questo potrebbe non essere il caso per altri tipi di connessione. Se cupsd non funziona, avahi-daemon non sta trasmettendo i servizi di stampa, quindi in questo caso il file systemd unit service deve essere modificato per essere avviato all’avvio, e poi il servizio deve essere “abilitato/installato” di nuovo con la nuova dipendenza. Per farlo, modificate il file di servizio sezione per aggiungere una dipendenza WantedBy = default.target, quindi abilitate e avviate il servizio org.cups.cupsd.service.

Tra GNU / Linux e Windows

Server Linux – client Windows

La condivisione verso client Windows può essere fatta usando #Sharing via IPP o #Sharing via Samba.

Dopo aver configurato il server, installa i driver nativi della tua stampante su un computer Windows. Se la coda di stampa del server CUPS è configurata per usare i propri driver di stampa invece della coda brut, si può semplicemente selezionare un generico driver di stampa postscript per il client Windows (per esempio, “HP Color LaserJet 8500 PS” o “Xerox DocuTech 135 PS2” o “Microsoft PS Class driver”).

Condivisione via IPP

L’Internet Printing Protocol è uno standard ampiamente supportato dai sistemi operativi e facile da configurare. È dotato di port forwarding, tunneling, ecc.

Nota: Potrebbe essere necessario aggiungere Internet Printing Client a Windows (Pannello di controllo> Programmi> Attivare o disattivare le funzionalità di Windows> Servizi di stampa e documentazione)

Iniziare configurando il server come descritto nella sezione #Tra sistemi GNU/Linux.

Sul computer Windows, vai su Pannello di controllo> Dispositivi e stampanti e scegli “Aggiungi stampante”. Se in Windows 10, clicca su “La stampante che voglio non è elencata”. Poi scegliete “Seleziona una stampante condivisa per nome” e digitate la posizione della stampante:

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

dove hostname è l’hostname o l’indirizzo IP del server GNU / Linux e Printer_Name è il nome della coda di stampa a cui connettersi. Puoi anche usare il nome di dominio completo del server, se applicabile, ma potrebbe essere necessario impostare ServerAlias my.fully.qualified.domain.name in /etc/cups/cupsd.conf perché questo funzioni.

Nota:

  • La finestra di dialogo “Add Printer” di Windows suggerisce il formato http: //nom_ordinateur/printers/nom_prin/.printer, che non accetta. Invece, usa la sintassi suggerita sopra.
  • Se stai usando un proxy, controlla attentamente i proxy usati. Un’impostazione errata potrebbe impedirvi di aggiungere una stampante fino al prossimo riavvio, anche se poi disabilitate il proxy (almeno su Windows 7).

Condivisione via Samba

Samba è un’implementazione anche dei vecchi protocolli di condivisione file e stampanti di Windows.

Nota che la condivisione della stampante usando Samba è generalmente più difficile da configurare e mantenere.

Per configurare Samba sul server Linux, modifica il file /etc/samba/smb.conf per permettere l’accesso alle stampanti. Il file smb.conf potrebbe essere simile a questo:

/etc/samba/smb.conf
workgroup = workgroupserver string = Linux print server Archsecurity = userprinting = CUPS come = tutte le stampanti path = / var / spool / samba searchable = yes # per permettere all'utente 'guest account' di stampare. guest ok = non scrivibile = non stampabile = sì Create mode = 0700 write list = root @adm @wheel your username

Questo dovrebbe essere sufficiente per condividere la stampante, ma aggiungere una voce individuale alla stampante può essere desiderabile:

/etc/samba/smb.conf
 come = stampante laser Samsung ML-1250 stampante = ml1250 path = / var / spool / samba printing = cups printable = yes user client driver = yes # per permettere all'utente 'guest account' di stampare. guest ok = no write access = no write list = root @adm @wheel your username valid users = root @adm @wheel your username

Nota che questo presuppone che la configurazione sia stata fatta in modo che gli utenti debbano avere un account valido per accedere alla stampante. Per avere una stampante pubblica, impostate ok invité su Oui e togliete la linea utilisateurs valides. Per aggiungere account, configura un normale account GNU / Linux, poi imposta una password Samba sul server. Vedere Samba # User Management.

Dopo questo, riavviare smb.service e nmb.service.

Consultate la documentazione di Samba Configurare Samba come server di stampa per maggiori dettagli.

Windows Server – Linux Client

Merge-arrows-2.png "src =" "width =" 48 "height =" 48"/bQuesto articolo o sezione è un candidato per la fusione con CUPS # Network_2./bimg alt="src =" http://wiki.archlinux.org/images/c/c9/Merge-arrows-2.png "src =" "width =" 48 "height =" 48"/bQuesto articolo o sezione è un candidato per la fusione con CUPS # Network_2./bimg alt="width =" 48 "height =" 48 "/><b>Cet article ou cette section est candidat à la fusion avec CUPS # Network_2.</b><img alt=

Note: Questa non è una sezione sulla condivisione di una stampante da Linux, è solo sulla connessione a un server di stampa (che esegue Windows). (Discutere in Talk: CUPS / Printer Share No.)

Attenzione: tutti i caratteri speciali negli URI della stampante devono essere citati correttamente. Altrimenti, se il nome della stampante Windows o le password utente contengono spazi, CUPS darà un errore. lpadmin: mauvais périphérique-uri Errore.

Per esempio, smb: // BEN-DESKTOP / HP Color LaserJet série CP1510 PCL6 diventa smb: // BEN-DESKTOP / HP% 20Color% 20LaserJet% 20CP1510% 20series% 20PCL6.

Questa stringa di risultati può essere ottenuta eseguendo il seguente comando:

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

Condivisione via LPD

Windows 7, 8 e 10 hanno un server LPD integrato – usarlo sarà probabilmente l’approccio più semplice in quanto non richiede l’installazione di Samba sul client, né una complicata configurazione sul server. Può essere abilitato nel Pannello di controllo sotto Programmi -> Attiva funzionalità di Windows nella sezione Servizi di stampa. La stampante deve avere la condivisione abilitata nelle sue proprietà. Usate un nome di condivisione senza caratteri speciali come spazi, virgole, ecc.

Poi la stampante può essere aggiunta in CUPS, scegliendo il protocollo LPD. L’indirizzo della stampante sarà simile a questo:

lpd: // windowspc / printersharename

Prima di aggiungere la stampante, avrete probabilmente bisogno di installare un driver di stampante appropriato a seconda del vostro modello di stampante. Anche i driver PostScript o RAW generici possono funzionare.

Condivisione via IPP

Come sopra, IPP è anche il protocollo preferito di condivisione della stampante, anche se funziona solo con le versioni di Windows Server. Le versioni di Windows Server (ad esempio, Server 2016) includono il supporto IPP (ruolo “Print and Document Services”, servizio “Internet Printing”). Le versioni client (Windows 10, per esempio) includono solo il client IPP e non supportano la condivisione via IPP.

Condivisione via Samba

Un modo molto più semplice utilizza la condivisione nativa della stampante di Windows tramite Samba. Non c’è quasi nessuna configurazione richiesta, e tutto può essere fatto dal backend CUPS. Come detto sopra, se ci sono problemi, la ragione è principalmente legata a problemi di autenticazione e alle restrizioni di accesso di Windows.

Sul lato server, abilitate la condivisione per la stampante di vostra scelta e assicuratevi che l’utente sulla macchina client abbia il diritto di accedere alla stampante.

La prossima sezione spiega come configurare il client, assumendo che entrambi i demoni (cupsd e smbd) siano in esecuzione.

Configurazione tramite l’interfaccia web

Tango-inexact.png src = width = 48 height = 48 /bL'accuratezza fattuale di questo articolo o sezione è contestata./bimg alt='exactitude factuelle de cet article ou de cette section est contestée.</b><img alt=

Il backend Samba di CUPS è abilitato di default se per qualche motivo non lo abilita inserendo il seguente comando e riavviando CUPS.

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

In seguito, basta accedere all’interfaccia web di CUPS e scegliere di aggiungere una nuova stampante. Come dispositivo, scegliete “Windows Printer via SAMBA”.

Per la posizione del dispositivo, inserite:

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

O senza password:

smb: // nomutilisateur @ nomhôte / nom_imprimante

Assicuratevi che l’utente abbia effettivamente accesso alla stampante sul computer Windows e selezionate i driver adeguati. Se il computer si trova su un dominio, assicuratevi che l’URI includa il dominio:

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

Tango-inexact.png src = width = 48 height = 48 /bL'accuratezza effettiva di questo articolo o sezione è in discussione./bimg alt='exactitude factuelle de cet article ou de cette section est contestée.</b><img alt=

Per la configurazione manuale, fermate il demone CUPS e aggiungete la vostra stampante a /etc/cups/printers.conf, che potrebbe per esempio essere così

/etc/cups/printers.conf
AuthInfoNome utente richiesto, passwordInfo La mia stampante via SAMBALieu nel mio ufficioModello Samsung ML-1250 - CUPS + Gutenprint v5.2.7 # <= usa 'lpinfo -m' per elencare i modelli disponibili.DeviceURI smb: // nome utente: password @ host_name / printer_name # <= server URI, come descritto nella sezione precedenteStatus idleType 4Accept YesPart noWorksheets none noneQuotaPeriod 0PageLimit 0KLimit 0AllowUser yourusername # <= non dimenticate di cambiare questaOpPolicy defaultErrorPolicy stop-printer

In seguito, riavviate il demone CUPS e provate a stampare una pagina di prova.

Cercare gli URI per i server di stampa Windows

A volte Windows è un po’ meno a prova di futuro sugli URI esatti dei dispositivi (posizioni dei dispositivi). Se non siete in grado di specificare la posizione corretta del dispositivo in CUPS, eseguite il seguente comando per elencare tutte le condivisioni disponibili per un dato nome utente Windows:

$ smbtree -U windowsusername

Questo elenca tutte le condivisioni disponibili per un dato nome utente Windows sulla subnet della rete locale, a condizione che Samba sia configurato e funzioni correttamente. Dovrebbe restituire qualcosa come questo:

 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

Quello che serve qui è la prima parte dell’ultima riga, la risorsa corrispondente alla descrizione della stampante. Quindi, per stampare sulla stampante EPSON Stylus, è necessario inserire:

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

come URI in CUPS.

Amministrazione remota

Una volta che il server è impostato come descritto in #Between GNU/Linux Systems, può anche essere impostato per essere amministrato da remoto. Aggiungere gli host consentiti al blocco /etc/cups/cupsd.conf, usando la stessa sintassi descritta in #Configurazione manuale. Notate che possono essere concessi tre livelli di accesso:

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

Per dare accesso agli host remoti a uno di questi livelli, aggiungete una dichiarazione Permettre alla sezione per quel livello. Una dichiarazione Permettre può assumere una o più delle forme elencate di seguito:

Autoriser de tousAutoriser depuis host.domain.comAutoriser à partir de * .domain.comAutoriser depuis l'adresse ipAutoriser depuis adresse IP / masque de réseauAutoriser à partir de @LOCAL

Si possono usare anche dichiarazioni di rifiuto. Per esempio, per dare accesso completo a tutti gli host sulle interfacce di rete locale, modificare /etc/cups/cupsd.conf includere questo:

# 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

Potreste anche aver bisogno di disabilitare la configurazione HTTPS quando usate il certificato autofirmato di default generato da CUPS:

DefaultEncryption IfRequested

Questo dovrebbe prevenire il seguente errore: 426 – Aggiornamento richiesto quando si usa l’interfaccia web CUPS da un computer remoto.

Kerberos

Kerberos può essere usato per autenticare gli utenti che accedono a un server CUPS remoto. Questo presuppone che la vostra macchina abbia un keytab e avrà bisogno di un biglietto per “HTTP”. Invece di usare http: // localhost: 631 devi usare https://host.example.co.uk:631 – la crittografia è richiesta per l’autenticazione (quindi https) e l’hostname completo è richiesto per Kerberos / Negotiate per funzionare. Inoltre, il server deve essere configurato in /etc/cups/cupsd.conf usare un DefaultAuthType di Négocier.

Se state usando il supporto Winbind NSS di Samba, potete aggiungere un nome di gruppo AD a /etc/cups/cups-files.conf – nel seguente esempio administrateur système potrebbe essere un gruppo AD:

Racine système SystemGroup sysadmin

Risoluzione dei problemi

Vedi CUPS / Risoluzione dei problemi per suggerimenti generali sulla risoluzione dei problemi.

Impossibile stampare con le applicazioni GTK

Se ottieni un fallimento nell’ottenere informazioni sulla stampante quando cerchi di stampare dalle applicazioni GTK, aggiungi questa linea al tuo / etc / hosts:

serverip some.name.org ServersHostname

Errori di autorizzazione di Windows

Alcuni utenti fissi NT_STATUS_ACCESS_DENIED (client Windows) che usano una sintassi leggermente diversa:

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

Altri sistemi operativi

Più informazioni sull’interfacciamento di CUPS con altri sistemi di stampa possono essere trovate nel manuale CUPS, per esempio. a http: // localhost: 631 / help / network.html.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *