Using SambaRobert Eckstein, David Collier-Brown, Peter Kelly1st Edition November 1999 1-56592-449-5, Order Number: 4495 416 pages, $34.95 |
7. Drucken und Namensauflösung
Dieses Kapitel nimmt zwei Samba-Themen in Angriff: das Einrichten von Druckern für die Verwendung mit einem Sambaserver und die Konfiguration von Samba, damit es einen Windows Internet Name Service (WINS)-Server nutzen oder selbst ein WINS-Server werden kann. Samba erlaubt Client-Maschinen, Dokumente an Drucker zu senden, die am Sambaserver hängen. Außerdem kann Samba dich ebenfalls beim Druck von Unix-Dokumenten auf Druckern einer Windows-Maschine unterstützen. Im ersten Teil dieses Kapitels werden wir besprechen, wie man Drucker dazu bringt, auf jeder Seite zu arbeiten.
In der zweiten Hälfte des Kapitels stellen wir den Windows Internet Name Service vor, Microsofts Implementation eines NetBIOS Name Servers (NBNS). Wie in Kapitel 1, Samba kennenlernen, erwähnt, erlaubt ein NBNS Maschinen, Namensauflösung auf einem NetBIOS-Netzwerk durchzuführen, ohne sich auf Broadcasts verlassen zu müssen. Stattdessen weiß jede Maschine exakt, wo der WINS-Server ist und kann ihn nach den IP-Adressen von anderen Maschinen auf dem Netzwerk fragen.
7.1 Printjobs an Samba senden
Ein mit dem Sambaserver verbundener Drucker erscheint in der Liste der Shares, die in der Netzwerkumgebung angeboten werden. Wenn der Drucker auf dem Client registriert ist und der Client den korrekten Druckertreiber installiert hat, kann der Client mühelos Druck-Jobs an einen mit dem Sambaserver verbundenen Drucker senden. Figur 7.1 zeigt einen Samba-Drucker, wie er in der Netzwerkumgebung eines Windows-Clients erscheint.
Damit du Drucker mit Samba verwalten kannst, solltest du den Basis-Prozess verstehen, durch den Drucken auf einem Netzwerk stattfindet. Das Senden eines Druck-Jobs zu einem Drucker auf einem Sambaserver umfasst vier Schritte:
Öffnen und Authentifizieren einer Verbindung zur Drucker-Share
Drucken und Löschen der Dateikopie
Figur 7.1: Ein Samba-Drucker in der Netzwerkumgebung
Wenn ein Druck-Job bei einem Sambaserver ankommt, werden die Druckdaten temporär auf die Platte in das Verzeichnis geschrieben, das von der Option
path
in der Drucker-Share festgelegt wurde. Dann führt Samba einen Unix-Druckbefehl aus, um die Datendatei zum Drucker zu schicken. Der Job wird gedruckt als der authentifizierte User der Share. Beachte, dass dies der guest user sein kann, abhängig von der Konfiguration der Share.7.1.1 Druck-Befehle
Um das Dokument zu drucken, musst du Samba sagen, welches Kommando zum Drucken und Löschen einer Datei gehört. Ein solcher Befehl lautet unter Linux:
lpr -r -Pprinter
file
Dieser fordert
lpr
zum Kopieren des Dokuments in einen Spoolbereich auf, gewöhnlich /var/spool, holt sich den Namen des Druckers aus der System-Konfigurationsdatei (/etc/printcap) und interpretiert die hier gefundenen Regeln, um zu entscheiden, wie die Daten zu verarbeiten sind und an welches physikalische Gerät sie zu senden sind. Beachte, dass wegen der eingesetzten Option-r
die in der Kommandozeile genannte Datei nach dem Drucken gelöscht wird. Die entfernte Datei ist natürlich nur eine auf dem Sambaserver gespeicherte Kopie, die Originaldatei auf dem Client bleibt davon unberührt.Linux verwendet einen Berkeley (BSD)-Stil zum Drucken. Nun, der Vorgang ist ähnlich wie auf System V Unix. Hier wird aus Drucken und Löschen ein zusammengesetzter Befehl:
lp -dprinter
-sfile
; rmfile
Bei System V wird die Datei /etc/printcap mit einer Reihe verschiedener Konfigurationsdateien ersetzt, die in /usr/spool/lp versteckt sind, und hier gibt es keine Option zum Löschen der Datei. Du musst es selbst tun, darum haben wir den Befehl
rm
hinten angehängt.7.1.2 Variablen zum Drucken
Samba stellt vier Variablen speziell für die Benutzung bei Druck-Konfigurationsoptionen bereit. Man sieht sie in Tabelle 7.1.
Tabelle 7.1: Variablen zum Drucken Variable
Definition
%s
Der volle Pfadname der zu druckenden Datei auf dem Sambaserver
%f
Der Name der zu druckenden Datei selbst (ohne den vorne stehenden Pfad) auf dem Sambaserver
%p
Der Name des verwendeten Unix-Druckers
%j
Die Nummer des Druck-Jobs (zu verwenden mit
lprm
,lppause
, undlpresume
)7.1.3 Ein minimales Printing Setup
Beginnen wir mit einer einfachen aber anschaulichen Druck-Share. Unter der Annahme, dass du auf einem Linuxsystem bist und einen in der Printer-Capabilities-Datei angeführten Drucker namens
lp
besitzt, wird der folgende Zusatz zu deiner smb.conf-Datei den Drucker über das Netzwerk erreichbar machen:[printer1] printable = yes print command = /usr/bin/lpr -r %s printer = lp printing = BSD read only = yes guest ok = yesDiese Konfiguration erlaubt jedem, Daten an den Drucker zu senden, einiges können wir später noch ändern. Wichtig ist im Augenblick zu verstehen, dass die Variable
%s
in der Optioncommand
durch den Namen der zu druckenden Datei ersetzt wird, wenn Samba den Befehl ausführt. Das Verändern desprint command
, um eine unterschiedliche Art Unix-Maschine zu anzuzeigen, schließt typischerweise nur den Austausch der rechten Seite der Optioncommand
ein, egal mit welchem Befehl, den du für dein System brauchst, und den Wechsel des Ziels der Optionprinting
.Schauen wir uns die Befehle für ein System V Unix an. Mit Variablen-Substitution wird aus dem System V Unix-Befehl:
print command = lp -d%p -s %s; rm %sWie früher erwähnt, löst die Variable
%p
den Namen des Druckers auf, während die Variable%s
den Namen der Datei auflöst. Danach kannst du die Optionprinting
ändern, um zu zeigen, dass du eine System V-Architektur benützt:printing = SYSVWenn du Share-Level-Security verwendest, schenke dem von Samba verwendeten guest account besondere Aufmerksamkeit. Die typische Einstellung
nobody
könnte vielleicht nicht unter dem Betriebssystem drucken dürfen. Wenn das für dein Betriebssystem zutrifft, solltest du eine Optionguest
account
unter der Druck-Share (oder vielleicht auch der globalen Share) platzieren und einen Account anführen, der das kann. Ein populärer Kandidat bei den Samba-Autoren ist derftp
-Account, der oft zur Sicherheit für unberechtigte Gast-User vorkonfiguriert wird. Du kannst ihn mit dem folgenden Befehl einstellen:guest account = ftpEine andere übliche Frage beim Drucken ist, das Clients den Status eines Druckjobs abfragen müssten, der zum Sambaserver geschickt wurde. Samba lehnt kein Dokument ab, das zu einer bereits beschäftigten Drucker-Share gesendet wird. Folglich braucht Samba die Fähigkeit, nicht nur den Status des momentanen Druckjobs dem Client mitzuteilen, sondern auch welche Dokumente gerade warten, damit sie auf diesem Drucker ausgedruckt werden. Samba muss auch dem Client die Fähigkeit liefern, Druckjobs anzuhalten, wieder fortzusetzen und aus der Druckerwarteschlange zu entfernen. Samba bietet Optionen für jede dieser Aufgaben. Wie du vielleicht vermutest, borgen sie die Funktion von bestehenden Unix-Befehlen aus. Die Optionen sind:
Wir werden über diese Optionen anschließend genauer berichten. Nun, hauptsächlich der Wert der Konfigurations-Option
printing
wird ihre Werte bestimmen, und du solltest die vorgegebenen Werte dieser Optionen nicht verändern müssen.Hier erinnern wir an ein paar wichtige Dinge über Drucker-Shares:
Du musst
printable
=
yes
in alle Drucker-Shares (auch[printers]
) stellen, sodass Samba weiß, dass sie Drucker-Shares sind. Wenn du das vergisst, werden die Shares zum Drucken nicht zu gebrauchen sein und dagegen als Platten-Shares betrachtet werden.Wenn du die Konfigurationsoption
path
in der Drucker-Sektion setzt, werden alle Dateien, die zu(m) (den) Drucker(n) gesendet werden, in das Verzeichnis kopiert, das du genannt hast anstatt des voreingestellten Standorts /tmp. Weil die Größe des /tmp zugewiesenen Plattenplatzes in manchen Unix-Betriebssystemen verhältnismäßig klein sein kann, entscheiden sich viele Administratoren stattdessen /var/spool oder irgendein anderes Verzeichnis zu verwenden.Wenn du in einer Drucker-Share
guest
ok
=
yes
gesetzt hast und Samba für Share-Level-Security konfiguriert ist, ist es jedem erlaubt, Daten zum Drucker zu senden wie derguest
account
-User.Die Verwendung eines oder mehrerer Samba-Maschinen als Printserver gewährt dir ziemlich viel Flexibilität auf deinem LAN. Du kannst leicht deine verfügbaren Drucker aufteilen, manche auf Mitglieder einer Abteilung beschränken, oder du kannst eine Bank von Druckern für alle bereitstellen. Außerdem kannst du einen Drucker auf wenige Auserwählte beschränken, indem du die Option der berechtigten
valid
users
zu seiner Share-Definition hinzufügst:[deskjet] printable = yes path = /var/spool/samba/print valid users = gail samAlle anderen Zugangsoptionen einer Share, die im vorigen Kapitel festgelegt wurden, sollten genauso für Drucker-Shares arbeiten. Weil auf die Drucker selbst durch Samba über den Namen zugegriffen wird, ist es auch einfach, Druckdienste unter einigen Servern zu aufzuteilen, indem bekannte Unix-Befehle für Aufgaben verwendet werden, wie Ausgleich oder Wartung zu laden.
7.1.4 Die [printers] Share
Kapitel 4, Disk Shares , stellte
[printers]
kurz vor, eine spezielle Share zum automatischen Erstellen von Druckdiensten. Vergewissern wir uns, wie das abläuft: wenn du in der Konfigurationsdatei eine Share namens[printers]
erstellst, schaut Samba automatisch in deine Printer-Capabilities-Datei und erzeugt eine Druck-Share für jeden Drucker, der in der Datei vorkommt. Wenn z.B. der Sambaserver die Druckerlp
,pcl
undps
in seiner Printer-Capabilities-Datei hätte, würde Samba drei Drucker-Shares mit diesen Namen bereitstellen, jeden konfiguriert mit den Optionen in der[printers]
-Share.Merke, dass Samba folgende Regeln befolgt, wenn ein Client eine Share anfordert, die noch nicht durch die smb.conf-Datei erzeugt wurde:
Wenn der Sharename mit einem Usernamen in der System-Passwortdatei übereinstimmt und eine
[homes]
-Share existiert, wird eine neue Share mit dem Namen des Users erzeugt und mit den Werten aus den Sektionen[homes]
und[global]
initialisiert.Wenn dagegen der Name mit einem Drucker in der System-Printer-Capabilities-Datei übereinstimmt und eine
[printers]
-Share existiert, wird eine neue Share mit dem Namen des Druckers erzeugt und mit den Werten aus der Sektion[printers]
initialisiert. (Variable in der[global]
-Sektion gelten hier nicht.)Wenn keines von beiden gelingt, sucht Samba nach einer Share
default
service
. Wird keine gefunden, meldet es einen Fehler.Das beleuchtet einen wichtigen Punkt: sei vorsichtig, dass du einem Drucker nicht denselben Namen wie einem User gibst. Sonst endest du bei einer Anmeldung zu einer Disk-Share, wenn du eigentlich eine Drucker-Share haben wolltest.
Hier ist eine beispielhafte
[printers]
-Share für ein Linux (BSD) System. Einige dieser Optionen sind schon voreingestellt; nun, wir zählen sie jedenfalls aus Gründen der Anschaulichkeit auf:[global] printing = BSD print command = /usr/bin/lpr -P%p -r %s printcap file = /etc/printcap min print space = 2000 [printers] path = /usr/spool/public printable = true guest ok = true guest account = pcguestHier haben wir Samba mit globalen Optionen ausgestattet, die den Typ des Druckens (BSD) festlegen, einen Druckbefehl zum Senden von Daten zum Drucker und zum Entfernen einer temporären Datei, unsere voreingestellte Printer-Capabilities-Datei und einen Mindestspeicherplatz von 2 MB zum Drucken.
Außerdem haben wir für jeden Systemdrucker eine
[printers]
-Share angelegt. Unser temporäres Spool-Verzeichnis wird von der Optionpath
festgelegt: /usr/spool/public. Alle Shares sind als printable gekennzeichnet - das ist notwendig, besonders in der Sektion[printers]
. Die zweiguest
-Optionen sind nützlich in dem Fall, dass Samba Share-Level-Security verwendet: wir erlauben Gastzugriff auf den Drucker und wir bestimmen den Gastuser, den Samba zum Ausführen der Druckbefehle verwenden sollte.7.1.5 Drucken testen
Hier steht, wie du das Drucken vom Sambaserver aus testen kannst. Nehmen wir den kompliziertesten Fall an und benützen einen Gast-Account. Zuerst führst du den Sambabefehl testparm auf deiner Konfigurationsdatei aus, welche die Druck-Shares einthält, wie wir es im Kapitel 2, Samba auf einem Unix-System installieren, taten. Das wird dir mitteilen, ob es syntaktische Probleme mit der Konfigurationsdatei gibt. Hier steht z.B., was du sehen würdest, wenn du die Konfigurationsoption
path
im vorigen Beispiel weggelassen hättest:# testparm Load smb config files from /usr/local/samba/lib/smb.conf Processing configuration file "/usr/local/samba/lib/smb.conf" Processing section "[global]" Processing section "[homes]" Processing section "[data]" Processing section "[printers]" No path in service printers - using /tmp Loaded services file OK. Press enter to see a dump of your service definitions Global parameters: load printers: Yes printcap name: /etc/printcap Default service parameters: guest account: ftp min print space: 0 print command: lpr -r -P%p %s lpq command: lpq -P%p lprm command: lprm -P%p %j lppause command: lpresume command: Service parameters [printers]: path: /tmp print ok: Yes read only: true public: trueZweitens, versuch den Befehl
testprns
druckername
. Dieses einfache Programm bestätigt, dass der genannte Drucker in deiner printcap-Datei verfügbar ist. Wenn deine printcap-Datei nicht auf dem üblichen Platz ist, kannst du ihren vollen Pfadnamen als zweites Argument zum Befehl testprns angeben:# testprns lp /etc/printcap Looking for printer lp in printcap file /etc/printcap Printer name lp is valid.Als Nächstes melde dich als Gastuser an, geh in das Spool-Verzeichnis und stell sicher, dass du drucken kannst, indem du denselben Befehl verwendest, von dem testparm behauptet, dass ihn Samba benützt. Wie vorher erwähnt, sagt dir dieser, ob du den Gast-Account ändern musst, weil der voreingestellte Account vielleicht nicht drucken darf.
Drucke schließlich etwas auf dem Sambaserver via
smbclient
und schau, ob die folgenden Aktionen ablaufen:
Der Job erscheint (kurz) im Samba Spool-Verzeichnis, das durch den Pfad festgelegt wurde.
Der Job taucht im Spool-Verzeichnis deiner Druck-Systeme auf.
Der Job verschwindet aus dem Spool-Verzeichnis, das Samba benützte.
Wenn smbclient nicht drucken kann, kannst du die Option
command
zurückstellen, um Information der Fehlersuche zu sammeln:print command = /bin/cat %s >>/tmp/printlog; rm %soder:
print command = echo "printed %s on %p" >>/tmp/printlogEin übliches Problem bei der Samba Drucker-Konfiguration ist, wenn man vergisst, die vollen Pfadnamen für die Befehle zu verwenden; einfache Befehle funktionieren oft nicht, weil der PATH des Gast-Accounts sie nicht einschließt. Ein anderes häufiges Problem ist, nicht die richtigen Rechte für das Spool-Verzeichnis zu besitzen.
Es gibt mehr Information über die Fehlersuche bei Druckern in der Samba-Dokumentation (Printing.txt). Außerdem wird über die Unix-Drucksysteme in AEleen Frisch's Essential Systems Administration (herausgegeben von O'Reilly) genauer berichtet.
7.1.6 Einrichten und Testen eines Windows-Clients
Nun bietet Samba einen funktionierenden Drucker, und du musst ihn auf einem Windows-Client einrichten. Such den Sambaserver in der Netzwerkumgebung. Er sollte jetzt jeden verfügbaren Drucker zeigen. In Figur 7.1 sehen wir z.B. einen Drucker namens
lp
.Als Nächstes musst du dem Windows-Client den Drucker bekanntgeben. Doppelklicke auf das Drucker-Icon zum Starten. Wenn du versuchst, einen nicht installierten Drucker auszuwählen (wie du es gerade tust), fragt dich Windows, ob es helfen soll, ihn für das Windows-System zu konfigurieren. Antworte "Ja", was den Drucker-Wizard öffnet.
Als Erstes fragt dich der Wizard, ob du unter DOS drucken musst. Nehmen wir an, du musst nicht, also wähle Nein und drück den Button Weiter, um zum Hersteller/Modell-Fenster zu kommen, wie in Figur 7.2 gezeigt.
Figur 7.2: Ein Drucker in der Netzwerkumgebung
In dieser Dialogbox solltest du eine lange Liste von Herstellern und Modellen für fast jeden vorstellbaren Drucker sehen. Wenn du deinen Drucker nicht auf der Liste siehst, du aber weißt, dass er ein PostScript-Drucker ist, wähle Apple als den Hersteller und Apple Laser Writer als das Modell. Das ergibt das bestmögliche PostScript-Drucker-Setup, und wohl eines der zuverlässigsten. Wenn du schon irgendwelche PostScript-Drucker angebunden hast, wirst du gefragt, ob du den existierenden Treiber ersetzen oder weiterverwenden willst. Sei dir bewusst, wenn du ihn durch einen neuen ersetzt, dass deine anderen Drucker Fehlfunktionen haben könnten. Daher empfehlen wir dir, behalte deine alten Druckertreiber in Verwendung, so lange sie zufriedenstellend arbeiten.
Als Nächstes fordert dich der Drucker-Wizard auf, dem Drucker einen Namen zu geben. Figur 7.3 zeigt dieses Beispiel, wo der Name unseres zweiten Laserdruckers vorgegeben ist. Hier benennst du ihn um von Apple Laserwriter (Copy 2) zu "ps auf Sambaserver", damit du weißt, wo du wegen der Ausdrucke suchen musst. In Wirklichkeit kannst du den Drucker nennen wie du willst.
Figur 7.3: Drucker-Hersteller und -Modelle
Zum Schluss fragt der Drucker-Wizard, ob er eine Testseite drucken soll. Klick auf Ja, und du solltest mit dem Dialog in Figur 7.4 konfrontiert werden.
Figur 7.4: Ausdruck erfolgreich beendet
Wenn der Test-Ausdruck erfolglos war, drück den Nein-Button in Figur 7.4, und der Drucker-Wizard wird mit dir einige Debug-Schritte auf der Client-Seite des Prozesses durchgehen. Wenn der Test-Ausdruck funktioniert, dann gratuliere! Der Remote-Drucker steht nun deinen ganzen PC-Applikationen über die Datei- und Druckmenüs zur Verfügung.
7.1.7 Druckertreiber automatisch einrichten
Der vorhergehende Abschnitt beschrieb, wie man einen Druckertreiber für dein Windows-System manuell konfiguriert. Nun, als ein Systemadministrator kannst du nicht immer garantieren, das User einen solchen Vorgang durchführen können, ohne Fehler zu machen. Glücklicherweise kannst du Samba auffordern, Druckertreiber automatisch für einen bestimmten Drucker einzurichten.
Samba besitzt drei Optionen, die zum automatischen Einrichten von Druckertreibern für Clients verwendet werden können, die sich zum ersten Mal anmelden. Diese Optionen sind
printer
driver
,printer
driver
file
undprinter
driver
location
. Dieser Abschnitt erklärt, wie diese Optionen verwendet werden, damit User den Hersteller-Dialog im Drucker-Einrichtungs-Wizard oben überspringen dürfen.Für weitere Information, wie man das tut, schau in die Datei PRINTER_DRIVER.TXT in der Dokumentation der Samba-Distribution.
Es gibt vier Hauptschritte:
Installiere die Druckertreiber auf einem Windows-Client (der Drucker muss nicht angeschlossen sein).
Erstelle eine Drucker-Definitionsdatei von der Information auf einer Windows-Maschine.
Erstelle eine
PRINTER$
Share, wo die sich ergebenden Treiberdateien platziert werden können.Gehen wir nun die vier Schritte im Detail durch.
7.1.7.1 Installiere die Treiber auf einem Windows-Client
Verwende Windows 95/98 für diesen Schritt. Es spielt keine Rolle, welche Client du wählst, solange er fähig ist, die geeigneten Treiber für den Drucker zu laden. Tatsächlich brauchst du nicht einmal den Drucker an der Maschine angeschlossen haben. Alles, was dich hier interessiert, ist die geeigneten Treiberdateien in das Windowsverzeichnis zu bekommen. Geh zuerst zum Druckerfenster vom Arbeitsplatz und doppelklicke auf das Icon Neuer Drucker, siehe Figur 7.5.
Figur 7.5: Das Druckerfenster
An dieser Stelle kannst du den Wizard-Dialogen folgen, um den Hersteller und das Modell des Druckers auszuwählen. Wenn er dich fragt, ob du von MS-DOS aus drucken willst, antworte Nein. Windows sollte die geeigneten Treiber-Ressourcen von seiner CD-ROM laden und dich fragen, ob du eine Testseite drucken willst. Antworte wieder mit Nein und schließ den Dialog Neuer Drucker.
7.1.7.2 Erstelle eine Drucker-Definitionsdatei
Du kannst eine Drucker-Definitionsdatei erstellen, indem du das Skript make_ printerdef im Verzeichnis /usr/local/samba/bin benützt. Um dieses Skript zu verwenden, musst du die folgenden vier Dateien von einem Windows-Client herüberkopieren:[1]
[1] Ältere Windows 95-Clients könnten nur die ersten zwei Dateien haben.
C:\WINDOWS\INF\MSPRINT.INF C:\WINDOWS\INF\MSPRINT2.INF C:\WINDOWS\INF\MSPRINT3.INF C:\WINDOWS\INF\MSPRINT4.INF Sobald du die vier Dateien hast, kannst du eine Drucker-Definitionsdatei erstellen, indem du den geeigneten Druckertreiber und seine .INF -Datei verwendest. Wenn der Druckertreiber mit den Buchstaben A-K beginnt, verwende entweder die Datei MSPRINT.INF oder die Datei MSPRINT3.INF. Wenn er mit den Buchstaben L-Z beginnt, verwende die Datei MSPRINT2.INF oder die Datei MSPRINT4.INF. Du musst vielleicht mit grep jede Datei durchsuchen, wo dein bestimmter Treiber ist. Für das folgende Beispiel haben wir unseren Treiber in MSPRINT3.INF ausfindig gemacht und eine Drucker-Definitionsdatei für einen HP Deskjet 560C-Drucker erzeugt:
$grep "HP DeskJet 560C Printer" MSPRINT.INF MSPRINT3.INF MSPRINT3.INF: "HP DeskJet 560C Printer"=DESKJETC.DRV,HP_DeskJet_ ... $make_printerdef MSPRINT3.INF "HP DeskJet 560C Printer" >printers.def FOUND:DESKJETC.DRV End of section found CopyFiles: DESKJETC,COLOR_DESKJETC Datasection: (null) Datafile: DESKJETC.DRV Driverfile: DESKJETC.DRV Helpfile: HPVDJC.HLP LanguageMonitor: (null) Copy the following files to your printer$ share location: DESKJETC.DRV HPVCM.HPM HPVIOL.DLL HPVMON.DLL HPVRES.DLL HPCOLOR.DLL HPVUI.DLL HPVDJCC.HLP color\HPDESK.ICMBeachte die Dateien, die das Skript zu kopieren verlangt. Du wirst sie für den nächsten Schritt brauchen.
7.1.7.3 Erstelle eine PRINTER$ Share
Dieser Teil ist relativ leicht. Erstelle eine Share namens
[PRINTER$]
in deiner smb.conf, die auf ein leeres Verzeichnis auf dem Sambaserver zeigt. Sobald das geschehen ist, kopiere die Dateien, die das Skript make_ printerdef von dir verlangte, in den Standort der Konfigurationsoptionpath
für die[PRINTER$]
Share. Du kannst z.B. das Folgende in deine Konfigurationsdatei stellen:[PRINTER$] path = /usr/local/samba/print read only = yes browsable = no guest ok = yesDie vom Skript make_ printerdef verlangten Dateien liegen typischerweise im Verzeichnis C:\WINDOWS\SYSTEM, obwohl du die folgenden Befehle benützen kannst, genau herauszufinden wo sie sind:
cd C:\WINDOWS dirfilename
/sIn diesem Fall muss jede Datei in das Verzeichnis /usr/local/samba/print auf dem Sambaserver kopiert werden. Kopiere außerdem die vorher erstellte Datei printers.def auch in diese Share. Sobald du das gemacht hast, bist du fast fertig zum Ausprobieren.
7.1.7.4 Modifiziere die Samba Konfigurationsdatei
Mit dem letzten Schritt musst du die Samba Konfigurationsdatei modifizieren, indem du die folgenden drei Optionen hinzufügst:
Die Option
printer
driver
file
ist eine globale, die auf die Datei printers.def zeigt; setz diese Option in deine[global]
Sektion. Die anderen Optionen sollten in die Printer-Share gestellt werden, für die du die Treiber automatisch konfigurieren willst. Der Wert fürprinter
driver
sollte mit der Zeichenkette übereinstimmen, die im Drucker-Wizard auf dem Windows-System auftaucht. Der Wert vonprinter
driver
location
ist der Pfadname der von dir erstellten PRINTER$ Share, nicht der Unix-Pfadname auf dem Server. Somit kannst du Folgendes verwenden:[global] printer driver file = /usr/local/samba/print/printers.def [hpdeskjet] path = /var/spool/samba/printers printable = yes printer driver = HP DeskJet 560C Printer printer driver location = \\%L\PRINTER$Nun bist du bereit, es auszutesten. Entferne an dieser Stelle den Windows-Drucker, den du im ersten Schritt "eingerichtet" hast, aus der Liste der Drucker im Drucker-Fenster des Arbeitsplatzes. Wenn Samba dich auffordert, nicht benötigte Dateien zu löschen, so mach das. Diese Dateien werden in Kürze auf dem Client wiederhergestellt, weil sie jetzt auf dem Sambaserver existieren.
7.1.7.5 Testen der Konfiguration
Starte die Sambadämonen neu und suche die Share
[hpdeskjet]
unter dem Maschinennamen in der Netzwerkumgebung. Wenn du jetzt auf das Drucker-Icon klickst, solltest du den Setup-Prozess in Gang setzen und zum Dialog wie in Figur 7.6 kommen.Dieser ist anders als der Dialog, den du weiter oben beim Einrichten eines Druckers sahst. Der Dialog fragt dich notwendigerweise, ob du den Treiber akzeptierst, der "bereits installiert" ist - mit anderen Worten, von Samba angeboten wird. Setz fort und behalte den vorhandenen Treiber und drück den Button "Weiter". Jetzt kannst du dem Drucker einen Namen geben und eine Testseite ausdrucken. Wenn es funktioniert, sollte das Setup beendet sein. Du solltest den Vorgang jetzt von jedem Windows-Client aus wiederholen können.
Figur 7.6: Automatisches Konfigurieren des Druckertreibers
© 1999, O'Reilly & Associates, Inc.