--- title: A CUPS használata FreeBSD rendszereken authors: - author: Chess Griffin email: chess@chessgriffin.com trademarks: ["freebsd", "general"] --- = A CUPS használata FreeBSD rendszereken :doctype: article :toc: macro :toclevels: 1 :icons: font :sectnums: :sectnumlevels: 6 :source-highlighter: rouge :experimental: :images-path: articles/cups/ ifdef::env-beastie[] ifdef::backend-html5[] include::shared/authors.adoc[] include::shared/mirrors.adoc[] include::shared/releases.adoc[] include::shared/attributes/attributes-{{% lang %}}.adoc[] include::shared/{{% lang %}}/teams.adoc[] include::shared/{{% lang %}}/mailing-lists.adoc[] include::shared/{{% lang %}}/urls.adoc[] :imagesdir: ../../../images/{images-path} endif::[] ifdef::backend-pdf,backend-epub3[] include::../../../../shared/asciidoctor.adoc[] endif::[] endif::[] ifndef::env-beastie[] include::../../../../../shared/asciidoctor.adoc[] endif::[] [.abstract-title] Kivonat Ez a cikk a CUPS beállítását és használatát mutatja be a FreeBSD operációs rendszeren. _Fordította: Páli Gábor, utolsó ellenõrzés: 2010.11.28._ ''' toc::[] [[printing-cups]] == A Common Unix Printing System (CUPS) rövid bemutatása A CUPS, avagy _Common UNIX Printing System_ (Egységes UNIX Nyomtatási Rendszer) a UNIX(R) alapú operációs rendszerekhez fejlesztett hordozható nyomtatási réteg. Az Easy Software Products egy szabványos nyomtatási technológiaként alkotta meg a UNIX(R) gyártók és felhasználók számára. A CUPS az ún. _Internet Printing Protocol_ (IPP, Internetes Nyomtatási Protokoll) megoldásaira támaszkodóan kezeli a nyomtatási feladatokat és sorokat. Emellett még a _Line Printer Daemon_ (LPD), a _Server Message Block_ (SMB) és _AppSocket_ (vagy más néven __JetDirect__) protokollokat is ismeri valamennyire. A CUPS a hétköznapi igényeknek megfelelõ UNIX(R) alapú nyomtatás megteremtéséhez ezenkívül még támogatja a hálózati nyomtatók böngészésének lehetõségét, illetve a _PostScript Printer Description_ (PPD, PostScript Nyomtató Leírás) használatát. Ennek eredményeképpen a CUPS tökéletesen alkalmas nyomtatók megosztására és elérésére FreeBSD, Linux(R) Mac OS(R) X vagy Windows(R) típusú rendszereket vegyesen tartalmazó környezetekben. A CUPS hivatalos oldala a http://www.cups.org/[http://www.cups.org/] címen érhetõ el. [[printing-cups-install]] == A CUPS nyomtatószerver telepítése A CUPS telepíthetõ portként vagy csomagként. Ha portként szeretnénk telepíteni, akkor ahhoz a következõ parancsot kell kiadnunk rendszergazdaként: [source,shell] .... # cd /usr/ports/print/cups && make install clean .... A CUPS csomagjának telepítését pedig ezzel a paranccsal tudjuk (szintén rendszergazdaként) elvégezni: [source,shell] .... # pkg_add -r cups .... További nem kötelezõen telepítendõ, de határozottan ajánlott csomagok még a package:print/gutenprint-cups[] és a package:print/hplip[], amelyek különbözõ típusú nyomtatókhoz tartalmaznak meghajtókat és segédprogramokat. A CUPS telepítése után a hozzá tartozó konfigurációs állományokat a [.filename]#/usr/local/etc/cups# könyvtárban találhatjuk. [[printing-cups-configuring-server]] == A CUPS nyomtatószerver beállítása A CUPS szerver telepítése után néhány állomány módosításával végezhetjük el a szükséges beállításokat. Elõször is hozzunk létre (ha még nem létezne) vagy nyissuk meg az [.filename]#/etc/devfs.rules# állományt és a `cups` csoport számára adjunk hozzáférést a rendszerünkben található összes nyomtatóra: [.programlisting] .... [system=10] add path 'unlpt*' mode 0660 group cups add path 'ulpt*' mode 0660 group cups add path 'lpt*' mode 0660 group cups add path 'usb/X.Y.Z' mode 0660 group cups .... [NOTE] ==== Az _X_, _Y_ és _Z_ helyén a nyomtató [.filename]#/dev/usb# könyvtárban szereplõ értékeit adjuk meg. A nyomtatóhoz tartozó eszközleírót a man:dmesg[8] kimenetében találjuk meg [.filename]#ugenX.Y# néven, amely egy szimbolikus link a [.filename]#/dev/usb# könyvtárban található megfelelõjére. ==== Ezután az [.filename]#/etc/rc.conf# állományba még vegyük fel a következõ két sort: [.programlisting] .... cupsd_enable="YES" devfs_system_ruleset="system" .... Az iménti bejegyzések gondoskodnak a CUPS nyomtatószerver beüzemelésérõl a rendszer indítása során, illetve töltik be az elõbbi lépésben létrehozott helyi devfs szabályokat. Bizonyos Microsoft(R) Windows(R) rendszert használó kliensekkel csak akkor fogunk tudni nyomtatni a CUPS esetében, ha a [.filename]#/usr/local/etc/cups/mime.types# és [.filename]#/usr/local/etc/cups/mime.convs# állományokban kivesszük a megjegyzésbõl ezt a sort: [.programlisting] .... application/octet-stream .... Miután végrehajtottuk ezeket a módosításokat, az alábbi parancsok használatával vagy az operációs rendszerrel együtt indítsuk újra a man:devfs[8] és CUPS szolgáltatásokat: [source,shell] .... # /etc/rc.d/devfs restart # /usr/local/etc/rc.d/cupsd restart .... [[printing-cups-configuring-printers]] == Nyomtatók beállítása a CUPS nyomtatószerveréhez A CUPS sikeres telepítését és beállítását követõen elkezdhetjük a nyomtatószerverhez kapcsolódó helyi nyomtatók hozzáadását. Ez nagyon hasonló, ha nem is teljesen megegyezõ más UNIX(R) alapú rendszerek, például Linux(R) esetén a nyomtatók beállításához. A CUPS szerver irányítása és mûködtetése elsõsorban az általa felkínált webes felületen történik, amelyet a http://localhost:631[http://localhost:631] címen keresztül tudunk elérni. Amennyiben a CUPS egy másik számítógépen fut, akkor a címben természetesen a `localhost` (saját gépünk) helyén az adott gép IP-címét kell megadnunk. A CUPS webes felületén meglehetõsen könnyen lehet tájékozódni, külön menüket találunk a nyomtatók és nyomtatási sorok beállítására, a felhasználók hitelesítésére és a többi. Ezeken felül még az "Administration" képernyõ jobb oldalán különbözõ jelölõnégyzetekkel tudunk egyszerûen dönteni a gyakori beállításokról, például a szerverhez csatlakozó nyomtatókat megosztjuk-e a hálózaton keresztül, engedünk-e további felhasználókat hozzáférni a szolgáltatásokhoz, kinek milyen engédelyei legyenek a nyomtatókra és nyomtatási sorokra. A nyomtatók hozzáadásához elegendõ a CUPS webes felületén az "Administration" menün belül az "Add Printer" gombra vagy valamelyik "New Printers Found" gombra kattintani. A "Device" legördülõ menü megjelenése után egyszerûen válasszuk ki belõle a megfelelõ helyileg csatlakoztatott nyomtatót, majd folytassuk a telepítését. Ha telepítettük a korábban ajánlott package:print/gutenprint-cups[] és package:print/hplip[] programokat, akkor ennek során a hozzájuk tartozó meghajtók is meg fognak jelenni, amelyek esetleg többet tudnak vagy megbízhatóbbak. [[printing-cups-clients]] == A CUPS kliensek beállítása A CUPS szerver beállítása, illetve a nyomtatók telepítése és megosztása után a kliensek, vagyis a CUPS által kínált szolgáltatásokat elérni kívánó gépek beállítása következik. Ha csupán egyetlen gépünk van, amely egyszerre szerver és kliens, akkor az itt szereplõ információk nagy részére nem lesz szükségünk. [[printing-cups-clients-unix]] === UNIX(R) kliensek A UNIX(R) kliensek esetében is a CUPS használatára lesz szükségünk. Miután rájuk is telepítettük, a CUPS által hálózaton megosztott nyomtatókat maguktól fel is ismerik a különbözõ munkakörnyezetek, például a GNOME vagy KDE nyomtatókezelõi. Emellett a szerverhez hasonlóan a kliensen is el tudjuk érni a http://localhost:631[http://localhost:631] címen a CUPS helyi felhasználói felületét, ahol az "Administration" menüben az "Add Printer" gombbal tudunk felvenni a szervernél tapasztalt módon hasonlóhoz. Amikor viszont megjelenik a "Device" legördülõ menü, akkor válasszuk az automatikusan felismert hálózati CUPS nyomtatót, vagy az `ipp` és `http` elemek valamelyikén keresztül adjuk meg a hálózati CUPS nyomtató IPP vagy HTTP alapú egységes forrásazonosítóját (URI) a következõ formák valamelyikében: [.programlisting] .... ipp://szervernév-vagy-ip/printers/nyomtatónév .... [.programlisting] .... http://szervernév-vagy-ip:631/printers/nyomtatónév .... Ha a CUPS kliensek valamiért nem látnák a hálózaton megosztott nyomtatókat, akkor próbáljuk meg hozzáadni a [.filename]#/usr/local/etc/cups/client.conf# állományhoz a következõ sort: [.programlisting] .... ServerName szerver-ip .... Ahol a _szerver-ip_ helyére írjuk be a hálózatunkon található CUPS szerver helyi IP-címét. [[printing-cups-clients-windows]] === Windows(R) kliensek A Windows(R) XP elõtti változatai nem képesek együttmûködni a hálózaton megosztott IPP alapú nyomtatókkal. A Windows(R) XP rendszertõl kezdõdõen azonban már rendelkeznek a szükséges támogatással, ezért itt már nagyon könnyû beállítani a CUPS nyomtatókat. Ehhez rendszeradminisztrátorként futtassuk a Windows(R) a nyomtatók hozzáadásához tartozó varázslóját, ahol válasszuk a "Hálózati nyomtató" típust, majd a következõ formában töltsük ki az eszköz forrásazonosítóját: [.programlisting] .... http://szervernév-vagy-ip:631/printers/nyomtatónév .... Ha az IPP támogatását még nem tartalmazó régebbi Windows(R) változatunk van, akkor a CUPS szolgáltatásait a package:net/samba3[] szerveren keresztül tudjuk elérhetõvé tenni, azonban ennek bemutatásával itt most nem foglalkozunk. [[printing-cups-troubleshooting]] == Hibakeresés A CUPS használata során tapasztalható problémák többségét az engedélyek helytelen beállítása okozza. Elõször tehát, ha valami nem mûködik rendesen, akkor ellenõrizzük újra az elõbb felvázolt man:devfs[8] beállításokat. Ezután gyõzõdjünk meg arról is, hogy az állományrendszerben ténylegesen keletkezõ eszközök engedélyei megfelelõek. Továbbá segíthet megoldani a problémát, ha felvesszük a felhasználónkat a korábban tárgyalt `cups` csoportba. Ha a CUPS felhasználói felületének "Administration" képernyõjén található beállítások látszólag hatástalanok, akkor érdemes úgy próbálkoznunk, hogy elõször készítünk egy bizonsági másolatot a [.filename]#/usr/local/etc/cups/cupsd.conf# állományról és kézzel módosítgatva kísérletezünk különféle konfigurációs lehetõségek kombinációival. Ehhez találhatunk itt egy példát. Ezzel kapcsolatban azonban megjegyezzük, hogy a bemutatott [.filename]#cupsd.conf# állomány inkább áttekinthetõ mintsem biztonságos módon tárgyalja a lehetõségeket. Ezért javasoljuk, hogy miután sikerült elérnünk a CUPS szervert és beállítani a klienseket, nézzük át alaposan a mintául szolgáló opciókat és korlátozzuk le minél jobban a hozzáférést. [.programlisting] .... # Általános információk naplózása. Ha hibát keresünk, írjuk az # "info" helyett a "debug" értéket. LogLevel info # A rendszergazdák csoportja. SystemGroup wheel # A 631-es porton várjuk a kliensek kapcsolódását. Port 631 #Listen localhost:631 Listen /var/run/cups.sock # A helyi hálózaton megosztott nyomtatók mutatása. Browsing On BrowseOrder allow,deny #BrowseAllow @LOCAL BrowseAllow 192.168.1.* # Adjuk meg a helyi hálózatunkat. BrowseAddress 192.168.1.* # Adjuk meg a helyi hálózatunkat. # Alapértelmezett hitelesítési módszer, amikor szükség van rá. DefaultAuthType Basic DefaultEncryption Never # Vegyük ki ezt a sort, ha titkosítani akarunk. # A szervert a helyi hálózaton bármelyik gép elérheti. Order allow,deny #Allow localhost Allow 192.168.1.* # Adjuk meg a helyi hálózatunkat. # A helyi hálózatról el tudjuk érni az adminisztrációs felületet. #Encryption Required Order allow,deny #Allow localhost Allow 192.168.1.* # Adjuk meg a helyi hálózatunkat. # A helyi hálózatunkról el tudjuk érni a konfigurációs állományt. AuthType Basic Require user @SYSTEM Order allow,deny #Allow localhost Allow 192.168.1.* # Adjuk meg a helyi hálózatunkat. # Az alapértelmezett nyomtatási és feladatkezelési házirendek. # A feladatokat kizárólag csak a tulajdonosaik vagy a rendszergazda # képesek elvégezni. Require user @OWNER @SYSTEM Order deny,allow # A karbantartást csak megfelelõ hitelesítés után végezhetünk. AuthType Basic Require user @SYSTEM Order deny,allow # A feladatokat csak a tulajdonosaik és a rendszergazda tudják törölni. Require user @OWNER @SYSTEM Order deny,allow Order deny,allow .... [[printing-cups-ports-knobs]] == A CUPS portok finomhangolása Ha a CUPS lesz az elsõdlegesen használt nyomtatási rendszer, akkor az [.filename]#/etc/make.conf# állományban érdemes lehet még további olyan változókat beállítanunk, amelyek elõtérbe helyezik a CUPS használatát a többi nyomtatási lehetõséggel szemben. Ezek közül most szót ejtünk néhányról: [.programlisting] .... WITH_CUPS=YES CUPS_OVERWRITE_BASE=YES WITHOUT_LPR=YES .... Elsõként a `WITH_CUPS` látható, amely hatására a portok telepítésük során lehetõség szerint a CUPS megoldásaira fognak építkezni. Másodikként a `CUPS_OVERWRITE_BASE` szerepel, amely megadásával a telepítés során a FreeBSD alapértelmezett nyomtatási rendszere, az LPR szimbolikus linkjei és állományai cserélõdnek le, illetve megakadályozza, hogy ez visszaforduljon a rendszer egy késõbbi frissítésekor. A harmadik, a `WITHOUT_LPR` az LPR használatának mellõzésére utasítja az érintett portokat.