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.
A CUPS, avagy Common UNIX Printing System (Egységes UNIX Nyomtatási Rendszer) a UNIX® 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® 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® 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® Mac OS® X vagy Windows® típusú rendszereket vegyesen tartalmazó környezetekben.
A CUPS hivatalos oldala a http://www.cups.org/
címen
érhető el.
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:
#
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:
#
pkg_add -r cups
További nem kötelezően
telepítendő, de határozottan ajánlott
csomagok még a print/gutenprint-cups és a
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
/usr/local/etc/cups
könyvtárban
találhatjuk.
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 /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:
[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
Az X
,
Y
és
Z
helyén a nyomtató
/dev/usb
könyvtárban szereplő értékeit
adjuk meg. A nyomtatóhoz tartozó
eszközleírót a dmesg(8)
kimenetében találjuk meg
ugenX.Y
néven, amely egy szimbolikus link a /dev/usb
könyvtárban található
megfelelőjére.
Ezután az /etc/rc.conf
állományba még vegyük fel a
következő két sort:
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® Windows® rendszert
használó kliensekkel csak akkor fogunk tudni
nyomtatni a CUPS esetében, ha
a /usr/local/etc/cups/mime.types
és
/usr/local/etc/cups/mime.convs
állományokban kivesszük a
megjegyzésből ezt a sort:
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 devfs(8) és CUPS szolgáltatásokat:
#
/etc/rc.d/devfs restart
#
/usr/local/etc/rc.d/cupsd restart
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® alapú rendszerek, például Linux® 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
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 print/gutenprint-cups és 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.
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.
A UNIX® 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
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:
ipp://szervernév-vagy-ip
/printers/nyomtatónév
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
/usr/local/etc/cups/client.conf
állományhoz a következő sort:
ServerName szerver-ip
Ahol a szerver-ip
helyére írjuk be a hálózatunkon
található CUPS
szerver helyi
IP-címét.
A Windows® XP előtti változatai nem képesek együttműködni a hálózaton megosztott IPP alapú nyomtatókkal. A Windows® 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® 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:
http://szervernév-vagy-ip
:631/printers/nyomtatónév
Ha az IPP támogatását még nem tartalmazó régebbi Windows® változatunk van, akkor a CUPS szolgáltatásait a net/samba3 szerveren keresztül tudjuk elérhetővé tenni, azonban ennek bemutatásával itt most nem foglalkozunk.
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 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
/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
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.
# Á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. <Location /> Order allow,deny #Allow localhost Allow 192.168.1.* # Adjuk meg a helyi hálózatunkat. </Location> # A helyi hálózatról el tudjuk érni az adminisztrációs felületet. <Location /admin> #Encryption Required Order allow,deny #Allow localhost Allow 192.168.1.* # Adjuk meg a helyi hálózatunkat. </Location> # A helyi hálózatunkról el tudjuk érni a konfigurációs állományt. <Location /admin/conf> AuthType Basic Require user @SYSTEM Order allow,deny #Allow localhost Allow 192.168.1.* # Adjuk meg a helyi hálózatunkat. </Location> # Az alapértelmezett nyomtatási és feladatkezelési házirendek. <Policy default> # A feladatokat kizárólag csak a tulajdonosaik vagy a rendszergazda # képesek elvégezni. <Limit Send-Document Send-URI Hold-Job Release-Job Restart-Job Purge-Jobs \ Set-Job-Attributes Create-Job-Subscription Renew-Subscription Cancel-Subscription \ Get-Notifications Reprocess-Job Cancel-Current-Job Suspend-Current-Job Resume-Job \ CUPS-Move-Job> Require user @OWNER @SYSTEM Order deny,allow </Limit> # A karbantartást csak megfelelő hitelesítés után végezhetünk. <Limit Pause-Printer Resume-Printer Set-Printer-Attributes Enable-Printer \ Disable-Printer Pause-Printer-After-Current-Job Hold-New-Jobs Release-Held-New-Jobs \ Deactivate-Printer Activate-Printer Restart-Printer Shutdown-Printer Startup-Printer \ Promote-Job Schedule-Job-After CUPS-Add-Printer CUPS-Delete-Printer CUPS-Add-Class \ CUPS-Delete-Class CUPS-Accept-Jobs CUPS-Reject-Jobs CUPS-Set-Default> AuthType Basic Require user @SYSTEM Order deny,allow </Limit> # A feladatokat csak a tulajdonosaik és a rendszergazda tudják törölni. <Limit Cancel-Job CUPS-Authenticate-Job> Require user @OWNER @SYSTEM Order deny,allow </Limit> <Limit All> Order deny,allow </Limit> </Policy>
Ha a CUPS lesz az
elsődlegesen használt nyomtatási rendszer,
akkor az /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:
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.