Musikschule

Da das allseits herbeigesehnte Samba 4 – zumindest für den produktiven Einsatz – noch eine Weile auf sich warten lässt, bietet das stabile Samba 3 derzeit die einzige Möglichkeit, Unix-/Linux-Server in Windows-Umgebungen einzubinden.

In Pocket speichern vorlesen Druckansicht
Lesezeit: 6 Min.
Von
  • Karolin Seeger

Obwohl schon zwei Alpha-Releases des kommenden Samba 4 erschienen, dürfte ein vollständiger Samba-4-Domänen-Controller noch in weiter Ferne liegen. Das derzeit stabile Samba 3 kann zwar Mitglied einer Active-Directory(AD)-Domäne, aber noch kein AD-Domänen-Controller sein. Das wird erst Samba 4 beherrschen.

Samba besteht im Wesentlichen aus den drei Dämonen smbd (der eigentliche SMB-Server), nmbd (der Netbios Name Service Daemon) und winbindd (für die Kommunikation mit einem Primary Domain Controller, PDC) sowie einer Reihe von Administrationswerkzeugen. Bekanntlich erfolgt die Konfiguration aller drei Daemons in einer einzigen Textdatei: smb.conf. Diese ist im in der Windows-Welt verbreiteten Stil einer *.ini-Datei aufgebaut und besteht aus einem oder mehreren Abschnitten, deren Bezeichnungen eckige Klammern einleiten. In jeder smb.conf gibt es mindestens den Abschnitt [global], in dem sich, wie der Name schon sagt, globale Samba-Parameter festlegen lassen. Jede Datei- oder Druckerfreigabe erfordert einen weiteren Abschnitt, beispielsweise

[global]
netbios name = SMBSRV1
workgroup = SAMBA
[freigabe1]
path = /data/samba/freigabe1

Obiges Beispiel stellt die einfachste (aber funktionierende) Samba-Konfiguration dar. Es definiert einen Samba-Server namens SMBSRV1 in der Arbeitsgruppe SAMBA, der das Verzeichnis /data/samba/freigabe1 als Freigabe freigabe1 exportiert. Dazu muss allerdings der Daemon smbd laufen. Je nach eingesetzter Distribution und eingesetzten Samba-Paketen unterscheiden sich die Vorgehensweise und die Namen der Startskripte. Bei Opensuse lautet das Kommando rcsmb start und rcnmb start für den in der Regel benötigten nmbd. Red Hat und Debian starten beide Daemons in einem Startskript /etc/rc.d/samba.

Eine beliebte Stolperfalle bei der Samba-Konfiguration ist die Mehrfachdeklaration von Parametern. Um dieser aus dem Weg zu gehen, sollte man sich einprägen, dass Samba bei in der smb.conf mehrfach gesetzten Parametern immer den zuletzt gesetzten Wert verwendet und alle vorherigen ignoriert.

Es gibt globale Parameter und solche, deren Wirkungsbereich auf Freigaben begrenzt ist. Erstere kann man ausschließlich im Abschnitt [global] verwenden, sie gelten für alle Freigaben. Die freigabebasierten Parameter können hingegen pro Freigabe oder auch im globalen Teil als Standardwerte für alle stehen. Möchte man für einzelne Freigaben den Wert überschreiben, ist der entsprechende Parameter im jeweiligen Abschnitt einfach mit dem gewünschten Wert zu deklarieren. Ob ein Parameter globale Gültigkeit hat oder für Freigaben gilt, verrät die Manpage zu smb.conf. Globale Parameter sind dort mit einem (G) hinter dem Namen gekennzeichnet, freigabebasierte Parameter mit einem (S). Der wichtige Unterschied zwischen beiden Arten ist, dass Samba globale Parameter lediglich bei der Anmeldung am Server einliest, freigabebasierte Parameter jedoch bei jedem Verbindungsaufbau zu einer Freigabe. Änderungen wirken sich also bei einem erneuten Verbindungsaufbau gleich aus.

Da man sich bei den zahlreichen Samba-Parametern leicht vertippen kann, existiert das Kommando testparm. Damit kann der Administrator seine smb.conf auf Syntaxfehler hin überprüfen. Hat er beispielsweise bei freigabe1 statt path pathj geschrieben, erkennt testparm den Fehler und weist, wie die Ausgabe in Listing 1 zeigt, darauf hin. Darüber hinaus deaktiviert es die Freigabe freigabe1, weil der zwingend erforderliche Parameter path fehlt.

Ein testparm-Aufruf ist nach jeder Änderung an der smb.conf sinnvoll, um Syntaxfehler ausschließen zu können. Logische Fehler kann testparm aber nicht abfangen.

Ohne weitere Optionen zeigt das Tool lediglich die explizit gesetzten Parameter an, nicht aber die, deren Standardwerte greifen. Häufig ist es während der Fehlersuche interessant, alle Parameter inklusive deren Standardwerte sehen zu können. Das realisiert testparm -v.

Samba verfügt über circa 350 Konfigurationsparameter. Um Administratoren die Arbeit zu erleichtern und eine Alternative zum Editieren der Textdatei zur Verfügung zu stellen, entwickelte man ein webbasiertes Verwaltungswerkzeug: Das Samba Web Administration Tool (SWAT).

SWAT wird über den Internet-Daemon (inetd/xinetd) angesprochen, dieser muss also entsprechend konfiguriert sein. Voraussetzung ist, dass in der Datei /etc/services der Eintrag für die Zuordnung vom Dienst zu einer Portnummer existiert:

swat 901/tcp

Alle Anfragen, die auf TCP-Port 901 ankommen, landen so beim SWAT. Die jetzt noch erforderliche Konfiguration des Internet-Daemon erfolgt im Fall des xinetd über eine Datei – meist samba oder swat – im Verzeichnis /etc/xinet.d/ mit folgendem Inhalt:

service swat

{ socket_type = stream protocol = tcp wait = no user = root server = /usr/sbin/swat only_from = 127.0.0.1 disable = no }

Je nach eingesetztem Samba-Paket existiert die Datei oft schon. Dann muss man lediglich den Wert für disable auf no setzen. Ist ein Zugriff von anderen Systemen als localhost erwünscht, sind die jeweiligen Rechner in der Liste only_from zu ergänzen.

Per /etc/init.d/xinetd reload teilt man dem Dienst die Konfigurationsänderungen mit, und der Administrator kann via „http://localhost:901/“ per Browser auf die SWAT-Anmeldung zugreifen. SWAT benutzt für die Authentifizierung Unix-Benutzer und -Passwort und nicht die Samba-Accounts – deren Passwörter können sich durchaus voneinander unterscheiden.

Die Einsatzmöglichkeiten von SWAT reichen von einem Assistenten zur Samba-Konfiguration bis hin zur Übersicht, welche Clients gerade verbunden sind. Darüber hinaus lassen sich die einzelnen Samba-Dienste auf Knopfdruck anhalten oder neu starten. Praktisch sind auch die Erläuterungen zu den einzelnen Samba-Parametern, die das Web-Tool jederzeit per Mausklick anzeigen kann.

SWAT ist ein nettes, grafisches Hilfsmittel, das besonders Samba-Einsteigern das Leben deutlich erleichtern kann. Allerdings birgt das auch die verbreitetsten Stolpersteine beim Einsatz des Tools: Häufig setzen Anwender unnötige Parameter, die zu unerwünschten Effekten führen. Auch hat SWAT den unangenehmen Nebeneffekt, Kommentare in einer bereits vorhandenen Konfiguration gnadenlos zu entfernen.

Wie sich Samba als Stand-alone-Server konfigurieren lässt und sich unter anderem Zugriffe auf Freigaben sinnvoll einrichten und gegebenenfalls beschränken lassen, beschreibt der Artikel in der Printausgabe ab 21.2.08 am Kiosk.

Mehr Infos

Listing 1: testparm-Ergebnisse

bando:~ # testparm
Load smb config files from /etc/samba/smb.conf
Processing section "[freigabe1]"
Unknown parameter encountered: "pathi"
Ignoring unknown parameter "pathi"
WARNING: No path in service freigabe1 - making it unavailable!
NOTE: Service freigabe1 is flagged unavailable.
Loaded services file OK.
Server role: ROLE_STANDALONE
Press enter to see a dump of your service definitions
[global]
workgroup = PEPPY
netbios name = SMBSRV1
[freigabe1]
available = No
bando:~ #
Mehr Infos

iX-TRACT

  • Samba ist ein freier CIFS-Server für Unix- und Linux-Systeme.
  • Mit circa 350 Parametern bietet Samba ein Fülle von Einstellungsmöglichkeiten.
  • Text- und GUI-basierte Tools helfen dem Administrator bei der Einrichtung und Verwaltung.
Mehr Infos

Tutorialinhalt

Teil I: Stand-alone-Samba-Server (iX 3/2008, S. 142)
Teil II: Mitgliedsserver in einer Windows-Domäne (iX 4/2008, S. 146)
Teil III: Ein Samba-Server als PDC (iX 5/2008, S. 140)

(avr)