Linux-Arbeitskreis Hamburg

SAMBA

/etc/smb.conf

Grundlagen

Die smb.conf-Datei ist ähnlich wie die win.ini-Datei von Windows aufgebaut, d.h. sie enthält [Abschnitte] und in diesen Abschnitten Wert=Zuweisungen. Drei Abschnitte, [global], [homes] und [printers] haben eine besondere Bedeutung, die restlichen Abschnitte sind normale Freigaben.

Für jede Freigabe muß angegeben werden:

Was wird freigegeben?
Es muß ein mit einem Statement wie 'path=/pfad/der/freigabe' der Pfad zum (Spool-)Verzeichnis angegeben werden. Bei Druckern gehört zusätzlich die Angabe 'printable=yes' dazu.
Eine Angabe wie comment=CD-Rom-Laufwerk rundet die ganze Sache ab.
Mit welchen Rechten wird es freigegeben?
writable=no (Geschmackssache) legt fest, daß Benutzer keinen Schreibzugriff auf eine Freigabe haben sollen. Drucker brauchen keine Schreibrechte. Ein Benutzer mit Schreibzugriff braucht natürlich immer noch Schreibberechtigung für die zu beschreibenden Dateien.
Wer darf darauf zugreifen?
Mit public=yes wird festgelegt, daß die Freigabe ohne Angabe von Username und Passwort gemountet werden darf. Der Zugriff erfolgt dann als nobody (man kann dies durch ein guest user-Statement in [global] ändern). Mit einem valid users-Statement (Nur diese Benutzer dürfen diese Friegabe mounten) und/oder einem invalid users-Statement (diese Benutzer dürfen die Freigabe gar nicht mounten, selbst wenn sie valid users sind) kann man Freigaben auf bestimmte Benutzer beschränken. Gruppen kann man im Stil @gruppenname angeben.
Extras
Da wären zum Beispiel die Angaben preexec, postexec, root preexec und root postexec, die es erlauben, bei mounten bzw. unmounten der Ressource einen Befehl (evtl. als root) auszuführen. Dies eignet sich vorzüglich für CD-Roms und ähnliches, um sie bei Benutzung automatisch zu mounten.

Die [homes]-Freigabe hat eine besondere Bewandnis. Mit
net use \\server\homes
kann ein Benutzer sein Homeverzeichnis mounten. Dies geht auch als
net use \\server\<user>
(für den Benutzer <user>).

Ersetzungen

Es können Angaben mit Ersetzungen gemacht werden. Will man etwa eine Freigabe je nach Rechner in ein anderes Verzeichnis zeigen lassen, so geht das mit 'path=/var/clients/%m', wobei dann %m durch den NetBIOS-Namen des Clients ersetzt wird. Die Ersetzungen sind:

%S = Der Name der Freigabe

%P = Das Verzeichnis der Freigabe (die expandierte path-Angabe)

%u = Der Benutzer der Freigabe

%U = Der Benutzername, wie er beim Client eingestellt ist (d.h. er muß nicht

     notwendigerweise überprüft worden sein)

%H = Das Homeverzeichnis des gültigen Benutzers

%v = Die Versionsnummer von Samba (nur für Beschreibungs-Strings interessant)

%h = Der Hostname des Servers (=server.osterbek.hh.schule.de)

%m = Der NetBIOS-Name des Client (z.B. client1)

%L = Der NetBIOS-Name des Servers

%M = Der Hostname des Client

%d = Prozeß-Id des smbd

%a = Architektur des Clients. Es werden Samba, WfWg, WinNT und Win95 erkannt.

%I = IP-Adresse des Client

%T = Datum und Zeit


Dateiinhalt:

Test der Konfiguration

  1. testparm /etc/smb.conf
    laufen lassen. Es zeigt eventuelle Fehler in der smb.conf-Datei an.
  2. smbclient -L server
    laufen lassen. Es sollten nun die aktuellen Freigaben des Servers aufgelistet werden. Wenn nicht, liegt das an nicht laufenden Dämonen oder an falscher Konfiguration (dann kommt eine Meldung 'Your server is unfriendly').


Kritik, Anregungen und Ergänzungen willkommen. Zusammengestellt von Uwe Debacher, letzte Änderung am