Hlavní navigace

CUPS

Tomáš Davídek 25. 11. 2004

Nainstalovali jste si Linux a přemýšlíte, jakým způsobem zařídit tisk? Nebo používáte nějaký starší printer daemon, který vám již nedostačuje? V takovém případě asi oceníte možnosti CUPS (Common Unix Printing System), který představuje velmi dobrý nástroj pro správu tiskáren.

Podívejme se tedy blíže na instalaci (včetně nastavení jádra, máme-li nějakou lokální tiskárnu), konfiguraci klienta a konfiguraci serveru CUPS. Pár slov je věnováno i dokumentaci.

Instalace CUPS

Nejdříve musíme CUPS nainstalovat. Zdrojový kód seženeme na www.cups.org, ovšem pro většinu běžných distribucí Linuxu (Debian, Fedora, Mandrake, Red Hat, SUSE…) jsou k dispozici na jejich mirrorech již zkompilované balíčky. Obvykle potřebujeme balíčky cupsys, cupsys-client, případně cupsys-bsd, cups-pdf. U starších verzí se mohou hodit některé ovladače z balíčků cupsys-driver-gimpprint, cupsomatic-ppd.

Pokud máme nějakou tiskárnu přímo připojenou k lokálnímu počítači, nesmíme zapomenout na správné nastavení jádra (kernelu). U instalačních jader jsou obvykle všechny potřebné komponenty zahrnuty ve formě modulů. Kompilujeme-li vlastní jádro, je třeba nastavit podporu pro příslušný port, kam je lokální tiskárna připojena:

  • Paralelní: od verzí jader 2.2.XX výše je třeba nastavit

    CONFIG_PARPORT=y
    CONFIG_PARPORT_PC=yc
    

    a tiskárna se pak nachází na zařízení /dev/lp0.

  • USB: v nastavení jádra aktivujeme položky

    CONFIG_USB=y
    CONFIG_USB_DEVICEFS=y
    CONFIG_USB_PRINTER=y
    

    a tiskárna se pak nachází na /dev/usb/lp0. Pokud takové zařízení neexistuje, vytvoříme jej pomocí příkazu mknod /dev/usb/lp0 c 180 0 a zajistíme stejného vlastníka a přístupová práva jako u zařízení /dev/lp0.

Konfigurace klienta CUPS

Konfiguraci lokálních i síťových tiskáren lze provést jak v řádkovém režimu (pomocí příkazu lpadmin), tak pomocí Web-rozhraní (http://local­host:631). Jednodušší je samozřejmě druhá možnost, administrace tiskáren a tiskových úloh je zde jednoduchá a intuitivní. Pro drtivou většinu akcí je potřeba znát administrátorské (root) heslo, nesmíme se tedy nechat zaskočit dialogovým oknem.


Nastavíme všechny potřebné tiskárny v sekci Printers(http://lo­calhost:631/prin­ters) pomocí funkce Add Printers. Postupně zadáváme:

  1. jméno a umístění (nepovinné) tiskárny
  2. zařízení: k dispozici jsou Internet Printing Protocol (HTTP a IPP) pro tisk na serveru s CUPS, LPD pro tisk na serverech s lp-daemonem (jiný tiskový daemon pro Linux a Unix), paralelní port a USB porty pro lokální tiskárny, v neposlední řadě i SMB pro tisk na serverech s Windows.
  3. výrobce tiskárny
  4. model tiskárny

Tím je konfigurace tiskárny dokončena a kliknutím na Print Test Page můžeme pustit zkušební tisk. Konfiguraci tiskárny lze kdykoli změnit pomocí tlačítek Configure Printer či Modify Printer (např. lze změnit ovladač v případě, že zkušební tisk nedopadl dobře). Výsledek pak může vypadat např. takto:


V uvedeném příkladě vidíme některé běžné způsoby tisku. Popišme je nyní trochu podrobněji:

  • tiskárna color4500: jedná se o tiskárnu připojenou ke vzdáleném počítači, kde běží (bohužel :-) Windows. Proto je tisk zajištěn pomocí Samby (musíme mít nainstalován Samba-client, balíček se jmenuje smbclient), položka

    Device URI: smb://ipnp01.troja.mff.cuni.cz/HPColor-4500 

    znamená, že smbclient pošle tisk na počítač ipnp01.troja.mff­.cuni.cz do fronty HPColor-4500. Na tomto počítači musí být samozřejmě povoleno sdílení této tiskárny.

  • tiskárna hplj5: tiskárna připojená ke vzdálenému počítači s Linuxem, kde běží tiskový server CUPS. Položka

    Device URI ipp://ipnp21.troja.mff.cuni.cz:631/printers/hplj5 

    znamená, že se tiskne přes protokol IPP či HTTP (port 631) na stroji ipnp21.troja.mff­.cuni.cz, tisk se posílá do fronty printers/hplj5 (tiskárny v systému CUPS mají přiřazeny fronty: printers/jmeno_tis­karny)

  • tiskárna ncprint: připojena ke vzdálenému počítači s Linuxem, kde běží jiný tiskový server (lpd). Položka

    Device URI lpd://ipnp00.troja.mff.cuni.cz:515/ncprint 

    znamená, že se tisk posílá na server ipnp00.troja.mff­.cuni.cz daemonu lpd (port 515) do fronty ncprint.

  • tiskárna usbprinter: lokální tiskárna připojená přes USB port, nachází se proto na zařízení /dev/usb/lp0 (viz předchozí kapitolku).

Toto nastavení je uloženo v textovém konfiguračním souboru /etc/cups/prin­ters.conf, který lze v případě potřeby ručně editovat. Ovladače jsou pak přiřazeny jednotlivým tiskárnám v adresáři /etc/cups/ppd.

Pokud je některý tiskový server chráněn jménem a heslem, zadávají se tyto údaje také do položky Device, ovšem ve výpisu na Webu (viz výše) je tato informace skryta (našli bychom ji však v již zmíněném konfiguračním souboru /etc/cups/prin­ters.conf). V případě první tiskárny by takové nastavení vypadalo takto:

Device URI smb://uzivatel:heslo@ipnp01.troja.mff.cuni.cz/ HPColor-4500 

(Pozn. red.: mezera před HPColor přidána kvůli sazbě –Johanka)

Nastavíme-li tiskárnu, a tisk přesto nefunguje, hledáme chybu v log-souboru (/var/log/cup­s/error_log). Standardně se vypisují jen informace o začátku a skončení tisku, při problémech lze nastavit tzv. debug-level v konfiguračním souboru /etc/cups/cup­sd.conf :

LogLevel debug

Po změně konfigurace musíme nejdříve CUPS restartovat, aby změny vešly v platnost.

Poznámka: pokud nechceme instalovat na našem počítači tiskový server CUPS a nemáme ani žádnou lokální tiskárnu, lze vystačit pouze s balíčkem cupsys-client (viz předchozí kapitolku). Pak ale nemůžeme nastavit žádné ovladače ani využít zmíněné Web-rozhraní a tisknout lze pouze příkazem typu

lp -d ncprint -h ipnp00 jmeno_souboru

který pošle tisk na tiskárnu (do fronty) ncprint na serveru ipnp00.

Konfigurace serveru CUPS

CUPS funguje nejen jako klient (tj. umožňuje tisknout na zvolené tiskárně), ale i jako tiskový server. Takovým příkladem je stroj ipnp21 (viz výše). Nastavení serveru se zapisuje do souboru /etc/cups/cup­sd.conf. Podívejme se nyní na několik základních možností, které server CUPS nabízí:

  • Omezení přístupu k administrátorským úkonům přes Web-rozhraní. Typicky povolíme přístup jen z lokálního počítače, proto nastavíme v sekci admin:

    <Location /admin>
    AuthType Basic
    AuthClass System
    Order Deny,Allow
    Deny From All
    Allow From 127.0.0.1
    <Location />
  • Různá omezení přístupu k jednotlivým tiskárnám: CUPS umožňuje nastavit různý přístup k jednotlivým tiskárnám. Jako příklad uveďme tiskárnu hplj5, na které mohou tisknout uživatelé ze všech strojů v doméně domain.com:

    <Location /printers/hplj5>
    AuthType None
    Order Deny,Allow
    Deny From All
    Allow From .domain.com
    <Location />

    Položka AuthType None znamená, že přístup je možný bez autorizace, tj. bez zadání uživatelského jména a hesla. Má-li náš server na starosti více tiskáren, lze je uspořádat do několika tříd (Classes) a přístupová práva pak nastavit pro jednotlivé třídy.

K dispozici máme celou řadu dalších nastavení (různé stupně zabezpečení, volba portů, volba protokolů, …), jejich popis najdeme v dokumentaci. Nezapomeňme, že po každé změně nastavení musíme restartovat CUPS, aby nová nastavení vešla v platnost.

Jak jsme již zmínili, server CUPS je založen na protokolu IPP. Součástí CUPS (balíček cupsys-bsd) je ale také jednoduchý LPD (Line Printing Daemon), který se nespouští při startu počítače jako klasický daemon, nýbrž se aktivuje pomocí inetd. V souboru /etc/inetd.conf najdeme řádku:

printer stream tcp nowait lp /usr/lib/cups/daemon/cups-lpd cups-lpd 

Na takovém serveru lze tedy tisknout buď přes protokol IPP (port 631), nebo LPD (port 515). Upozorněme však, že zmíněný LPD nebere ohledy na nastavení CUPS, takže pro něj nelze nastavit žádná omezení pro přístup k tiskárnám. Bohužel tento daemon nepoužívá ani TCP-wrappers, takže přístup nelze omezit ani v souborech /etc/hosts.allow a/etc/hosts.deny. Jedinou možností, jak omezit přístup, by v tomto případě bylo použití IP-tables. Pokud tedy chceme jednoduše omezovat přístup k jednotlivým tiskárnám, je lépe tento daemon nepoužívat (tj. zakomentovat uvedenou řádku ve zmíněném souboru).

Dokumentace

Podrobnější informace najdete v dokumentaci CUPS, případně i na domovské stránce. Tam najdete i odkazy na mailing-listy, kde se o své zkušenosti podílí vývojáři a uživatelé. Informace o dalším zmíněném software (jiných LPD, TCP-wrappers, IP-tables…), jakož o i jiných komponentách Linuxu, najdete mj. i na stránkách o instalaci Debian Linuxu.

Našli jste v článku chybu?

3. 10. 2006 13:53

uživatel si přál zůstat v anonymitě
Ahoj vespolek,
potreboval bych poradit nejakeho print managezera, ktery by mel defaultne kazdy job pozastaveny nebo zastaveny a teprve na prikaz obsluhy by se vytisknul.
umi i toto cups ?
nemate nekdo nejakou radu ?

dikes
J.





29. 6. 2006 19:44

Mila (neregistrovaný)
Nebude to "neco" firmware?
120na80.cz: Rovnátka, která nejsou vidět

Rovnátka, která nejsou vidět

Podnikatel.cz: Přehledná titulka, průvodci, responzivita

Přehledná titulka, průvodci, responzivita

Vitalia.cz: Jak vybrat ořechy do cukroví a kde mají levné

Jak vybrat ořechy do cukroví a kde mají levné

120na80.cz: Rakovina oka. Jak ji poznáte?

Rakovina oka. Jak ji poznáte?

Měšec.cz: Kdy vám stát dá na stěhování 50 000 Kč?

Kdy vám stát dá na stěhování 50 000 Kč?

120na80.cz: Jak oddálit Alzheimera?

Jak oddálit Alzheimera?

Podnikatel.cz: Babiš: E-shopy z EET možná vyjmeme

Babiš: E-shopy z EET možná vyjmeme

120na80.cz: Horní cesty dýchací. Zkuste fytofarmaka

Horní cesty dýchací. Zkuste fytofarmaka

DigiZone.cz: Flix TV má set-top box s HEVC

Flix TV má set-top box s HEVC

Lupa.cz: Seznam mění vedení. Pavel Zima v čele končí

Seznam mění vedení. Pavel Zima v čele končí

Měšec.cz: Zdravotní a sociální pojištění 2017: Připlatíte

Zdravotní a sociální pojištění 2017: Připlatíte

Lupa.cz: Co se dá měřit přes Internet věcí

Co se dá měřit přes Internet věcí

Lupa.cz: Propustili je z Avastu, už po nich sahá ESET

Propustili je z Avastu, už po nich sahá ESET

Lupa.cz: Google měl výpadek, nejel Gmail ani YouTube

Google měl výpadek, nejel Gmail ani YouTube

DigiZone.cz: ČT má dalšího zástupce v EBU

ČT má dalšího zástupce v EBU

Vitalia.cz: Láska na vozíku: Přitažliví jsme pro tzv. pečovatelky

Láska na vozíku: Přitažliví jsme pro tzv. pečovatelky

Vitalia.cz: Baletky propagují zdravotní superpostel

Baletky propagují zdravotní superpostel

Podnikatel.cz: Na poslední chvíli šokuje výjimkami v EET

Na poslední chvíli šokuje výjimkami v EET

Vitalia.cz: Chtějí si léčit kvasinky. Lék je jen v Německu

Chtějí si léčit kvasinky. Lék je jen v Německu

Měšec.cz: Finančním poradcům hrozí vracení provizí

Finančním poradcům hrozí vracení provizí