print BACK .. Plattformübergreifend drucken mit Samba ============================================ techupdate.zdnet.de Von Bryan Pfaffenberger TechRepublic 14. Februar 2002 Wenn Sie ein plattformübergreifendes Netzwerk einsetzen, in dem es Windows-, Linux- und Unix-Workstations und Server gibt, macht es meist Sinn, die Druckdienste allen Plattformen zur Verfügung zu stellen. Wenn Sie ein plattformübergreifendes Netzwerk einsetzen, in dem es Windows-, Linux- und Unix-Workstations und Server gibt, macht es meist Sinn, die Druckdienste allen Plattformen zur Verfügung zu stellen. Hier erfahren Sie, wie auch Benutzer von Microsoft Windows 95/98/NT/2000 daran teilhaben können. Dazu müssen Sie die Samba-Konfiguration ändern, so dass der lokale Linux-Drucker - angeschlossen am Server - für Windows-Benutzer im Netzwerk freigegeben wird. Voraussetzung dafür ist, dass Sie Samba bereits installiert und so eingerichtet haben, dass Sie Dateien zwischen Linux und Windows austauschen können. Ebenso sollten Sie einen lokalen Drucker auf dem Rechner installiert haben, auf dem Samba läuft. Zunächst sollten Sie überpru:fen, ob Samba so konfiguriert ist, dass Windows-Benutzer den Samba-Server in der Netzwerkumgebung sehen können. Wie Sie die Datei smb.conf so anpassen, dass ein Drucker am Samba-Server auch für Windows-Benutzer im Netz verfu:gbar wird, erfahren Sie nachfolgend. Damit Sie smb.conf so anpassen können, dass der lokale Drucker freigegeben werden kann, muss dieser zuerst einmal unter Linux drucken. Installieren Sie denselben Drucker dann auf einem der Windows-Clients. Dazu benötigen Sie Windows-Treiber für den Drucker. Beginnen Sie die Druckerinstallation über Startmenu:, Einstellungen, Drucker, Drucker hinzufügen. Folgen Sie den Anweisungen des Drucker-Assistenten bis Sie aufgefordert werden, einen Drucker aus der Liste zu wählen. Wichtig: Notieren Sie den exakten Namen des Druckers. Achten Sie auf Gross- und Kleinschreibung. So lautet der Windows-Name für den Epson Stylus 740 EPSON Stylus COLOR 740. Vervollständigen Sie die Installation und starten Sie Windows neu, falls nötig. Melden Sie sich am Samba-Server als root oder superuser an und öffnen Sie /etc/smb.conf oder /etc/samba/smb.conf mit dem Texteditor Ihrer Wahl, zum Beispiel: vi /etc/smb.conf Suchen Sie im Abschnitt [global] nach der Zeile, die mit printcap name beginnt. Wenn Sie alle lokalen Drucker unter Windows freigeben möchten, kommentieren Sie diese Zeile und die nächste aus falls nötig, oder fügen Sie sie hinzu, wenn sie nicht in der Datei vorhanden sind: printcap name = /etc/printcap load printers = yes Wenn nur einige Drucker - und nicht alle - unter Windows verfügbar sein sollen , dürfen Sie die Zeilen weder auskommentieren noch hinzufu:gen. Samba geht davon aus, dass Sie das Standarddrucksystem der meisten Linux-System e verwenden, das auf BSD basiert. Wenn Sie ein anderes Drucksystem verwenden, suchen Sie nach der Zeile, die mit printing beginnt und ändern Sie die Voreinstellung (bsd) auf das Drucksystem, das Ihre Linux-Distribution benutzt. Sie können wählen zwischen sysv, plp, lprng, aix, hpux und qnx. Falls Sie nicht wissen, welches Drucksysstem Ihre Linux-Distribution verwendet, sehen Sie im Handbuch nach. In den meisten Fällen ist es jedoch bsd. Um alle lokalen - die in /etc/printcap gelisteten - Drucker zur Verfügung zu stellen, fügen Sie den folgenden Serviceeintrag am Ende von /etc/smb.conf hinzü [printers] writable = no path = /tmp printable = yes Um nur einen der lokalen Drucker freizugeben, fügen Sie eine Zeile auto services in den Abschnitt [global] der Datei smb.conf ein. Diese Zeile gibt den Namen des freizugebenden Druckers an, wie er in /etc/printcap definiert wurde. Die nächste Zeile gibt den Standarddrucker (lp) frei: auto services = lp Erstellen Sie auch eine Druckerbeschreibung wie die folgende, und fügen Sie diese im Abschnitt [services] ein (am Ende von /etc/smb.conf): [lp] printable = yes comment = Epson Stylus (Color) public = yes writable = no browseable = yes printer driver=EPSON Stylus COLOR 740 So wird der Drucker "lp" definiert. Der Name muss mit dem in der Zeile auto services und dem Druckernamen (oder einem Alias des Druckernamens) aus /etc/printcap übereinstimmen. Beachten Sie, dass Sie in der Druckertreiberzeile die Druckerdaten genau so eingeben müssen, wie unter Windows (in diesem Fall EPSON Stylus COLOR 740, unter Berücksichtigung der Klein- und Grossschreibung). Speichern Sie nun /etc/smb.conf. Verlassen Sie den Texteditor und starten Sie Samba mit /etc/init.d/rc.d/smb restart und [Enter] neu. Prüfen Sie Ihre Installation nun von einer Windows-Workstation aus. Melden Sie sich mit dem Windows-Netzwerknamen und Passwort des Benutzers an, doppelklicken Sie auf die Netzwerkumgebung und prüfen Sie, ob der Samba-Drucker angezeigt wird, wenn Sie auf das Linux-Systemsymbol doppelklicken. Wenn Sie mit der rechten Maustaste klicken und "Installieren" wählen, sollte das Dialogfeld "Druckereinrichtung" geöffnet werden. Da der Druckernamen für Windows erkennbar definiert ist, muss der Anwender keine Unzahl von Druckermarken und Modellen durchsuchen, um mit der Installation zu beginnen. Allerdings benötigt der Anwender die Windows-Treiberdiskette für den Drucker, wenn er von Windows direkt unterstützt wird. Die Samba-Option printer driver location (Druckertreiberspeicherort) dient zur Angabe des Pfades zum Druckertreiber. Es ist zwar möglich, die Treiber und zugehörigen Dateien in einem freigegebenen Linux-Verzeichnis bereitzustellen, aber diese Option funktioniert mit vielen Druckertreibern nicht. Ausserdem verbietet die Lizenzvereinbarung manchmal die Bereitstellung der Software im Netz. Problemsuche bei Samba-Druckproblemen Wenn das Drucken unter Linux funktioniert, aber nicht über Samba, melden Sie sich als Superuser an und öffnen Sie mit einem Texteditor /etc/smb.conf. Suchen Sie sorgfältig nach Tippfehlern. Führen Sie testparm /etc/smb.conf aus und untersuchen Sie die Ausgabe auf Fehler. Stellen Sie sicher, dass /dev/null für alle Anwender freigegeben ist (geben Sie dazu ls -l /dev/null ein und prüfen Sie die Rechte). Samba verwendet /dev/null, um nicht beendete Druckausgaben zu löschen. Wenn nicht alle Anwender darauf zugreifen können, melden Sie sich als Superuser an und geben chmod a+w /dev/null gefolgt von [Enter] ein. Wenn Ihr PostScript-Drucker anstelle von Grafik nur PostScript-Code ausgibt, fügen Sie postscript = yes zur Druckerdefinition in /etc/samba.conf hinzu. [IMG]