Linux als SOHO-Server

für Linux- und Windows-Clients
http://linux.eusterholz.dyndns.org

Kapitel:

Home
Debian Installation
Debian Etc.
Internet-Zugang
Telnet
FTP
r-Utilities
SSH
Printing
NTP
Nameserver
NFS/NIS/Automount
Samba (SMB-Server)
Apache (WEB-Server)
Modem / ISDN
Backup
Etc.


Netz-Drucker

Installation ] Vorbemerkungen ] 'Stand-alone'-Server ] Domänencontroller ] [ Netz-Drucker ] Windows-Zugriff ] Linux-Zugriff ] SWAT ] Sonstiges ]


Außer der zentralen Datenspeicherung ist das Bereitstellen zentraler Druckdienste eine der wichtigsten Aufgaben im Netzwerk. Der Hauptvorteil eines zentralen Druckdiensten ist, der geringere Kostenaufwand, da nicht jeder Client mit einem separaten lokalen Drucker ausgestattet werden brauch. Samba vermag die netzweiten Druckfunktionen bereit zu stellen, dabei dient Samba sozusagen als Vermittler zwischen dem Client und dem auf dem Linux-System lokal laufenden Drucksystem, welches das eigentliche Ausdrucken vornimmt. Als Drucksysteme kommen unter Linux/Samba mehrere in Frage, die gängigsten sind dabei LPD und CUPS.

Im Verlauf dieser Seite wird anhand von Beispielen gezeigt, wie Samba zu konfigurieren ist, um die Aufgabe eines Netzdruckers (Print-Servers) wahrnehmen zu können. Als Basis-Konfiguration kann z.B. einer der beiden 'smb.conf'-Dateien aus dem vorangegangenen Unterkapitel genutzt werden. Als Drucksysteme werden nur LPD und CUPS berücksichtigt, wie die Drucksysteme zu realisieren sind kann im Kapitel: 'Printing' nachgelesen werden. Weiterhin wird anhand von 'Windows XP' exemplarisch gezeigt, wie der Netzdrucker einzubinden ist.

Integration des Drucksystems

Um in Samba ein Drucksystem zu integrieren, sind einige kleine Erweiterungen in der 'smb.conf' notwendig. Dazu ist in der Sektion '[global]' das Drucksystem und die Druckkommandos einzufügen. Zusätzlich muss noch eine Freigabe für den Drucker erstellt werden. Mit dem reservierten Standardname '[printers]', ist es möglich alle vorhandenen Drucker zusammen freizugeben.

Auszug aus: /etc/samba/smb.conf (globale Druckerfreigabe mit LPD-Drucksystem)

[global]
        ...
        printing = bsd
        printcap name = /etc/printcap
        load printers = Yes
        ...

[printers]
        comment = Alle Drucker
        path = /tmp
        printable = Yes
        browseable = No
        printer admin = root, @smb-admins
        ...

In der Sektion '[globals]' ist zunächst konkret das Drucksystem mit dem Parameter: 'printing' anzugeben (in diesem Fall: 'bsd' für das LPD-Drucksystem). Weiterhin ist der dazugehörige 'printcap name' anzugeben. Mit dem Parameter 'load printers = Yes' werden alle Drucker, die in der 'printcap'-Datei angegeben sind, automatisch zu der Übersicht (in der Netzwerkumgebung vom Explorer oder bei 'net view') hinzugefügt.

Möchte man gezielt nur bestimmte Drucker freigeben, ist anstatt des Standardnamens '[printers]', eine eigene Freigabe zu wählen. Der Name der Freigabe kann frei gewählt werden. Das folgende Beispiel zeigt wie eine Einzelfreigabe für Drucker aussehen kann:

Auszug aus: /etc/samba/smb.conf (gezielte Druckerfreigabe mit CUPS-Drucksystem)

[global]
        ...
        printing = cups
        printcap name = cups
        load printers = No
        ...

[HP-DJ870]
        comment = HP DeskJet 870Cxi
        path = /tmp
        printable = Yes
        printer name = lp
        printer admin = root, @smb-admins
        ...

In diesem Beispiel wird das Drucksystem CUPS angewandt ('printing = cups'), als 'printcap name' kann ebenfalls 'cups' gewählt werden. Damit nun nur die gewünschten Drucker angeboten wird, ist der Parameter 'load printers' auf 'No' zu setzen. Anstatt des Standardnamens '[printers]', ist eine eigenen Freigabe (in diesem Bsp.: '[HP-DJ870]' grüne Markierung) zu erzeugen. Der entscheidende Unterschied zu einer Verzeichnis-Freigabe, besteht eigentlich nur durch die Anweisungen 'printable = Yes' und 'printer name = lp'. Samba merkt daran, dass es sich hierbei um einen Drucker-Dienst und nicht um einen Datei-Dienst handelt. Die Angabe 'printer name = lp' bezieht sich auf den Namen des Druckers, der unter Linux gültig ist.

Manuelle Installation der Druckertreiber unter Windows

Um nun unter Windows den Netzdrucker nutzen zu können, sollte zunächst geprüft werden, ob das Share '[HP-DJ870]' vorhanden ist:

Mittels eine Doppel-Klick auf  'HP-DJ870' wird die Installation eingeleitet, dabei wird zunächst versucht einen Treiber für den Drucker vom Server zu installieren. Sind keine Treiber auf dem Server abgelegt, kommt es zu folgenden Dialog:

Mittels 'OK' wird der 'Druckinstallations-Assistent' geöffnet und ein passender Treiber kann nach Hersteller und Drucker-Typ ausgewählt werden:

Alternativ kann auch mit dem Button 'Datenträger' ein externer Treiber von Diskette oder CD geladen werden.
Nach der Installation des Treibers sollte der Netzdrucker einsatzbereit sein.

Automatische Druckertreiber-Installation

Bei größeren Netzwerken mit vielen Clients sollte eine automatische Druckertreiberinstallation in Erwägung gezogen werden. Benutzer können so einfach und problemlos den Drucker installieren, die richtigen Treiber werden dabei vom Samba-Server zu Verfügung gestellt.
Bei der automatischen Druckertreiber-Installation gibt es verschiedene Möglichkeiten, im Folgenden wird eine Möglichkeit anhand eines Beispiels mit Samba in Kombination mit CUPS vorgestellt, bei denen Windows-Treiber, z.B. aus dem Windows-System oder vom Druckerhersteller (Disketten/CD) direkt verwendet werden.

Vorbedingungen auf dem Linux-System

Beim Einsatz von CUPS sind zunächst alle Drucker dem Drucksystem bekannt zu machen, hierzu eignet sich die Web-Interface oder das Kommandozeilentool 'lpdadmin'.
Damit nun nicht nur Postscript-Daten, sondern auch zusätzlich bereits für den Drucker aufbereitete Rohdaten (RAW-Mode) verarbeiten können, ist jeweils eine Änderung in den beiden Dateien '/etc/cups/mime.convs' sowie '/etc/cups/mime.types' notwendig (vgl.: Kapitel: 'Printing/CUPS').

Bei der automatischen Druckertreiber-Installation werden die Treiber vom Samba-Server, durch eine spezielle Freigabe bereitgestellt. In dieser spezielle Freigabe '[print$]', ist ein 'path' zu deklarieren, der auf das Verzeichnis zeigt indem die Druckertreiber zu finden sind. Hierzu als Beispiel, Auszüge aus der 'smb.conf' bezüglich der relevanten Dinge für eine automatischer Treiber-Installation:

Auszug aus: /etc/samba/smb.conf (autom. Druckertreiber-Installation, gezielte Druckerfreigabe mit CUPS)

[global]
        ...
        printing = cups
        printcap name = cups
        load printers = No
        ...

[HP-DJ870]
        comment = HP DeskJet 870Cxi
        path = /tmp
        printer admin = root, @smb-admins
        printable = Yes
        printer name = lp

[PDF-Printer]
        comment = PDF-Drucker (~/cups-pdf/)
        path = /tmp
        printer admin = root, @smb-admins
        printable = Yes
        printer name = PDF-Printer

[print$]
        path = /var/lib/samba/printers/
        write list = root, @smb-admins

...

Im Teil '[global]', sind wie oben schon vorgestellt, die relevanten Dinge bez. CUPS eingetragen. Dabei wird in diesem Beispiel von der gezielten Druckerfreigabe gebrauch gemacht. Die Freigeben '[HP-DJ870]' und '[PDF-Printer]' repräsentieren hier zwei Drucker. Die Freigabe '[print$]' ist, wie schon erwähnt, für die abgelegten Druckertreiber zuständig. Clients beziehen von dem im 'path' angegebenen Verzeichnis die notwendigen Druckertreiber.
Weiterhin sollte kontrolliert werden, ob das 'path'-Verzeichnis '/var/lib/samba/printers' existiert und über die notwendigen Rechte ('chmod 755') verfügt. Im diesem Verzeichnis sind weitere Verzeichnisse zu finden, indem je nach Windows-Version dann die Treiber abgelegt werden (z.B. 'W32X86' für 'Windows NT x86';  'WIN40' für 'Windows 95/98').
 Nach den Vorbereitungen ist Samba und CUPS neu zu starten.

Druckertreiber auf den Samba-Server bereitstellen

Nach den vorbereitenden Maßnahmen, für die automatische Druckertreiber-Installation, können nun die Treiber von einem Windows-System aus (Windows 'NT4', '2000' und 'XP'), auf dem Server abgelegt werden. Hierzu ein Beispiel unter 'Windows XP':

Mit dem Internet-Explorer ist in das Verzeichnis 'Drucker und Faxgeräte' auf dem Server  zu wechseln. Hier sollten die freigegeben Drucker sichtbar sein. Mit der rechten Maustaste auf dem Drucker-Symbol ist im Kontextmenü der Punkt 'Eigenschaften' auszuwählen. Es sollte nun folgendes Fenster erscheinen:

Paradoxerweise muss hier mit 'Nein' geantwortet werden, um an die Eigenschaften des Druckers heranzukommen:

Im Reiter 'Erweitert' ist nun der Button 'Neuer Treiber...' zu betätigen, um den integrierten Assistenten zum Uploaden der Treiber auf den Server zu aktivieren. Nach einer Willkommens-Meldung, die einfach mit 'Weiter' zu bestätigen ist, gelangt man zur Auswahl des Druckertreibers:

In diesem Fenster ist der Hersteller und der Typ des Druckers auszuwählen, mit dem Button 'Weiter' kann anschließende die Installation fortgesetzt werden. In einen folgenden Fenster ist die Fertigstellung des Assistenten mit 'Fertig stellen' zu bestätigen. Danach sollten die Treiber vom Windows-Client zum Server kopiert werden:

Wieder zurück zum Fenster 'Eigenschaften von ...', kann dieses mit 'OK' geschlossen werden. Das Ablegen der Druckertreiber sollte hiermit abgeschlossen sein. Es können nun für weitere Drucker die entsprechenden Druckertreiber nach der gleichen Vorgehensweise hochgeladen werden.

Installation der Druckertreiber auf dem Client mittels automatischen Druckertreiber-Installation

Weiterhin ein Beispiel wie ein Client (unter 'Windows XP') die automatische Druckertreiber-Installation nutzen kann. Zunächst ist 'Start => Systemsteuerung => Drucker und Faxgeräte' aufzurufen. Mittels 'Drucker hinzufügen' wird der Assistent zu Installation des Druckers gestartet, Nach der Willkommens-Meldung, die mit 'Weiter' zu bestätigen ist, ist der Punkt 'Netzwerkdrucker oder Drucker, der an einen anderen Computer angeschlossen ist' zu wählen:

Mit 'Weiter' gelangt man zum folgenden Fenster, wo der Punkt 'Drucker suchen' selektiert werden sollte:

Wieder mit 'Weiter' ist der freigegebene Drucker auszuwählen; alle freigegebene Drucker sollten hier erscheinen:

Mit 'Weiter' gelangt man zum Fenster 'Fertigstellen des Assistenten' welches mit 'Fertig stellen' wieder zu bestätigen ist. Danach sollte der Drucker für den Windows-Client einsatzbereit sein.

Anmerkungen

Obwohl der typische Client für einen Samba-Netzdrucker ein Windows-System ist, kann mittels 'smbprint' auch ein Linux-System den Netzdrucker nutzen.

Die automatische Druckerinstallation für Windows NT Clients funktioniert erst mit der Samba-Version 2.2.x.. Bei vorherigen Versionen geht dieses nur mit Windows 9x-Clients. Auch wurde das Share '[print$]' früher mit '[printer$]' benannt.

Weitere Infos

Homepage: Samba http://www.samba.org/
The Official Samba-3 HOWTO and Reference Guide http://us4.samba.org/samba/docs/man/Samba-HOWTO-Collection/
Samba-3 by Example http://us4.samba.org/samba/docs/man/Samba-Guide/
Deutschsprachige Übersetzung der Dokumentation zu Samba 3 http://gertranssmb3.berlios.de/
Samba Version 3.0.9-Referenz http://www.millin.de/downloads/3-89990-121-5/kapitel17/index.html
Samba, 2. Auflage http://www.oreilly.de/german/freebooks/samba2ger/
Printing Support in SAMBA 3.0 http://www.linuxprinting.org/kpfeifle/SambaPrintHOWTO/Samba-
HOWTO-Collection-3.0-PrintingChapter-11th-draft.html
Manualseite zu: lpd; cups man lpd; man cups
Manualseite zu: cupsaddsmb man cupsaddsmb
System-Dokumentation:  samba; samba-common /usr/share/doc/samba; /usr/share/doc/samba-common

Home ] Nach oben ] Installation ] Vorbemerkungen ] 'Stand-alone'-Server ] Domänencontroller ] [ Netz-Drucker ] Windows-Zugriff ] Linux-Zugriff ] SWAT ] Sonstiges ]

letzte Änderung: 16. März 2009

 

Copyright © 2004 Norbert Eusterholz