Samba wird grundsätzlich über eine einzige Konfigurationsdatei verwaltet, /etc/smb.conf. Diese Datei muß existieren, bevor der Server selbst gestartet wird, damit er überhaupt weis, was er tun und lassen soll.

Wir werden jetzt eine sehr einfache smb.conf Datei durchsprechen, die die grundlegenden Prinzipien dieser Konfigurationsdatei zeigt. Die einzelnen Bereiche werden jeweils kommentiert, erklärt und denkbare Alternativen werden aufgezeigt.

Der grundsätzliche Aufbau dieser Konfigurationsdatei entspricht dem von Windows-INI-Dateien. Das heißt, die Datei besteht aus einzelnen Abschnitten, die immer durch Überschriften in eckigen Klammern voneinander getrennt sind. Kommentare innerhalb der Konfigurationsdatei werden durch Strichpunkte eingeleitet, nicht durch Doppelkreuze.

Alle Freigaben, also sowohl Drucker, als auch Dateifreigaben werden als sogenannte shares bezeichnet. Jedes Verzeichnis und jeder Drucker, der freigegeben wird ist also ein share und hat einen eigenen Abschnitt innerhalb der Konfigurationsdatei. Ein spezieller solcher Abschnitt ist [global], der globale Einstellungen ermöglicht. Aber genug der Theorie, fangen wir an. Das folgende steht in unserer /etc/smb.conf:

[global]
  workgroup = ARBEITSGRUPPE
  netbios name = MARVIN
  security = SHARE
  guest account = nobody

[public]

comment = Oeffentliches Verzeichnis path = /usr/public guest ok = Yes read only = Yes Wir haben nur zwei einfache Abschnitte in dieser Datei, [global] und [public]. Der erste Abschnitt beschreibt die globalen Einstellungen und muß diesen Namen tragen. Der zweite beschreibt eine Freigabe, deren Namen willkürlich auf „public“ gesetzt wurde. Der Name könnte auch anders heißen, es ist einfach nur ein Name.

Die Sektion [global]

Sehen wir uns die [global]-Sektion einmal genauer an: Die erste Anweisung ist klar, hier wird die Windows-Workgroup definiert. Das Prinzip der Workgroups wurde von Windows 3.11 (Windows for Workgroups) eingeführt und definiert eine Arbeitsgruppe, um ein Netz überschaubarer zu halten. Windows NT (und Win 2000) arbeiten stattdessen mit dem Domain-Prinzip, aber Samba benutzt den Workgroup Eintrag später auch, um die Domain-Einstellungen vorzunehmen. Wir definieren hier also die Zugehörigkeit des Samba Servers zur Workgroup „Arbeitsgruppe“.

Der zweite Eintrag (netbios name = marvin) definiert den Namen, der aus der Sicht von Windows Rechnern für den Samba Server gültig ist. Wir dieser Eintrag weggelassen, dann wird der Standard-Unixname (DNS Name) des Servers gewählt.

Der Eintrag security = share legt fest, dass die Zugangssteuerung auf Freigabeebene erfolgt, das ist die simpelste Möglichkeit, die einzige, um keine Passwörter zu brauchen. Wir werden uns später mit dieser Einstellung noch intensiv auseinandersetzen.

Der nächste (und letzte) Eintrag der Sektion [global] beschreibt, unter welcher UserID der Dateizugriff stattfinden soll, wenn ein nicht authorisierter User (also ein Gast ohne Passwort) auf einen Dienst zugreift. Die Tatsache, dass Windows selbst keine vergleichbaren Usereinstellungen kennt, zwingt uns hier, einen User anzugeben, damit Linux weiß, welche Rechte hier zur Verfügung stehen. In diesem Fall ist es also der User nobody, ein User ohne besondere Rechte.

Wenn wir jetzt also von einem Windows-Rechner aus die Netzwerkumgebung ansehen und die Workgroup Arbeitsgruppe aufrufen, werden wir folgendes Bild zu sehen bekommen:

Der Kommentar Samba 2.0.6 ist der voreingestellte Kommentar, den wir in der Sektion [global] auch ändern könnten, indem wir die Anweisung

  server string = ...

eingefügen. Diese Einstellung bietet noch die Möglichkeit, den Rechnernamen mit einem %h darzustellen, die Version von Samba bekommen wir mit %v. Hätten wir also in der Sektion [global] geschrieben:

  server string = Samba Versuchsserver auf %h (Samba %v)

dann stünde im Kommentarfeld der Netzwerkumgebung unter WindowsSamba Versuchsserver auf marvin (Samba 2.0.6)Das %h und %v sind also sogenannte Zeichenkettensubstitutionen, die vom Server durch eine bestimmte Zeichenkette ausgetauscht (substituiert) werden. Alle denkbaren Zeichenkettensubstitutionen, die Samba unterstützt, finden Sie in der Zusammenfassung Zeichenkettensubstitutionen.

Die Sektion [public]

Unserer zweite Sektion in der Datei /etc/smb.conf heißt [public]. Das ist – wie oben schon erwähnt – nur ein beliebiger Name und hat keinerlei syntaktische Bedeutung. Der Name ist allerdings der Freigabename, unter dem das freigegebene share (Verzeichnis) unter Windows dann zu sehen sein wird. Die Zeilen in diesem Abschnitt haben folgende Bedeutung:

Die erste Anweisung (comment = Oeffentliches Verzeichnis) definieren einen Kommentar, den wir dann in der Netzwerkumgebung unter Windows wiederfinden werden. Beachten Sie, dass Unix und Windows völlig anders mit Umlauten umgehen. Hätten wir Öffentlich statt Oeffentlich geschrieben, so hätte der Windows-User statt dem Ö ein | gesehen, was sicherlich weniger informativ gewesen wäre…

Die zweite Anweisung definiert den absoluten Pfad unter Linux, auf den sich diese Freigabe bezieht. Die Angabe path = /usr/public bedeutet also, dass unter dem Freigabenamen public das Verzeichnis /usr/public zu erreichen ist.

Die Angabe guest ok = yes bedeutet, dass dieses share ohne Passwort erreichbar ist. Stattdessen hätten wir auch schreiben können:

  public = Yes

Es ist also ein öffentlich zugängliches Verzeichnis für alle Windows-User. Kein Passwort wird verlangt. Allerdings haben alle User in diesem Verzeichnis dann auch nur das Recht des Gast-Users.

Die letzte Zeile erklärt sich von selbst, read only = Yes meint natürlich, dass die Freigabe nur ReadOnly erfolgt, dass die Windows-User also dort nur lesen dürfen. Aus der Sicht von Windows bekommen wir also jetzt folgendes Bild, wenn wir oben den Rechner marvin angeklickt hätten:

Beachten Sie, dass die Dateien, die auf dem Rechner marvin im Verzeichnis /usr/public liegen nur dann lesbar sind, wenn sie – aus der Sicht von Linux – vom User nobody lesbar sind. Wir haben ja oben angegeben, dass ein Gastzugriff unter dieser UserID verwaltet wird. Jeder passwortlose Zugriff auf dieses Verzeichnis wird jetzt unter der UserID von nobody vorgenommen.

Es ist auch möglich, für jedes angegebene share einen eigenen Gast-User festzulegen. Wenn die Anweisung guest account = … in einem Abschnitt vorkommt, der nicht die Sektion [global] ist, so gilt diese spezielle Abmachung nur für diesen share.

Zwei weitere interessante Anweisungen für jeden share sind

  • browseable = Yes|No
    Wenn die Option browseable = No gesetzt wurde, dann erscheint der share nicht in der Liste der freigegebenen Verzeichnisse in der Windows Netzwerkumgebung, steht aber trotzdem zur Verfügung, wenn man den entsprechenden Pfad (\\Rechnername\Freigabename) angibt.
    Standardmäßig steht browseable auf Yes.
  • available = Yes|No
    Mit dieser Option kann – wenn sie auf No gesetzt ist, ein share für den Augenblick abgeschaltet werden, ohne ihn aus der Datei /etc/smb.conf zu streichen oder langwierig auszukommentieren. Standardmäßig ist available auf Yes gestellt.

Selbstverständlich können beliebig viele shares angelegt werden, um verschiedene Verzeichnisse auf unterschiedliche Arten freizugeben. Jedes share bekommt einen eigenen Abschnitt in der smb.conf, beginnend mit dem Freigabenamen in eckigen Klammern, gefolgt von den entsprechenden Angaben…