4.1 Verzeichnisstruktur
SuSE 8.1 setzt die neuere Version des SMB-Servers Samba 2.2.5 ein.
Dadurch und durch die Bemühungen den FHS (FileSystem-Hirarchie-Standard) und die
LSB (Linux-Standard-Base) -Vorgaben genauer zu entsprechen, wurden einige Pfade
geändert:
- unterhalb von /etc/samba liegen jetzt die
Samba-Konfigurationsdateien wie z.Bsp. die smb.conf, smbpasswd, smbfstab (neu),
smbusers (neu) und die secrets.tdb (neu, für User-Verwaltung mittels LDAP-Verwaltung)
- Die PID und Status-Informationen des Servers werden im Verzeichnis
/var/run/samba verwaltet.
Samba 2.2.5 unterstützt natürlich auch neue Funktionen wie z.Bsp.:
- User-Verwaltung mittels LDAP (habe ich leider noch nicht probiert,
da meine Linux-User noch nicht in LDAP verwaltet werden und ich mit LDAP noch
nicht so richtig warm geworden bin.
- Mounten von SMB-Shares beim Booten mittels /etc/samba/smbfstab
- Mappen von Windows-Benutzer-Namen zu Linux-Benutzer-Namen
mittels /etc/samba/smbusers
- Vollwertiger Einsatz als Windows PDC (PrimaryDomainController) und
BDC (BackupDomainController). Dies konnte ich schon selbst mit
Windows 98, NT und 2000 Maschinen testen.
Leider haben sich die Funktionen einiger in meiner smb.conf benutzten Variablen
zur Makro-Ersetzung (User-Namen, ...) etwas geändert, so dass hier in der
Konfigurationsdatei Änderungen vorgenommen werden müssen:
- Die Log-Datei ließ ich vorher mit Hilfe des Makros %m am Ende des
Dateinamens nach den verschiedenen Maschinen unterscheiden. Dieses wollte so nicht
mehr funktionieren. Deshalb werden die Log-Dateien jetzt nach den Usern
unterscheiden (Makro %U).
- Die Optionen printer driver location, printer driver file und printer
driver werden nicht mehr unterstützt, so dass ich diese erst mal
deaktiviert habe, bis ich die Zeit finde mich mit Imprints (netzwerkweite,
automatische Verteilung der Druckertreiber) zu beschäftigen.
- Es lassen sich in dieser Linuxversion keine Gruppen mehr mit Unterstrich im
Gruppennamen erzeugen. Diese benutzte ich vorher, um für jeden User eine
Default-Lese-Gruppe einzurichten (Username_les). So musste ich alle
diese Gruppen (und die irgendwo eingebauten Verbindungen dazu) umbennenen |:-(/
- Als erfreulich ist der Umstand zu bewerten, dass in dieser
Samba-Version auch einige Sachen besser funktionieren. So war es mir erst bei dieser
Version möglich ein Script mit Kommando-Substitution (der in "Backticks" eingeschlossene
Befehl wird durch die Rückgabe des Aufrufes ersetzt) einzubauen. So wird jetzt in
die Dateinamen der per Netzwerk erzeugten PDF-Dateien zusätzlich zum
Username das Datum mit Uhrzeit eingefügt.
Wie schon im "Sambatip 3"
angedeutet hat sich die Einbindung von Windowsdruckertreibern zur automatischen Installation
etwas verändert.
Das Share in das die (aufbereiteten) Druckertreiber gelegt werden, muss nun
[print$] heißen. Darin müssen die folgenden Unterverzeichnisse
für die verschiedenen von Windows unterstützten "Architekturen" angelegt werden:
- - W32X86 ("Windows NT x86")
- - WIN40 ("Windows 95/98")
- - W32ALPHA ("Windows NT Alpha_AXP")
- - W32MIPS ("Windows NT R4000")
- - W32PPC ("Windows NT PowerPC")
Um die notwendigen Treiberdateien für die automatische Druckerinstallation in die
entsprechenden verzeichnisse zu bekommen gibt es verschiedene Wege:
... mit dem NT4.0/W2k/XP-Printer-Add-Dialog
Man browst von einem Client-PC (NT4.0/W2k/XP) in der Netzwerkumgebung zu dem von Samba
Drucker angebotenen Drucker, rechte Maustaste - "installieren". Daraufhin läuft ein
normaler Windows-Installationsvorgang ab (mit Anforderung des Installationsmediums).
Dabei werden die benötigten Dateien "Windows-like" in die verschiedenen Verzeichnisse
kopiert. Dazu muss man als ein User angemeldet sein, dem in Linux die User-ID 0 zugeordnet
ist und der Mitlgied in der "printer admin"-Liste ist.
Um den Treiber auch für andere Plattformen als nur WinNT x86 zu installieren benutzt man
den "Sharing"-Tab des Treiber-Eigenschaften-Fensters.
Der nächste Client benötigt dann keine Installationsmedien mehr. Die Installation verläuft
beim ersten Kontakt fast automatisch.
... mit dem "rpcclient setdriver"-Befehl
Sobald man mehrere Drucker mit dem gleichen Druckertreiber hat, wird es lästig immer von
neuem die gleichen Installationsschritte mittels des WinNT-APW tun zu müssen. Deshalb
wurde bei der Entwicklung von Samba 2.2.2 der Befehl "setdriver" mitentwickelt.
Sobald mehr als ein Drucker den gleichen Treiber benötigt, kann man den Befehl
rpcclient setdriver ... benutzen, um dem Drucker einen
schon installierten Treiber zuzuweisen. Dazu das folgende Beispiel (aus der mit
Samba mitgelieferten Doku):
$ rpcclient pogo -U root%secret -c "enumdrivers"
Domain=[NARNIA] OS=[Unix] Server=[Samba 2.2.0-alpha3]
[Windows NT x86]
Printer Driver Info 1:
Driver Name: [HP LaserJet 4000 Series PS]
Printer Driver Info 1:
Driver Name: [HP LaserJet 2100 Series PS]
Printer Driver Info 1:
Driver Name: [HP LaserJet 4Si/4SiMX PS]
$ rpcclient pogo -U root%secret -c "enumprinters"
Domain=[NARNIA] OS=[Unix] Server=[Samba 2.2.0-alpha3]
flags:[0x800000]
name:[\\POGO\hp-print]
description:[POGO\\POGO\hp-print,NO DRIVER \
AVAILABLE FOR THIS PRINTER,]
comment:[]
$ rpcclient pogo -U root%secret \
> -c "setdriver hp-print \"HP LaserJet 4000 Series PS\""
Domain=[NARNIA] OS=[Unix] Server=[Samba 2.2.0-alpha3]
Successfully set hp-print to driver HP LaserJet 4000 Series PS.
Der letzte Absatz zeigt den eigentlichen Befehl zum Setzen des Druckers
hp-print auf den (schon einmal installierten) Druckertreiber
"HP LaserJet 4000 Series PS".
... mit dem "Imprints"-Toolset
Das "Imprints"-Toolset ist eine Sammlung von Perl-skripten zum Installieren und
netzwerkweiten Vorhalten/Anbieten von Windows-Druckertreibern. So muss man nur einen
Linux-Server im Netzwerk mit den Dateien für alle benötigten Drucker versehen und kann
eine Vielzahl von Druckern und Clients sehr bequem Verwalten.
Der Imprints-Server ist eigentlich ein Datenbankserver der mittels Standard
HTTP-Mechanismen abgefragt werden kann. Jedes Treiber-Paket ist mit einer Gnupg-Signaturen
versehen. So kann geprüft werden, dass das heruntergeladene Paket auch dem entspricht,
welches auf dem Imprints-Server liegt.
Die näheren Infos dazu sind in der Samba-Doku
"printer_driver2.html" und im Internet unter
http://imprints.sourceforge.net/ zu finden.
Leider kam dieses Projekt 2002 zum Stillstand. Ich weiß nicht wie der Stand der Dinge ist.
Durch Anregung und Beispiel eines anderen Linux- und Samba-Users kam ich, wie weiter
oben beschrieben, auf die Idee, die Dateinamen der per Netzwerk erzeugten
PDF-Dateien zusätzlich zum Username mit dem Erzeugungsdatum und -zeit zu versehen,
um so eine bessere und sichere Zuordnung treffen zu können.
Man muss unter /usr/local/bin (oder wo ihr lieber wollt), ein Hilfsscript anlegen,
welches die eigentliche Arbeit macht und auch von anderen Applikationen zur aktuellen
Datumsabfrage benutzt werden kann. Wir nennen es mal
datetime. Dies ist
erforderlich, da Samba die %-Zeichen für die Formatierung des Ausgabeformates
nicht verarbeiten kann. Hier muss man aber beachten, dass Windows keine Dateinamen
mit Doppelpunkten darstellen kann. Deshalb habe ich in das Skript "datetime"
Optionen eingebunden, mit denen das Ausgabeformat gewählt werden kann. Diese könnt
Ihr in der Datei selbst oder durch Aufruf mit dem Parameter --help herausfinden.
Im Druckbefehl für den Drucker "pdfwrite" muss dieses Script aufgerufen
werden und die Rückgabe wird in den Dateinamen nach dem Username eingefügt. Dazu
wird der Aufruf mit den "Backticks" (Shift+`) oder mit $(programmaufruf) eingebunden.
Hier könnt ihr die smb.conf für SusE 8.1
herunterladen.
|