Inhaltsverzeichnis
Bewertung: 5
Die Kandidaten sollten in der Lage sein, einen Samba-Server auf Linux für verschiedene Clients aufzusetzen. Dieses Prüfungsziel beinhaltet das Erstellen von Login-Scripts für Samba-Clients und das Aufsetzen eines nmbd-WINS-Server. Außerdem sind enthalten, das Wechseln der Arbeitsgruppe an der der Server teilnimmt, die Definition eines freigegebenen Verzeichnisses in smb.conf, die Definition eines freigegebenen Druckers in smb.conf, die Benutzung von nmblookup um die WINS-Funktionalität zu überprüfen und die Benutzung von smbmount um ein freigegebenes Windows-Verzeichnis unter Linux zu mounten.
Schlüsseldateien, Begriffe und Hilfsmittel beinhalten:
- smbd, nmbd
- smbstatus, smbtestparm, smbpasswd, nmblookup
- smb.conf, lmhosts
Samba ist eine Sammlung von Programmen und Daemonen, die unter Linux entwickelt wurde, inzwischen aber für alle Unix-Systeme zur Verfügung steht. Samba stellt die Funktionen einer Datei- und Druckerfreigabe für SMB (Windows) Netze zur Verfügung und ermöglicht es so, dass Linux Rechner nahtlos in ein Windows Netz integriert werden können und zwar völlig transparent, so dass ein Windows User den Unterschied gar nicht merkt.
Im Lauf der Zeit wurde Samba ständig weiterentwickelt, so dass es heute nicht nur Datei- und Druckerfreigaben realisieren kann, sondern auch als Domain-Server (PDC und BDC) oder als WINS-Server dienen kann.
Die eigentliche Serverfunktionalität wird mit den beiden Daemonen smbd und nmbd realisiert, wobei smbd die eigentlichen Datei- und Druckerfreigabedienste zur Verfügung stellt, während nmbd für die Verwaltung der NetBIOS Namen zuständig ist (und evt. als WINS-Server dient).
Ich werde hier davon ausgehen, dass grunsätzliche Samba Kenntnisse vorhanden sind und mich daher nur der oben angeführten Aufgabenstellung widmen. Wer Interesse an einem tiefergehenden Einblick in Samba hat, oder überhaupt den Umgang damit erlernen will, dem empfehle ich meine Samba-Seiten im Rahmen der Linux-Ausbildung, die auch hier zu finden sind.
Die Datei smb.conf – Config von einem Samba Server
Alle Einstellungen beider Daemonen werden in einer einzigen Datei (smb.conf) vorgenommen. Wo diese Datei liegt, ist abhängig von der verwendeten Distribution. Samba selbst erwartet sie eigentlich unter /usr/local/samba/lib, das ist allerdings abhängig, welcher Wert bei der Kompilierung eingegeben wurde. Moderne Distributionen erwarten diese Datei entweder direkt in /etc oder in /etc/samba. Die Datei smb.conf ist im Stil von Windows-INI Dateien gehalten, sie enthält also verschiedene Abschnitte, die jeweils mit einem Titel in eckigen Klammern beginnen.
Der Abschnitt [GLOBAL]
Ein wichtiger Abschnitt der Datei smb.conf ist der Abschnitt [global]. Hier werden alle globalen Einstellungen vorgenommen, die für den gesamten Dienst gelten. Die folgenden Abschnitte dienen dann der Festlegung der Eigenschaften einzelner Freigaben.
Der Abschnitt [global] beginnt mit der Überschrift [global] und endet entweder, wenn der nächste Abschnitt (die nächste Überschrift in eckigen Klammern) beginnt oder die Datei zu Ende ist.
Globale Einstellungen sind etwa die Festlegung der Arbeitsgruppe, deren als Mitglied der Samba-Server für Windows-Netze erscheinen soll. Das geschieht mit der Anweisung
[global] workgroup = Arbeitsgruppe
Diese Anweisung dient übrigens auch dazu, die Domain festzulegen, wenn wir mit WinNT oder Win2K arbeiten, statt mit Win9X.
Weitere typische Angaben dieses Abschnitts sind Angaben über die Zugriffssicherheit (SECURITY =), Druckeransteuerung (PRINTING =), Namensauflösung, WINS-Dienste, Domain-Einträge usw.
Eine sehr einfache GLOBAL-Section könnte z.B. folgendermaßen aussehen:
[global] workgroup = ARBEITSGRUPPE netbios name = MARVIN security = USER encrypt passwords = Yes guest account = nobody printing = BSD
Dabei wird also folgendes festgelegt:
- Die Arbeitsgruppe, in der der Server auftreten soll heißt „ARBEITSGRUPPE“
- Der verwendete NetBIOS Name des Servers aus der Sicht von Windows lautet „MARVIN“
- Die Sicherheitsebene ist USER, was bedeutet, dass jeder Windows-User auch einen Unix-Account haben muß.
- Passwörter sollen verschlüsselt werden. Das ist notwendig, wenn mit Windows ab Win98 zusammengearbeitet werden soll. Win95 oder Win3.11 würden hier ein „no“ verlangen.
- Zugriffe, die als Gast gemacht werden bzw. öffentlich zur Verfügung stehen (sofern es solche überhaupt gibt) werden aus der Sicht von Unix unter der UserID von nobody durchgeführt.
- Das unter Unix installierte Druckersystem ist BSD-kompatibel.
Wir werden später noch weitere Einträge in dieser Sektion vornehmen.
Freigabe eines Verzeichnisses
Um ein beliebiges Verzeichnis freizugeben, benötigen wir einen neuen Abschnitt in der Datei smb.conf. Jede Freigabe – egal ob Verzeichnis oder Drucker – bekommt einen eigenen Abschnitt. Der Name des Abschnittes ist frei wählbar und wird dann als Freigabename unter Windows benutzt.
Wenn wir beispielsweise das Verzeichnis /usr/Daten/ unter dem Freigabenamen TESTDATA für Windows-Benutzer anbieten wollen, so benötigen wir eben einen Abschnitt [TESTDATA]. Dieser Abschnitt muß mindestens die folgenden Angaben enthalten:
[testdata] comment = Versuchsfreigabe path = /usr/Daten guest ok = Yes read only = Yes
Die Anweisungen haben folgende Bedeutung:
- Der Freigabename ist testdata. Dieser Name wird in der Windows-Netzwerkumgebung angezeigt.
- Der Kommentar „Versuchsfreigabe“ erscheint in der Windows-Netzwerkumgebung im Listenmodus als Beschreibung.
- Aus der Sicht von Linux ist das freigegebene Verzeichnis /usr/Daten
- Das Verzeichnis darf auch von Gast-Accounts aus benutzt werden. Wir hätten stattdessen auch schreiben können: public = Yes.
- Der Zugriff darf nur lesend stattfinden.
Natürlich gibt es auch hier noch viele weiteren Möglichkeiten der Feineinstellung, prinzipiell ist aber damit ein Verzeichnis freigegeben.
Eine spezielle Form der Verzeichnisfreigabe ist die der User-Homeverzeichnisse. Es wäre ja praktisch, wenn die Unix-Homeverzeichnisse jedes Users diesem User auch unter Windows als Speicherplatz zur Verfügung stehen würden. Dazu bietet Samba eine spezielle Freigabeform, die sehr einfach zu verwirklichen ist, jedoch sehr effektiv arbeitet.
[homes] comment = Heimatverzeichnis read only = No browseable = No
Der entsprechende Abschnitt muß den Freigabenamen homes tragen. Dadurch wird Samba angewiesen, das Homeverzeichnis des jeweiligen Users freizugeben. Eine Pfadangabe ist unnötig, da Samba aus der Datei /etc/passwd ja entnehmen kann, welches Verzeichnis das Homeverzeichnis des jeweiligen Users ist. Neu ist gier nur die Anweisung browseable = No, die besagt, dass diese Freigabe nicht sichtbar ist. Soll sie ja auch nicht – sichtbar ist dafür aber das entsprechende Homeverzeichnis.
Freigabe eines Druckers
Die Freigabe von Druckern entspricht in etwa der der Verzeichnisse. Der einzige Unterschied besteht aus den letzten zwei Anweisungen. Der angegebene Pfad bezieht sich auf ein Verzeichnis, in dem alle User Schreibrechte haben (hoffentlich mit gesetztem Sticky-Bit!) damit dort die Druckaufträge temporär abgelegt werden können.
[PSLaser] comment = PS_600dpi-a4-auto-mono-600 path = /tmp guest ok = Yes printable = Yes printer name = lp2
Die beiden letzten Zeilen machen klar, dass es sich um einen Drucker handelt (printable=yes) und um welchen genau (printer name = lp2).
Auch für Drucker gibt es eine spezielle Freigabe, vergleichbar mit der Freigabe der Homeverzeichnisse. Es ist möglich (wenn auch nicht immer sinnvoll), alle Drucker, die dem Unix-System bekannt sind, freizugeben. Dazu dient die spezielle Freigabe printers:
[printers] comment = All Printers path = /tmp printable = Yes browseable = No guest ok = Yes
Auch hier muß der Freigabename zwingend printers heißen. Damit werden automatisch alle bekannten Drucker (alle Drucker in /etc/printcap) freigegeben. Die Anweisung browseable = No sorgt wiederum dafür, dass der Dienst selbst nicht sichtbar ist, wohl aber die einzelnen Drucker.
Überprüfen der Konfigurationsdatei mit testparm
Samba bietet ein kleines Hilfsprogramm an, um eine Konfigurationsdatei nach Fehlern zu überprüfen. Dieses Programm heißt testparm (nicht etwa smbtestparm wie in den Prüfungsanforderungen zu lesen ist). Mit seiner Hilfe kann die Datei smb.conf nach Fehlern überprüft werden. Wenn das Programm keine Fehler meldet, können Sie die Konfigurationsdatei bedenkenlos benutzen.
Natürlich überprüft testparm die Datei nur nach syntaktischen Fehlern oder nach fehlenden Angaben in bestimmten Abschnitten. Ein fehlerfreies Ergebnis ist keine Garantie dafür, dass ein bestimmter Service auch funktioniert. Wenn etwa ein angegebenes Verzeichnis nicht existiert wird das genausowenig registriert, wie etwaige fehlende Berechtigungen eines Users auf eine Freigabe.
Testparm kann auch andere Dateien überprüfen, dazu muß entsprechend der Dateiname der zu überprüfenden Datei mit angegeben werden. Ohne Parameter überprüft testparm die systemspezifische smb.conf Datei.
Verschlüsselte Passwörter
Seit Windows98 werden auch in der Microsoft-Welt Passwörter verschlüsselt übertragen. Das ist ja insgesamt zu begrüßen, weil es das Netz sicherer macht, führt aber bei Samba zu einer kleinen zusätzlichen Schwierigkeit. Da die Verschlüsselungsmethode von Windows nicht der von Unix entspricht, können nicht die gleichen Dateien (also /etc/passwd-shaddow) verwendet werden. Samba benützt also eine separate Datei und ein eigenes Programm zur Verwaltung der Windows-Passwörter.
Das hat allerdings auch den Vorteil, dass es möglich ist, einen Unix-User anzulegen, der in /etc/passwd gesperrt ist (also kein gültiges Passwort besitzt) aber ein gültiges Samba-Passwort hat, das ihm ermöglicht, die Windows-Dienste zu nutzen.
Samba speichert die Passwörter der Windows-User im selben Verzeichnis, wie seine Konfigurationsdatei. Die Passwortdatei heißt dort smbpasswd. Analog zu Unix heißt das Programm zum Wechseln der Passwörter genauso wie die Datei, in der sie gespeichert sind, also auch smbpasswd.
Grundsätzlich ist der erste Vorgang, den wir benötigen, die Einstellung
encrypt passwords = Yes
in der GLOBAL-Sektion der Konfigurationsdatei. Das weist Samba an, grundsätzlich mit verschlüsselten Passwörtern zu arbeiten. Allerdings benötigen wir jetzt noch die entsprechenden Passwörter. Es ist nicht möglich, bestehende Unix-Passwörter automatisch in Windows-Passwörter zu verwandeln, da die Unix-Passwörter mit einer nicht entschlüsselbaren Methode verschlüsselt sind. Es ist also notwendig, dass der Systemverwalter des Samba-Rechners für jeden User ein entsprechendes Samba-Passwort anlegt. Der Befehl smbpasswd erledigt das auf einfache Weise.
Das Programm smbpasswd
Das Programm smbpasswd arbeitet ähnlich wie sein Unix-Pendant passwd. Wird es vom Systemverwalter aufgerufen, so kann dieser jedes beliebige Passwort damit verändern, wird es von einem Normaluser aufgerufen, so kann dieser nur sein Passwort ändern. Allerdings arbeitet das Programm nicht wie passwd als SUID-root, sondern als Client-Server Lösung zusammen mit dem Samba-Daemon smbd. Damit das Programm smbpasswd also funktionieren kann, muß der smbd laufen!
Ein Normaluser ruft smbpasswd ohne weitere Parameter auf, und wird dann nach seinem alten Passwort gefragt. Gibt er es richtig ein, so hat er die Möglichkeit, ein neues Passwort zu bestimmen, das er dann bestätigen muß. Stimmen die beiden überein, wird das Passwort gewechselt.
Der Systemverwalter kann verschiedene Aktionen mit smbpasswd ausführen. Die wichtigsten sind:
- Ändern seines Passwortes
- Ändern jedes beliebigen Passwortes durch die Angabe des Usernames
- Anlegen eines neuen Users durch die Option -a Username (der User muß als Unix-User bereits existieren!)
- Löschen oder deaktivieren von Usereinträgen mit den Optionen -x Username (löschen) oder -d Username (deaktivieren).
- Aktivieren eines deaktivierten Eintrags mit -e Username
Es gibt noch weitere Anwendungen, die sich hauptsächlich auf die Verwaltung von Passwort-Servern beziehen, die aber hier keine Rolle spielen.
Wichtig ist, zu verstehen, warum ein Samba User nur dann funktionieren kann, wenn es ihn auch als Unix-User gibt. Samba muß ja eine Möglichkeit haben, die Zugriffsrechte auf Dateien zu regeln. Was also liegt näher, als die schon vorhandenen Zugriffsrechte der Unix-User zu benutzen? Dadurch, dass ein Samba-User auch ein Unix-User sein muß, ist sichergestellt, dass das Unix-System entscheiden kann, welche Rechte dieser User hat.
WINS-Server einrichten
Windows-Netze benutzen andere Namen, als normale IP-Netze. Da die Windows-Netze ursprünglich mit dem Protokoll NetBIOS gearbeitet haben und erst später durch NetBIOS_over_TCP/IP in die TCP/IP Welt vordrangen, werden immer noch die alten NetBIOS-Namen benutzt. Die Verwaltung aller Namenstechniken obliegt dem eigenen Server nmbd, der zusammen mit smbd gestartet wird. Auch dieser Server wird über die Datei smb.conf konfiguriert.
In einfachen Netzen werden ausschließlich Broadcasts benutzt, um den gewünschten Zielrechner zu erreichen. Das ist in komplexeren Netzen nicht mehr möglich. Aus diesem Grund brauchen wir wie unter Unix auch, eine Methode, NetBIOS Namen in IP-Adressen umzuwandeln. Analog zu Unix gibt es hier verschiedene Möglichkeiten, die da wären:
- Eine lokale Datei lmhosts (lm steht für LanManager).
- Die Unix-Datei /etc/hosts, falls NetBIOS-Namen und DNS-Namen übereinstimmen.
- Einen speziellen Nameserver, WINS genannt (Windows Internet Name Service).
Wie unter Unix auch, gibt es eine Suchreihenfolge, die bestimmt, welche Methoden in welcher Reihenfolge angewandt werden sollen. Dazu dient die Anweisung:
name resolve order = lmhosts hosts wins bcast
in der GLOBAL-Sektion der smb.conf Datei. Das gezeigte Beispiel ist die Voreinstellung. Die Reihenfolge der vier Methoden beschreibt, in welcher Reihenfolge nach Namen gesucht werden soll. Hier wird also zuerst in lmhosts gesucht, dann in /etc/hosts, falls immer noch kein Ergebnis vorliegt wird ein WINS-Server angesprochen und wenn der nichts weiss wird ein Broadcast versucht. Diese Reihenfolge kann natürlich beliebig manipuliert werden.
Einstellungen der WINS Server in smb.conf
Ein WINS-Server kann entweder von einem WinNT oder Win2000 Rechner zur Verfügung gestellt werden, oder von Samba selbst. Um einen bestehenden WINS-Server zu benutzen, geben wir in der Datei smb.conf folgende Anweisung in der GLOBAL-Sektion an:
wins server = IP-Adresse
Damit weisen wir Samba (genauer gesagt den nmbd) an, den genannten Server als WINS-Server zu benutzen. Natürlich muß dieser Server existieren und als WINS-Server konfiguriert sein.
Soll Samba selbst ein WINS-Server sein, dann benutzen wir statt dessen die Anweisung:
wins support = Yes
in der GLOBAL-Sektion der smb.conf. Damit weisen wir Samba an, selbst zum WINS-Server zu werden. Aber Achtung! Es dürfen niemals beide Anweisungen in ein und derselben smb.conf Datei stehen. Also wenn unser Samba Rechner als WINS-Server dient, darf nicht die Anweisung wins server = meineIP benutzt werden. Das würde zu einer Endlosschleife bei der Suche nach Namen führen! Es darf in einem Netz auch immer nur einen Samba-WINS-Server geben!
Alles weitere erledigt der Samba Server nmbd selbstständig. Er kümmert sich also um die entsprechenden Namen, die er wiederum über seine lmhosts-Datei oder Broadcasts herausbekommt und lokal abspeichert. Es gibt noch eine Reihe von Einstellungen, die die minimale und maximale Lebensdauer eines Nameserver-Eintrags (ttl – time to live) angehen, aber nicht zwingend erforderlich sind. max ttl = Sekunden Gibt die maximale Gültigkeit eines NetBIOS Namens an, wenn Samba nicht als WINS Server arbeitet. Voreingestellt ist der Wert 259200 (3 Tage). max wins ttl = Sekunden Gibt die maximale Gültigkeit eines NetBIOS Namens an, wenn Samba als WINS Server arbeitet. Voreingestellt ist der Wert 518400 (6 Tage). min wins ttl = Sekunden Gibt die minimale Gültigkeit eines NetBIOS Namens an, wenn Samba als WINS Server arbeitet. Voreingestellt ist der Wert 21600 (6 Stunden).
Alle diese Anweisungen stehen wiederum in der GLOBAL-Sektion der smb.conf.
Die lmhosts-Datei
Wir haben oben schon erwähnt, dass Samba eine lmhosts-Datei im selben Verzeichnis abarbeitet, wo auch die Konfigurationsdatei smb.conf liegt. Zu klären ist noch das Format dieser Datei.
Auf den ersten Blick sieht es so aus, als ob diese Datei die selbe Struktur wie die /etc/hosts-Datei von Unix hat. Bei genauerer Betrachtung gibt es aber einen kleinen aber feinen Unterschied.
Das Format der einzelnen Zeilen der Datei lmhosts ist
IP-Adresse NetBIOS-Name#NetBIOS-Typ
Die Angabe des Typs darf weggelassen werden, dann muß aber auch das # weggelassen werden.
Was ist ein NetBIOS-Typ? NetBIOS legt eine bestimmte Menge von Servertypen fest, die durch hexadezimale Zahlen dargestellt werden. Die wichtigsten dieser Typen sind:
Net-BIOS Ressource | Hexadezimaler Wert |
---|---|
Standard-Workstation | 00 |
Win-PopUp Dienst | 03 |
RAS-Server | 06 |
Domain Master-Browser oder PDC | 1B |
Master-Browser | 1D |
NetDDE Dienst | 1F |
Datei- oder Druckerdienst | 20 |
RAS-Client | 21 |
Network Monitor Agent | BE |
Network Monitor Utility | BF |
Ein NetBIOS-Namen darf nicht länger als 15 Zeichen sein, das 16 Byte wird für die Speicherung des Typs benötigt. Eine typische lmhosts Datei könnte also folgendermaßen aussehen:
192.168.200.1 TESTPC 192.168.200.20 NTSERVER#20 192.168.200.21 SAMBASERVER
Wenn ein Eintrag einen Typ enthält, dann wird dieser Eintrag nur zurückgegeben, wenn nach einem solchen Typ gefragt wurde.
Überprüfung der Namensauflösung mit nmblookup
Das Programm nmblookup ist ein NetBIOS-Nameserver-Client, mit dem die Funktionalität der Namensauflösung in Windows-Netzen überprüft werden kann. Im einfachsten Fall wird nmblookup einfach mit dem zu suchenden Namen aufgerufen:
nmblookup NetBIOS-Name
Je nach Einstellung in der entsprechenden smb.conf-Datei wird jetzt versucht, die gewünschte IP-Adresse zu ermitteln. Die relevanten Einstellungen sind hierbei wiederum wins server und name resolve order. Auch nmblookup bedient sich also der Datei smb.conf.
Um gezielt nach bestimmten NetBIOS-Typen zu suchen, kann der gewünschte Typ wie in der Datei lmhosts angegeben werden, also etwa
nmblookup 'NetBIOS-Name#Typnummer'
Beachten Sie hierbei die Klammerung mit den Anführungszeichen bzw. Hochkommata. Das Zeichen # würde ohne diese Zeichen von der Shell als Kommentarzeichen interpretiert und alles rechts des Zeichens würde weggelassen!
Wenn wir mit nmblookup gezielt einen bestimmten WINS-Server ausprobieren wollen, dann müssen wir diesen Servernamen mit der Option -U angeben. Der gesuchte NetBIOS-Name wird dann nach der Option -R angegeben. Die folgende Zeile führt eine solche Abfrage durch:
nmblookup -U WINS-Server -R 'NetBIOS-Name#Typnummer'
Nach der Einrichtung des WINS-Servers sollten allerdings einige Netzaktivitäten stattfinden, bevor die Funktionalität des Servers überprüft wird. Nur so ist zu gewährleisten, dass unser Samba-WINS-Server tatsächlich Zeit hatte, die entsprechende Information zu sammeln.
Hilfsprogramme
Neben den schon erwähnten Hilfsprogrammen testparm, nmblookup und smbpasswd existiert noch ein kleines Programm zur Darstellung des aktuellen Status von Samba. Dieses Programm heißt smbstatus und listet alle aktuellen Verbindungen auf, die Samba gerade bedient. Mit Hilfe dieses Programms kann also jederzeit überprüft werden, ob der Server gerade etwas zu tun hat, und wenn ja, was.
Ein Aufruf von smbstatus liefert eine leicht lesbare Form der Information, die etwa folgendermaßen aussieht:
Samba version 2.2.3a-1 for Debian Service uid gid pid machine ---------------------------------------------- cdrom efka efka 1113 marvin (192.168.100.2) Thu Mar 7 13:33:48 2002 No locked files
Hier ist also zu entnehmen, dass der User efka auf der Maschine marvin die Freigabe cdrom benutzt. Die angegebene Uhrzeit ist der Zeitpunkt des Beginns des Zugriffs.
Logon-Scripts
Unter WinNT ist es selbstverständlich, dass ein Client-Rechner, der sich an einer Domain anmeldet, sofort bestimmte Netzlaufwerke zur Verfügung hat. Dazu wird ein sogenanntes Logon-Script abgearbeitet, das eine einfache DOS-Batchdatei ist. Diese Batchdatei kann mit dem DOS-Befehl NET USE bestimmte Netzlaufwerke verbinden oder trennen.
Samba unterstützt die Anwendung solcher Logon-Scripts durch die Angabe eines solchen Scriptnamens. Dazu kann in der GLOBAL-Sektion von smb.conf eingetragen werden:
logon script = Scriptname
Dieses angegebene Script wird dabei innerhalb der dafür notwendigen Freigabe [netlogon] gesucht. Wenn [netlogon] also etwa den Pfad /usr/local/samba/netlogon benutzt, so wird das angegebene Script in diesem Verzeichnis angenommen.
Es ist darauf zu achten, dass ein solches Script mit einem DOS-Editor geschrieben wird oder nachträglich – etwa mit unix2dos – in das entsprechende Format gebracht wird. Die Datei muß also die DOS-üblichen CR/LF Zeilentrenner benutzen, sonst wird sie nicht funktionieren.
Ein üblicher Trick bei der Namensgebung des Scripts ist der, dass der angegebene Scriptname über Substitutionen verfügt. So wird etwa ein eingegebenes %U durch den Usernamen ersetzt. Geben wir also die folgende Zeile an:
logon script = %U.bat
dann hat jeder User sein eigenes Logon-Script.
Beispielscripts
Damit ein Windows-User bestimmte Freigaben immer unter dem selben Laufwerksbuchstaben findet, also immer die entsprechenden Netzlaufwerke verbunden sind, können wir uns des DOS-Befehls NET bedienen. Die Syntax ist
NET USE Laufwerksbuchstabe: \\Servername\Freigabename
Wenn jetzt innerhalb einer solchen Scriptdatei mit solchen Befehlen gearbeitet wird, so werden jedesmal beim Login die entsprechenden Verbindungen festgelegt. Beispielsweise könnten wir schreiben
NET USE F: \\samba1\cdrom NET USE G: \\samba1\home NET USE H: \\samba1\public
Um das Ganze noch eine Nummer eleganter zu machen hätten wir auch noch die Möglichkeit zu unterscheiden, mit welchem Betriebssystem der User arbeitet und entsprechend darauf zu reagieren:
echo off if %OS%.==Windows_NT. goto WinNT if %windir%.==. goto DOS :Win9x Win9x Befehle... goto end :DOS DOS Befehle... goto end :WinNT WinNT Befehle... goto end :end
Linux als Client in SMB-Netzen
Zuguterletzt fehlen uns jetzt noch die Möglichkeiten, auch mit Linux auf Dateisysteme zuzugreifen, die über SMB freigegeben wurden, also entweder Windows-Freigaben oder wiederum Samba-Freigaben. Dazu existiert der spezielle Befehl smbmount, der es uns erlaubt, eine SMB-Freigabe in ein beliebiges Verzeichnis zu mounten.
Grundvoraussetzung dafür ist die Fähigkeit des Kernels, mit smbfs umzugehen. Entweder muß diese Fähigkeit fest im Kernel integriert sein, oder als Modul geladen werden.
Der Befehl smbmount erwartet die Angabe des zu mountenden Laufwerks in der Form
//Servername/Freigabename
Beachten Sie, dass hier Slashs statt Backslashs (wie unter Windows üblich) benutzt werden. Die komplette Syntax von smbmount ist also
smbmount //Servername/Freigabename Mounverzeichnis [ -o Optionen]
Optionen werden als Kommata-getrennte Liste von NAME=WERT Paaren angegeben. Ein typisches Beispiel einer solchen Option ist etwa username=hans, womit festgelegt wird, unter welchem Usernamen Samba oder Windows diese Nachfrage abarbeitet. Wird kein Passwort angegeben, so fragt smbmount danach und führt den Befehl erst aus, wenn eines eingegeben wurde.
smbmount ist ein Daemon, der solange aktiv im Speicher bleibt, solange die Verbindung besteht. Erst nach einem entsprechenden umount wird der Daemon beendet.