Kapitel 11. Drucken

Inhaltsverzeichnis

11.1 CUPS
11.1.1 Pakete
11.1.2 Design
11.1.3 Scheduler
11.1.4 Konfigurationsdateien
11.1.5 Berkeley- und System-V-Kommandos
11.1.6 Filter-Programme
11.1.7 Administration
11.2 Drucken von True-Type-Fonts
11.3 Netzwerkdrucker
11.3.1 Linux - Linux

In der langen Entwicklungsgeschichte von Unix gibt es zwei bedeutende Drucksysteme, Berkeley Line Printer Daemon („ lpd“) und AT&T Line Printer System. Im Laufe der Jahre gab es einige Alternativen zu diesen Systemen (beispielsweise LPRng), doch an den grundlegenden Funktionen hat sich kaum etwas geändert.

Das betagte Drucksystem führte aufgrund der begrenzten Funktionalitäten zu einigen Problemen, und so begannen einige Entwickler, eigene Erweiterungen in die Programme einzubauen, ohne das Problem grundsätzlich zu lösen.

Von der Firma Easy Software Products wurde CUPS (Common UNIX Printing System) entwickelt und unter der GPL (bzw. LGPL für die API Library) freigegeben. CUPS benutzt das Protokoll IPP (Internet Printing Protocol) und bietet die von System V und Berkeley gewohnten Kommandozeilen-Tools. Ein Umstieg auf CUPS lohnt sich, probieren Sie es aus.

Natürlich besteht immer noch die Möglichkeit, auch die „klassischen“ Drucksysteme einzusetzen. Zur Konfiguration des klassischen Drucksystems stehen verschiedene Programme zur Verfügung.

11.1 CUPS

Historisch gesehen stammen die bisherigen Drucksysteme unter Unix entweder aus der Familie der BSD-Systeme (LPD, definiert durch RFC 1179) oder aus dem AT&T-Lager. Beide Drucksysteme wurden in den 70er Jahren entworfen und sind für die Anforderungen der damaligen Drucktechnik (Zeilendrucker/Nadeldrucker) ausgelegt. Von den verschiedenen Herstellern kommerzieller Unix-Varianten wurden gelegentlich Erweiterungen eingebracht.

Natürlich gab es auch einige Entwicklungen, die versuchten, die etablierten Drucksysteme zu ersetzen. Hier sind LPRng, Palladin und PLP zu nennen. Leider hat keiner dieser Ansätze grundlegende Änderungen oder Verbesserungen gebracht.

In den letzten Jahren gab es diverse Versuche, eine neue Standard-Schnittstelle zu definieren, unter anderem den Entwurf zum POSIX-Standard, der vom „Institute of Electrical and Electronics Engineers, Inc.“ (IEEE, Nr. IEEE-1387.4) herausgegeben wurde, sowie das „Internet Printing Protocol“ (IPP), entwickelt von der Internet Engineering Task Force“ (IETF) durch die Printer Working Group“ (PWG, IETF-IPP). Der POSIX-Standard definiert einheitliche Kommandozeilen-Werkzeuge, ebenso wie eine C-Schnittstelle zur Druckerverwaltung und zur Verwaltung der Druckaufträge.

Das „Internet Printing Protocol“ definiert Erweiterungen zum Protokoll HTTP (HyperText Transport Protocol 1.1 [RFC2616]), um das Drucken auf Netzwerkdruckern zu ermöglichen. IPP/1.0 wurde von der IETF als experimenteller Request for Comments (RFC) im Oktober 1999 akzeptiert. Seitdem entwickelte die Printer Working Group eine erweiterte Spezifikation für die Version IPP/1.1, die von der IETF als empfohlener Standard akzeptiert wurde. Anders als der POSIX-Standard erfreut sich IPP einer weit reichenden Unterstützung durch die Industrie, und es scheint sich als Netzwerk-Drucklösung für alle Betriebssysteme durchzusetzen.

CUPS benutzt IPP/1.1, um ein umfassendes und modernes Drucksystem für Unix-Systeme mit einer weit reichenden Unterstützung für moderne Drucker und Protokolle zu bieten. Natürlich bleibt die Kompatibilität zu den bestehenden Anwendungen erhalten. CUPS ist Freie Software und wird unter der GNU General Public License und der GNU Lesser General Public License zur Verfügung gestellt.

11.1.1 Pakete

Folgende Debian-Pakete, die mit CUPS im Zusammenhang stehen, sind verfügbar:

  • cupsys - Common UNIX Printing System - Server

  • cupsys-bsd - Common UNIX Printing System - BSD-Kommandos

  • cupsys-client - Common UNIX Printing System - System-V-Kommandos

  • qtcups - Qt-basierte Administration für CUPS

  • cupsys-driver-gimpprint - gimp-print-Druckertreiber für CUPS

  • gtklp - GTK-basierte Administration für CUPS

  • kups - KDE-basierte Administration für CUPS

Es gibt noch einige weitere Pakete, die von den genannten abhängen; hauptsächlich sind dies Libraries.

Nach der Installation der gewünschten Pakete ist CUPS wie gewohnt bereits so gut wie einsatzbereit. Sie sollten aber noch den administrativen Zugriff erlauben. Hierzu wurde eine Gruppe „lpadmin“ eingerichtet, zu der die Benutzer hinzugefügt werden können, die administrative Rechte am Drucksystem haben sollen.

In der Grundeinstellung erlaubt die Konfiguration aus Sicherheitsgründen lediglich Verbindungen vom lokalen System. Diese Einstellung kann in der Datei /etc/cups/cupsd.conf geändert werden. Am Ende dieser Datei finden sich die Zugriffsbeschränkungen. Achten Sie darauf, den Zugriff nur von Systemen zu erlauben, denen Sie vertrauen, oder aktivieren Sie eine Authentifizierung.

11.1.1.1 Treiber

Die CUPS-Pakete beinhalten Treiber für HP LaserJet und DeskJet, Epson Stylus Color sowie Stylus Photo Drucker.

11.1.1.2 Integration von Samba

Sie können Samba zur Zusammenarbeit mit CUPS bewegen, um CUPS-Drucker den Windows-Clients im Netz zur Verfügung zu stellen.

Hierzu gibt es zwei Möglichkeiten.

Samba benutzt das System-V-Drucksystem. Hierzu muss die Samba-Konfiguration (in /etc/samba/smb.conf) wie folgt ergänzt werden:

[global]
  printing = sysv
  printcap name = lpstat

[printers]
  lpq command = /usr/bin/lpstat %p
  lprm command = /usr/bin/cancel %p-%j
  print command = /usr/bin/lp -d%p -oraw %s ; /bin/rm -f %s

Damit dies funktioniert, muss das Paket cupsys-client installiert werden.

Alternativ unterstützen aktuelle Samba-Versionen direkt das Drucken zu einem CUPS-System. Auch hierzu muss an der Samba-Konfiguration etwas verändert werden.

[global]
  printing = cups
  printcap name = /etc/printcap.cups

11.1.1.3 Tipps

CUPS unterstützt das „Browsing“ über Broadcast-Requests, um andere CUPS-Server und -Drucker im Netz zu finden und diese den Clients zur Verfügung zu stellen. Auch diese Funktion ist normalerweise ausgeschaltet. Wenn diese Funktion aktiviert wird, kann dies dazu führen, dass Dial-on-demand-Verbindungen bei einem Broadcast aktiviert werden. Dies kann zu ungewollt hohen Online-Kosten führen. Wenn Sie diese Funktion aktivieren, achten Sie darauf, dass Sie die Broadcast-Adresse entsprechend setzen.

Wenn Sie das Kommando enable aus dem Paket cupsys-client benutzen, kann es zu Problemen mit dem gleichnamigen Befehl aus der bash kommen. Diese Probleme können umgangen werden, wenn Sie das Kommando cupsenable benutzen, das sich genauso verhält. Um die Konsistenz zu wahren, sind ebenfalls die Kommandos cupsdisable, cupsaccept und cupsreject verfügbar.

11.1.2 Design

Wie die meisten anderen Drucksysteme wurde für CUPS ebenfalls ein zentraler Prozess geschaffen, der die Druckaufträge verwaltet, administrative Befehle entgegennimmt und Statusinformationen weitergibt. Die Grafik zeigt die grundlegende Organisation von CUPS.

Abbildung 11.1. CUPS-Diagramm

CUPS-Diagramm

11.1.3 Scheduler

Der CUPS-Scheduler ist ein zu HTTP/1.1 kompatibler Server, der einerseits die Druckaufträge entgegennimmt, aber auch eine webbasierte, grafische Administrationsoberfläche zur Verfügung stellt. Letztere bietet neben Verwaltungsfunktionen auch solche zum Überwachen des CUPS-Drucksystems.

Der Scheduler verwaltet auch eine Liste der verfügbaren Drucker im Netz und organisiert die Verwaltung der benötigten Filter und Backends für die verschiedenen Drucker.

11.1.4 Konfigurationsdateien

Die Konfigurationsdateien teilen sich in folgende Typen auf:

  • HTTP-Server-Konfiguration

  • Drucker- und Klassen-Definitionen

  • MIME-Typ- und Konvertierungsinformationen

  • PPD-Dateien („PostScript Printer Description“)

Die Konfiguration des HTTP-Servers für CUPS ähnelt sehr der Konfiguration des Apache-Webservers. Hier werden die Zugriffe und Eigenschaften des Servers definiert.

Die Drucker- und Klassenbeschreibungen beschreiben die verfügbaren Drucker und Klassen. Druckerklassen sind Gruppen von Druckern. Druckjobs, die an eine Klasse geschickt werden, werden auf dem ersten verfügbaren Drucker im Round-Robin-Prinzip gedruckt.

In der Liste der MIME-Typen finden sich alle unterstützten MIME-Typen (zum Beispiel „text/plain“, „application/postscript“ usw.) sowie einige „Magic Rules“, um den Typ einer Datei zu bestimmen. Diese werden vom HTTP-Server benutzt, um den „Content-Type“ für „GET-“ und „HEAD“-Anfragen zu bestimmen. Weiterhin benutzt der IPP-Handler die MIME-Typen ebenfalls zur Bestimmung der Dateitypen.

In den Konvertierungsinformationen finden Sie die verfügbaren Filter. Filter werden benutzt, um die von einem Programm kommenden Daten in für den Drucker verständliche Daten umzuwandeln.

Die PPD-Dateien beschreiben die Fähigkeiten eines Druckers; dies beschränkt sich nicht auf Postscript-Drucker. PPD-Dateien für Nicht-Postscript-Drucker beeinhalten zusätzliche Filterfunktionen durch „cupsFilter“, um diese Drucker optimal zu unterstützen.

11.1.5 Berkeley- und System-V-Kommandos

CUPS bietet die von System-V- und Berkley-Unix-Versionen bekannten Befehle für Druckaufträge und Statusabfragen. Die Kommandos „lpstat“ und „lpc status“ zeigen auch Informationen über Netzwerkdrucker (printer@server), wenn das „Browsing“ aktiviert ist.

Die System-V-Administrationskommandos können benutzt werden, um Drucker und Klassen zu verwalten. Das Berkeley-Tool lpc wird nur im „Read-only“-Modus unterstützt.

11.1.6 Filter-Programme

Ein Filter-Programm liest Daten von der Standardeingabe oder aus einer Datei, wenn ein Dateiname angegeben wird. Alle Filter müssen einen gemeinsamen Befehlssatz unterstützen, wie zum Beispiel den Namen des Druckers, die Job-ID, einen Benutzernamen, einen Job-Titel, die Anzahl der gewünschten Kopien und weitere Druckoptionen. Alle Ausgaben werden auf die Standardausgabe geschickt.

Filter sind für die verschiedensten Dateiformate verfügbar und können bei Bedarf verknüpft werden, um das gewünschte Ergebnis zu erzielen.

Der PostScript-Filter basiert auf Ghostscript 5.50.

11.1.7 Administration

Für die Administration von CUPS stehen dem Administrator unterschiedliche Frontends zur Verfügung. Neben den klassischen, kommandozeilenbasierten Hilfsprogrammen bietet sich auch eine webbasierte Oberfläche an.

11.1.7.1 Kommandozeilenbasierte Administration

11.1.7.1.1 Grundlagen

Jeder unter CUPS benutzte Drucker wird über ein der Hardware entsprechendes Device angesprochen. Devices unter CUPS werden als URIs („Uniform Resource Identifiers“) bezeichnet, ähnlich wie URLs („Uniform Resource Locators“), die Sie aus Ihrem Webbrowser kennen. Der erste parallele Port unter Linux würde der URI

parallel:/dev/lp1

entsprechen.

Eine komplette Liste aller auf Ihrem System gefundenen Devices kann mit dem Kommando lpinfo -v angezeigt werden:

surimi:~# lpinfo -v
      file file
      network socket
      network http
      network ipp
      network lpd
      direct parallel:/dev/lp1
      serial serial:/dev/ttyS1?baud=115200
      serial serial:/dev/ttyS2?baud=115200
      direct usb:/dev/usb/lp0
      network smb

Das erste Wort jeder Zeile beschreibt den Typ der Schnittstelle, danach folgt die URI oder eine andere Zugriffsmethode.

Weiterhin gehört zu jedem unter CUPS eingerichteten Drucker eine so genannte PPD-Datei („PostScript Printer Description“), die die Eigenschaften des Druckers beschreibt. PPD-Dateien werden sowohl für PostScript- als auch für Nicht-PostScript-Drucker verwendet.

11.1.7.1.2 Drucker hinzufügen

Um einen Drucker hinzuzufügen, können Sie das Kommando lpadmin -p benutzen. Die komplette Syntax zu diesem Kommando lautet:

lpadmin -p <printer> -E -v <device> -m <ppd>

Um beispielsweise einen HP-Deskjet-Drucker, der an der parallelen Schnittstelle angeschlossen ist, hinzuzufügen, kann das Kommando

lpadmin -p DeskJet -E -v parallel:/dev/lp1 -m deskjet.ppd 

benutzt werden. Hier gleich noch ein Beispiel für einen HP-LaserJet-Drucker, der über einen Netzwerkanschluss (JetDirect) verfügt und dem die IP-Adresse 11.22.33.44 zugewiesen wurde:

lpadmin -p LaserJet -E -v socket://11.22.33.44 -m laserjet.ppd 

Eine Übersicht über die verfügbaren PPD-Dateien und darüber, welche Drucker sich mit diesen ansteuern lassen, finden Sie unter /usr/share/doc/cupsys/online-docs/sam.html, wenn CUPS bereits auf Ihrem System installiert ist. Diese Liste enthält nur Druckertreiber, die zum Standardumfang von CUPS gehören; wenn Sie weitere Treiber installiert haben, tauchen diese nicht in der Dokumentation auf.

11.1.7.1.3 Drucker verändern

Zur Veränderung von Druckern von der Kommandozeile aus ist ebenfalls das Kommando lpadmin geeignet.

Die Syntax lautet:

lpadmin -p <printer> <options>

Als weitere Optionen können folgende angegeben werden:

  • -c class Fügt den Drucker der genannten Gruppe (Klasse) hinzu. Wenn diese Gruppe nicht existiert, wird sie erzeugt.

  • -i Interface Kopiert das benannte Interface-Skript zum Drucker. Interface-Skripts werden ausschließlich von System-V-Druckertreibern benutzt. Da hierbei alle anderen Filter deaktiviert werden, sollte dieses Verfahren nur benutzt werden, wenn kein anderer Treiber zur Verfügung steht.

  • -m model Bezeichnet den Standard-Druckertreiber, normalerweise eine PPD-Datei. Eine Liste aller verfügbaren Modelle kann mit dem Kommando lpinfo -m angezeigt werden. Wenn das Paket cupsys-driver-gimpprint installiert wurde, steht eine deutlich größere Anzahl von Druckertreibern zur Verfügung.

    surimi:~# lpinfo -m
    bjc-30.ppd.gz CANON BJC 30, CUPS+GIMP-print v4.1.7
    bjc-50.ppd.gz CANON BJC 50, CUPS+GIMP-print v4.1.7
    bjc-55.ppd.gz CANON BJC 55, CUPS+GIMP-print v4.1.7
    bjc-80.ppd.gz CANON BJC 80, CUPS+GIMP-print v4.1.7
    bjc-85.ppd.gz CANON BJC 85, CUPS+GIMP-print v4.1.7
    bjc-1000.ppd.gz CANON BJC 1000, CUPS+GIMP-print v4.1.7
    bjc-2000.ppd.gz CANON BJC 2000, CUPS+GIMP-print v4.1.7
    bjc-3000.ppd.gz CANON BJC 3000, CUPS+GIMP-print v4.1.7
    bjc-4300.ppd.gz CANON BJC 4300, CUPS+GIMP-print v4.1.7
    bjc-4400.ppd.gz CANON BJC 4400 photo, CUPS+GIMP-print v4.1.7
    bjc-6000.ppd.gz CANON BJC 6000, CUPS+GIMP-print v4.1.7
    bjc-6100.ppd.gz CANON BJC 6100, CUPS+GIMP-print v4.1.7
    bjc-6200.ppd.gz CANON BJC 6200, CUPS+GIMP-print v4.1.7
    bjc-6500.ppd.gz CANON BJC 6500, CUPS+GIMP-print v4.1.7
    ...
    pcl-3.ppd.gz HP LaserJet III series, CUPS+GIMP-print v4.1.7
    laserjet.ppd HP LaserJet Series CUPS v1.1
    pcl-P1000.ppd.gz HP PhotoSmart P1000, CUPS+GIMP-print v4.1.7
    pcl-P1100.ppd.gz HP PhotoSmart P1100, CUPS+GIMP-print v4.1.7
    lexmark-3200.ppd.gz LEXMARK 3200, CUPS+GIMP-print v4.1.7
    lexmark-4076.ppd.gz LEXMARK 4076, CUPS+GIMP-print v4.1.7
    lexmark-z31.ppd.gz LEXMARK Z31, CUPS+GIMP-print v4.1.7
    lexmark-z52.ppd.gz LEXMARK Z52, CUPS+GIMP-print v4.1.7
    okidata9.ppd OKIDATA 9-Pin Series CUPS v1.1
    okidat24.ppd OKIDATA 24-Pin Series CUPS v1.1
    

  • -r class löscht einen Drucker aus der Gruppe. Wird der letzte Drucker einer Gruppe gelöscht, so wird auch die Gruppe gelöscht.

  • -v device-uri Setzt die Gerätedatei für die Kommunikation mit dem Drucker. Wenn für diesen Drucker bereits ein Druckjob anliegt, so wird dieser neu gestartet und an das neue Device gesendet.

  • -D info Hier kann die Beschreibung für diesen Drucker angegeben werden. Beispielsweise „Drucker im Büro Hr. Torvalds“.

  • -EEnable“ Aktiviert den Drucker. Diese Option hat die gleichen Folgen wie die Kommandos enable(1) und accept(8).

  • -L location Beschreibt den Standort des Druckers.

  • -P ppd-file Name der zu verwendenden PPD-Datei.

11.1.7.1.4 Drucker löschen

Um einen Drucker zu löschen, wird die Option -x benutzt. Um den Drucker „LaserJet“ zu löschen, kann folgendes Kommando benutzt werden:

lpadmin -x LaserJet

11.1.7.1.5 Standarddrucker festlegen

Der Standarddrucker wird mit der Option -d (default) gesetzt.

lpadmin -d LaserJet

11.1.7.1.6 Starten und stoppen von Druckern

Die Kommandos enable und disable starten und stoppen den angegebenen Drucker.

enable LaserJet
disable LaserJet

Gestoppte Drucker akzeptieren weiterhin Druckaufträge. Diese werden jedoch erst gedruckt, nachdem der Drucker wieder aktiviert wurde. Dies gibt dem Administrator die Chance, ein Druckerproblem zu lösen, ohne dass Druckaufträge verloren gehen.

accept LaserJet
reject LaserJet

Mit diesen Kommandos werden alle aufgelaufenen Druckaufträge gedruckt und weitere Druckaufträge nicht angenommen. Wenn der Drucker längere Zeit nicht zur Verfügung steht, kann er so deaktiviert werden.

11.1.7.2 Webbasierte Administration

Die Administration von CUPS kann auch komplett über ein Webinterface erfolgen. Hierzu wird ein Webbrowser benötigt. CUPS benutzt den Port 631 für das Konfigurationsinterface. Aus Sicherheitsgründen lässt sich das Webinterface zunächst nur von lokalen Rechnern aus benutzen. Unter der URL http://localhost:631 wird das Webinterface zur Verfügung gestellt.

Abbildung 11.2. CUPS-Administration - Webinterface

CUPS-Administration - Webinterface

Alle Bereiche, über die eine Veränderung der Konfiguration vorgenommen werden kann, sind nur mit einem Usernamen und dem passenden Passwort erreichbar. In jedem Fall kann die Administration als Superuser (root) erfolgen.

Die grafische Administration gliedert sich in folgende Bereiche, die über die Startseite oder von jeder Seite aus über die Navigationsleiste am oberen Bildschirmrand erreicht werden können:

11.1.7.2.1 Administration

(Administration) bietet eine Übersicht über die Bereiche „Classes“, „Jobs“ und „Printers“ usw.

Abbildung 11.3. CUPS-Administration - Übersicht

CUPS-Administration - Übersicht

11.1.7.2.2 Gruppen

(Classes) Hier können Druckergruppen definiert werden. Wenn ein Druckauftrag an eine Gruppe gesendet wird, so wird der erste verfügbare Drucker dieser Gruppe den Auftrag bearbeiten. Dies ist in größeren Firmen sinnvoll; so wird vermieden, dass auf einen Druckauftrag lange gewartet werden muss.

Abbildung 11.4. CUPS-Administration - Gruppen (Classes)

CUPS-Administration - Gruppen (Classes)

11.1.7.2.3 Dokumentation

(Help) An dieser Stelle finden Sie Verweise auf die englische Dokumentation.

11.1.7.2.4 Druckaufträge

(Jobs) Hier können noch anstehende Druckaufträge verwaltet werden.

Abbildung 11.5. CUPS-Administration - Druckaufträge

CUPS-Administration - Druckaufträge

11.1.7.2.5 Drucker

(Printers) Sicher der wichtigste Punkt: die Verwaltung der Drucker. Hier können Drucker hinzugefügt oder verändert werden.

Abbildung 11.6. CUPS-Administration - Druckerverwaltung

CUPS-Administration - Druckerverwaltung

In diesem Beispiel wurde bereits ein Drucker eingerichtet. Normalerweise ist diese Seite nach der Installation von CUPS leer. Durch einen Klick auf „Add Printer“ kann ein neuer Drucker zum System hinzugefügt werden.

Abbildung 11.7. CUPS-Administration - Drucker hinzufügen - Name

CUPS-Administration - Drucker hinzufügen - Name

Zunächst sind für den Drucker ein Name, der Standort und eine Beschreibung anzugeben.

Abbildung 11.8. CUPS-Administration - Drucker hinzufügen - Schnittstelle

CUPS-Administration - Drucker hinzufügen - Schnittstelle

Wenn der Drucker lokal an der parallelen Schnittstelle des Rechners angeschlossen ist, wählen Sie hier „Parallel Port #1“ aus.

CUPS bietet aber noch weitere Möglichkeiten, um Daten auf Druckern auszugeben, die nicht lokal installiert sind.

  • http druckt direkt zum CUPS-Port eines CUPS-Servers.

  • ipp druckt über das IPP (Internet Printing Protocol).

  • ipd druckt über eine Queue des IPP (Internet Printing Protocol).

  • smb druckt auf freigegebenen Druckern, die an Windows-Systemen angeschlossen sind. Hierzu muss zusätzlich das Paket samba installiert sein, da das Programm smbspool benötigt wird.

Abbildung 11.9. CUPS-Administration - Drucker hinzufügen - Hersteller

CUPS-Administration - Drucker hinzufügen - Hersteller

Hier ist der Hersteller des Druckers anzugeben.

Abbildung 11.10. CUPS-Administration - Drucker hinzufügen - Treiber

CUPS-Administration - Drucker hinzufügen - Treiber

An dieser Stelle erfolgt die genaue Auswahl des geeigneten Druckertreibers. Versuchen Sie möglichst genau den richtigen Treiber auszuwählen.

Damit ist die Einrichtung eines Druckers grundsätzlich abgeschlossen. Es sollte trotzdem noch ein Blick auf die weiteren Parameter geworfen werden.

Abbildung 11.11. CUPS-Administration - Druckerparameter ändern

CUPS-Administration - Druckerparameter ändern

Hier sollten zumindest die Werte für die Papiergröße und die Druckauflösung angepasst werden. Je nach verwendetem Drucker und Treiber stehen hier noch weitere Optionen zur Verfügung. Weiterhin kann für jeden Druckauftrag eine Start- oder Endeseite gedruckt werden.

11.1.7.2.6 Software

Verweist auf die Webseite http://www.cups.org.

11.1.7.3 CUPS-Konfigurationsdatei

Die Konfigurationsdateien für CUPS finden Sie unter /etc/cups/. Normalerweise ist es nicht notwendig, an diesen Dateien etwas zu verändern; dennoch gebe ich Ihnen hier einen Überblick über die möglichen Einträge in der Datei /etc/cups/cupsd.conf.

Wenn Sie bereits mit der Konfiguration des Apache-Webservers vertraut sind, werden Sie auch mit dieser Datei schnell zurechtkommen.

11.1.7.3.1 Server-Identität

  • ServerName myhost.domain.com - Der Name des Servers; die Voreinstellung ist der Hostname des Systems.

  • ServerAdmin root@your.domain.com - Die E-Mail-Adresse des Administrators; die Voreinstellung ist root@<hostname>.

11.1.7.3.2 Server-Optionen

  • AccessLog /var/log/cups/access_log - Pfad und Dateiname der Logdatei für die Zugriffe auf den Server. Wenn kein führendes „ / “-Zeichen angegeben ist, wird die Datei relativ zum Startverzeichnis des Servers (ServerRoot) abgelegt. Wird hier syslog angegeben, so werden die Daten an den Syslog-Dämon geschickt.

  • DataDir /usr/share/cups - Das Verzeichnis mit den Datendateien für CUPS.

  • DefaultCharset utf-8 - Benutzter Zeichensatz.

  • DefaultLanguage en - Benutzte Sprache.

  • DocumentRoot /usr/share/cups/doc - Das Verzeichnis für die HTML-Dokumente.

  • ErrorLog /var/log/cups/error_log - Pfad und Dateiname der Logdatei für die Fehlermeldungen des Servers. Wenn kein führendes „ / “-Zeichen angegeben ist, wird die Datei relativ zum Startverzeichnis des Severs (ServerRoot) abgelegt. Wird hier syslog angegeben, so werden die Daten an den Syslog-Dämon geschickt.

  • FontPath /usr/share/cups/fonts - Das Verzeichnis für die Schriften.

  • LogLevel info - Kontrolliert, wie viele Informationen in das ErrorLog geschrieben werden. Folgende Werte sind erlaubt:

    debug2     Log everything.
    debug      Log almost everything.
    info       Log all requests and state changes.
    warn       Log errors and warnings.
    error      Log only errors.
    none       Log nothing.
    
    

  • MaxLogSize 0 - Die maximale Größe jeder Logdatei, ab der die Datei umkopiert und gepackt wird. Die Voreinstellung ist 1048576 (1 Mbyte). Die Angabe 0 deaktiviert diese Funktion.

  • PageLog /var/log/cups/page_log - Pfad und Dateiname der PageLog-Datei. Wenn kein führendes „ / “-Zeichen angegeben ist, wird die Datei relativ zum ServerRoot abgelegt. Wird hier syslog angegeben, so werden die Daten an den Syslog-Dämon geschickt.

  • PreserveJobHistory Yes - Bestimmt, ob die Druckauftragsliste gespeichert werden soll.

  • PreserveJobFiles No - Bestimmt, ob die Druckaufträge gespeichert werden sollen.

  • AutoPurgeJobs No - Entfernt automatisch Druckjobs, die durch Quota begrenzt werden.

  • MaxJobs 0 - Maximale Anzahl der Jobs (aktive und abgeschlossene), die im Speicher gehalten werden. 0 bedeutet kein Limit.

  • Printcap /etc/printcap - Pfad und Dateiname zur verwendeten Printcap. Keine Angabe unterdrückt die Erzeugung der Datei.

  • RequestRoot /var/spool/cups - In diesem Verzeichnis werden die Druckdateien zwischen-gespeichert.

  • RemoteRoot remroot - Der Name des Benutzers, der ohne Autorisierung Zugriff von einem anderen System erhalten kann.

  • ServerBin /usr/lib/cups - Das Verzeichnis für die benötigten Programme.

  • ServerRoot /etc/cups - Das Root-Verzeichnis für die Programme.

11.1.7.3.3 Verschlüsselung

  • ServerCertificate /etc/cups/ssl/server.crt - Datei mit dem Serverzertifikat.

  • ServerKey /etc/cups/ssl/server.key - Datei mit dem Serverkey.

11.1.7.3.4 Filteroptionen

  • User lp und Group sys - Benutzer und Gruppe, unter denen der Server bei einem externen Kommando läuft.

  • RIPCache 8m - Speicher je RIP (Raster Image Processor), der für das Zwischenspeichern von Grafiken zur Verfügung steht. Der Wert kann jede ganze Zahl sein, gefolgt von „k“, „m“ oder „g“ für Kilo-, Mega- oder Gigabyte.

  • TempDir /var/spool/cups/tmp - Das Verzeichnis für temporäre Dateien. Dieses Verzeichnis muss für den oben genannten Benutzer beschreibbar sein.

  • FilterLimit 0 - Maximale Anzahl von Filtern je Druckauftrag. Ein gewöhnlicher Druckjob benötigt mindestens einen Wert von 200; der Wert 0 bedeutet kein Limit.

11.1.7.3.5 Netzwerkoptionen

  • Port 631 - Port, auf dem der Daemon horcht.

  • Listen hostname - Adresse, auf der der Daemon horcht.

  • HostNameLookups On - Aktivieren der Nameserver-Abfragen bei Zugriffen.

  • KeepAlive On - Aufrechterhalten der Verbindung.

  • KeepAliveTimeout 60 - Zeit, nach der KeepAlive-Verbindungen beendet werden.

  • MaxClients 100 - Maximale Anzahl der gleichzeitigen Client-Verbindungen.

  • MaxRequestSize 0 - Maximale Größe der HTTP-Anfragen und der Druckdateien. 0 bedeutet kein Limit.

  • Timeout 300 - Zeitintervall in Sekunden, nach dessen Ablauf eine Anfrage ungültig wird.

11.1.7.3.6 Browsing-Optionen

  • Browsing On - Aktiviert die netzwerkweiten Druckerinformationen.

  • BrowseAddress x.y.z.255 - Die Broadcast-Adresse für das Browsing.

  • BrowseShortNames Yes - Benutzung von Kurznamen für die Drucker, beispielsweise „laserjet“ statt „laserjet@host.domain.de“.

  • BrowseAllow und BrowseDeny - Definieren die Zugriffsrechte für auf den Server zugreifende Browser. Erlaubt sind folgende Notationen für die Adressen:

         All
         None
         *.domain.com
         .domain.com
         host.domain.com
         nnn.*
         nnn.nnn.*
         nnn.nnn.nnn.*
         nnn.nnn.nnn.nnn
         nnn.nnn.nnn.nnn/mm
         nnn.nnn.nnn.nnn/mmm.mmm.mmm.mmm
    

  • BrowseInterval 30 - Zeit zwischen zwei Aktualisierungen.

  • BrowseOrder allow,deny oder BrowseOrder deny,allow - Reihenfolge der erlaubten/verweigerten Zugriffe.

11.1.7.3.7 Aktualisierungen

  • BrowsePoll address:port - Server, die nach Druckern befragt werden sollen.

  • BrowsePort 631 - Port, auf dem die Abfrage erfolgen soll.

  • BrowseRelay source-address destination-address - Weiterleiten von Anfragen.

  • BrowseTimeout 300 - Wenn innerhalb der angegebenen Zeit keine Antwort von einem Drucker kommt, so wird dieser aus der Liste entfernt.

  • ImplicitClasses On - Druckaufträge, die an einen Drucker geschickt werden, unter dessen Namen ebenfalls eine Druckergruppe vorhanden ist, werden an die Gruppe gesendet.

11.1.7.3.8 Sicherheitsoptionen

  • SystemGroup lpadmin - Gruppenname für die administrativen Aufgaben.

  • AuthType Basic - Die zu verwendende Autorisation; diese kann auf die Werte

        None   - Perform no authentication
        Basic  - Perform authentication using the HTTP Basic method.
        Digest - Perform authentication using the HTTP Digest method.
    

    eingestellt werden.

  • AuthClass System - Autorisationsgruppe; diese kann die Werte „Anonymous“, „User“ oder „System“ (für die Benutzer in der Gruppe „SystemGroup“) annehmen.

  • AuthGroupName System - Name der Gruppe für die zu authentifizierende Gruppe.

11.1.7.3.9 Verzeichnisse

Die Zugriffe auf die verschiedenen zur Administration von CUPS benötigten Verzeichnisse können (wiederum ähnlich der Apache-Konfiguration) beschränkt werden. Hierzu stehen folgende Direktiven zur Verfügung:

  • Allow und Deny - Mit diesen Direktiven können Zugriffe erlaubt oder verboten werden. Die Reihenfolge lässt sich durch die Direktive Order beeinflussen.

    Für beide Direktiven sind folgende Notationen erlaubt:

         All
         None
         *.domain.com
         .domain.com
         host.domain.com
         nnn.*
         nnn.nnn.*
         nnn.nnn.nnn.*
         nnn.nnn.nnn.nnn
         nnn.nnn.nnn.nnn/mm
         nnn.nnn.nnn.nnn/mmm.mmm.mmm.mmm
    

    Um die Notationen, die host oder domain enthalten, benutzen zu können, muss die Option HostNameLookups aktiviert sein.

  • Encryption - Hierfür sind folgende Werte möglich:

         Always       - Always use encryption (SSL)
         Never        - Never use encryption
         Required     - Use TLS encryption upgrade
         IfRequested  - Use encryption if the server requests it
    

  • Location / - Für Location können die verschiedenen Verzeichnisse angegeben werden. Zu jedem Eintrag können die oben beschriebenen Werte benutzt werden.

    <Location /classes>
    #
    # You may wish to limit access to printers and classes, either with 
    # Allow and Deny lines, or by requiring a username and password.
    #
    Order Deny,Allow
    Deny From All
    Allow From 127.0.0.1
    </Location>
    

    In diesem Beispiel werden die Zugriffe auf das Verzeichnis /classes auf dem lokalen Rechner beschränkt.