Samba, 
2. Auflage

Samba, 2. Auflage

Von Jay Ts, Robert Eckstein, and David Collier-Brown
2. Auflage, August 2003
O'Reilly Verlag, ISBN: 3-89721-359-1
www.oreilly.de/catalog/samba2ger/

Dieses Buch ist unter der GNU Free Documentation License (FDL) erschienen. Bitte beachten Sie den Text der GNU FDL.


TOC PREV NEXT INDEX

Kapitel 6

Die Samba-Konfigurationsdatei

In den vorangegangenen Kapiteln haben wir Ihnen gezeigt, wie Sie Samba auf einem Unix-Server installieren und Windows-Clients so einrichten, dass diese eine einfache Festplattenfreigabe nutzen können. In diesem Kapitel erfahren Sie, wie Samba produktivere Rollen in Ihrem Netzwerk übernehmen kann.

Sambas Daemons, smbd und nmbd, werden mit Hilfe einer einzigen ASCII-Datei, der Datei smb.conf, gesteuert, die mehr als 300 eindeutige Optionen (so genannte Parameter) enthalten kann. Einige dieser Optionen werden Sie häufig benutzen und verändern, andere setzen Sie möglicherweise nie ein, je nachdem, wie viele Funktionen Samba seinen Clients anbieten soll.

Dieses Kapitel stellt die Struktur der Samba-Konfigurationsdatei vor und zeigt Ihnen, wie Sie die Optionen einsetzen, mit denen Sie Festplattenfreigaben erzeugen und modifizieren. Die nachfolgenden Kapitel behandeln die Suche, die Konfiguration der Benutzer, die Sicherheit, das Drucken und andere Themen, die mit der Implementierung von Samba in Ihrem Netzwerk zu tun haben.

Die Samba-Konfigurationsdatei

Die Samba-Konfigurationsdatei, standardmäßig als smb.conf bezeichnet, besitzt das gleiche Format wie die Windows-.ini-Dateien. Falls Sie jemals mit einer .ini-Datei gearbeitet haben, werden Sie feststellen, dass smb.conf einfach zu erstellen und zu verändern ist. Und auch wenn Sie noch nie damit zu tun hatten, werden Sie das Format einfach und leicht verständlich finden. Hier ein Beispiel für eine Samba-Konfigurationsdatei:

[global]
 
	workgroup = METRAN
 
	encrypt passwords = yes
 
	wins support = yes
 
	log level = 1 
 
	max log size = 1000
 
	read only = no
 
[homes] 
 
	browsable = no
 
	map archive = yes
 
[printers] 
 
	path = /var/tmp
 
	printable = yes
 
	min print space = 2000
 
[test]
 
	browsable = yes
 
	read only = yes
 
	path = /usr/local/samba/tmp
 

Diese Konfigurationsdatei basiert auf derjenigen, die wir in Kapitel 2 erzeugt haben. Sie richtet eine Arbeitsgruppe ein, in der Samba die Benutzer mit Hilfe verschlüsselter Kennwörter und der vorgegebenen Sicherheitsmethode auf Benutzerebene authentifiziert. Samba bietet Unterstützung für einen WINS-Name-Server. Wir haben eine sehr einfache Ereignisprotokollierung konfiguriert, so dass die Protokolldatei nicht größer als 1 MByte wird. Die Freigabe [homes] wurde hinzugefügt, um es Samba zu erlauben, eine Festplattenfreigabe für das Home-Verzeichnis jedes Benutzers anzulegen, der einen normalen Unix-Zugang auf dem Server besitzt. Darüber hinaus ist jeder Drucker, der an dem Server registriert wurde, für die Allgemeinheit verfügbar. Dies gilt auch für eine schreibgeschützte Freigabe, die mit dem Verzeichnis /usr/local/samba/tmp verknüpft ist.

Die Struktur der Konfigurationsdatei

Schauen wir uns diese Konfigurationsdatei noch einmal an, dieses Mal von einer etwas höheren Warte:

[global] 
 
	...
 
[homes] 
 
	...
 
[printers] 
 
	...
 
[test] 
 
	...
 

Die Namen in den eckigen Klammern beschreiben eindeutige Abschnitte der Datei smb.conf. Jeder Abschnitt bezeichnet die Freigabe (oder den Dienst), auf den sich der Abschnitt bezieht. Die Abschnitte [test] und [homes] beispielsweise sind eindeutige Festplattenfreigaben. Sie enthalten Optionen, die für bestimmte Verzeichnisse auf dem Samba-Server gelten. Die Freigabe [printers] enthält Optionen, die sich auf die verschiedenen Drucker an dem Server beziehen. Alle in der Datei smb.conf definierten Abschnitte mit Ausnahme des Abschnitts [global] stehen den Clients, die sich am Samba-Server anmelden, als Festplatten- oder Druckerfreigabe zur Verfügung.

Die restlichen Zeilen sind einzelne Konfigurationsoptionen für diese Freigabe. Diese Optionen werden fortgesetzt, bis ein neuer Abschnitt entdeckt oder das Ende der Datei erreicht wird. Die Konfigurationsoptionen besitzen ein einfaches Format:

Option = Wert
 

Die Optionen in der Datei smb.conf werden gesetzt, indem ihnen ein Wert zugeordnet wird. Wir sollten Sie gleich zu Anfang darauf hinweisen, dass einige der Optionsnamen in Samba wirklich unglücklich gewählt wurden. So ist der Name read only beispielsweise selbsterklärend und typisch für viele der neueren Samba-Optionen. Die Option public ist älter und ein wenig vage. Inzwischen hat sie das weniger verwirrende Synonym guest ok (was bedeutet, dass Gastbenutzer auf die Freigabe zugreifen dürfen). Anhang B enthält einen alphabetischen Index aller Konfigurationsoptionen und deren Bedeutungen.

Whitespace, Anführungszeichen und Kommata

Ein wichtiger Aspekt, den Sie sich in Bezug auf die Konfigurationsoptionen merken müssen, ist die Tatsache, dass Whitespace, also Leerstellen, innerhalb eines Werts wichtig ist. Stellen Sie sich zum Beispiel folgende Option vor:

volume = The Big Bad Hard Drive Number 3543
 

Samba entfernt alle Leerzeichen bis zum ersten T in The. Diese Whitespaces sind unwichtig. Die restlichen Whitespaces sind wichtig und werden beim Einlesen der Datei durch Samba erkannt und bewahrt. In Optionsnamen sind Leerzeichen nicht entscheidend (etwa in read only), wir empfehlen Ihnen jedoch, der Konvention zu folgen und die Leerzeichen zwischen den Wörtern der Optionen beizubehalten.

Falls Sie sich sicherer fühlen, wenn Sie Anführungszeichen am Anfang und am Ende des Werts einer Konfigurationsoption einfügen, können Sie dies tun. Samba ignoriert diese Anführungszeichen, wenn es sie bemerkt. Setzen Sie allerdings keine Anführungszeichen um einen Optionsnamen; Samba betrachtet diese als Fehler.

Normalerweise können Sie Whitespace oder Kommata verwenden, um eine Reihe von Werten in einer Liste voneinander zu trennen. Diese beiden Optionen sind äquivalent:

netbios aliases = sales, accounting, payroll
 
netbios aliases = sales accounting payroll
 

In einigen Fällen müssen Sie eine bestimmte Form der Trennung benutzen - manchmal sind Leerzeichen erforderlich und manchmal Kommata.

Großschreibung

Die Großschreibung ist in der Samba-Konfigurationsdatei nicht wichtig. Eine Ausnahme bilden Stellen, an denen die Datei mit dem zu Grunde liegenden Betriebssystem kollidieren würde. Lassen Sie uns zum Beispiel annehmen, dass Sie die folgende Option in eine Freigabe aufgenommen haben, die auf /export/samba/simple  verweist:

PATH = /EXPORT/SAMBA/SIMPLE
 

Samba hätte keine Probleme mit der Konfigurationsoption path, wenn diese vollständig in Großbuchstaben wäre. Wenn es jedoch versucht, eine Verbindung zu dem angegebenen Verzeichnis herzustellen, hätte dies keinen Erfolg, da das Unix-Dateisystem zwischen Groß- und Kleinbuchstaben unterscheidet. Das bedeutet, dass der aufgeführte Pfad nicht gefunden werden würde und die Clients sich nicht an der Freigabe anmelden könnten.

Zeilenfortsetzung

Sie können eine Zeile in der Samba-Konfigurationsdatei mit Hilfe eines Backslashs fortsetzen:

comment = Die erste Freigabe, die die wichtigsten Kopien \
 
          des neuen Software-Produkts von Teamworks enthaelt.
 

Wegen des Backslashs werden diese beiden Zeilen von Samba als eine einzige Zeile betrachtet. Die zweite Zeile beginnt bei dem ersten Nicht-Whitespace-Zeichen, das Samba entdeckt; in diesem Fall beim d von des.

Kommentare

Sie können Kommentare in die smb.conf-Konfigurationsdatei aufnehmen, indem Sie eine Zeile entweder mit einem Hash-Zeichen (#) oder einem Semikolon ( ; ) beginnen lassen. Für diesen Zweck sind die beiden Zeichen äquivalent. So würden etwa die ersten drei Zeilen des folgenden Beispiels als Kommentare betrachtet werden:

#  Dies ist der Abschnitt printers. Wir haben einen freien Platz von wenigstens  
 
;  2000 vorgesehen, um Fehler auszuschließen, die nach unserer Beobachtung
 
;  auftreten, wenn der Spooler voll läuft.
 

 
[printers] 
 
	public = yes
 
	min print space = 2000
 

Samba ignoriert alle Kommentarzeilen in seiner Konfigurationsdatei; es gibt keine Einschränkungen zu dem, was nach dem einleitenden Hash-Zeichen oder Semikolon kommt. Beachten Sie, dass das Zeilenfortsetzungszeichen (\) auf einer Kommentarzeile nicht beachtet wird. Es wird wie der Rest der Zeile ignoriert.


Samba lässt das Mischen von Kommentarzeilen und Parametern nicht zu. Setzen Sie daher Kommentare nicht auf die gleiche Zeile wie etwas anderes:
path = /d # Datenpartition des Servers
 
Solche Fehler, bei denen der Parameterwert mit einem String definiert wird, sind meist schwierig festzustellen. Das Programm testparm beschwert sich nicht, und die einzigen Hinweise, die Sie erhalten, sind die Ausgabe von testparm, dass der Parameter path auf /d # Datenpartition des Servers gesetzt ist, und Fehler, wenn die Clients versuchen, auf die Freigabe zuzugreifen.
Änderungen zur Laufzeit

Sie können die Konfigurationsdatei smb.conf und ihre Optionen jederzeit ändern, während die Samba-Daemons laufen. Standardmäßig prüft Samba die Konfigurationsdatei alle 60 Sekunden. Findet es irgendwelche Änderungen, werden diese unmittelbar danach wirksam.


Es kann sehr bequem sein, dass Samba die Konfigurationsdatei automatisch überprüft. Das bedeutet aber auch, dass Sie beim direkten Bearbeiten der smb.conf jedes Mal sofort die Konfiguration Ihres Netzwerks ändern, sobald Sie die Datei speichern. Falls Sie mehr als nur eine kleinere Änderung vornehmen, ist es besser, wenn Sie die smb.conf in eine temporäre Datei speichern, diese bearbeiten, testparm dateiname ausführen, um sie zu prüfen, und die temporäre Datei dann zurück nach smb.conf kopieren. Auf diese Weise können Sie sicher sein, dass alle Ihre Änderungen auf einmal wirksam werden und das auch nur dann, wenn Sie sicher sind, dass Sie genau die Konfiguration erzeugt haben, die Sie auch implementieren wollten.

Falls Sie nicht auf das automatische Laden der Konfigurationsdatei warten wollen, können Sie das Neuladen erzwingen, indem Sie entweder ein Hangup-Signal an die smbd- und nmbd-Prozesse senden oder einfach die Daemons neu starten. Tatsächlich erweist es sich als eine gute Idee, die Daemons neu zu starten, da dadurch die Clients gezwungen werden, die Verbindung zu beenden und neu aufzubauen, wodurch sichergestellt wird, dass die neue Konfiguration auf alle Clients angewendet wird. Wir haben Ihnen in Kapitel 2 gezeigt, wie die Daemons neu gestartet werden. Das Senden eines Hangup-Signals (HUP) funktioniert ähnlich. Unter Linux kann dies über den folgenden Befehl erledigt werden:

# killall -HUP smbd nmbd
 

In diesem Fall werden nicht alle Änderungen sofort durch die Clients bemerkt. Beispielsweise werden Änderungen an einer Freigabe, die gerade in Benutzung ist, erst dann registriert, wenn der Client die Verbindung zu dieser Freigabe beendet und erneut aufbaut. Auch serverspezifische Parameter wie die Arbeitsgruppe oder der NetBIOS-Name des Servers werden nicht sofort wirksam. (Dieses Verhalten wurde absichtlich so implementiert, da es verhindert, dass aktive Clients plötzlich abgemeldet werden oder unerwartete Zugriffsprobleme auftreten, während eine Sitzung läuft.)

Variablen

Da für jeden sich anmeldenden Client eine neue Kopie des smbd-Daemons erzeugt wird, ist es möglich, jedem Client seine eigene angepasste Konfigurationsdatei zu bieten. Samba erlaubt eine beschränkte, aber dennoch nützliche Form der Variablensubstitution in der Konfigurationsdatei, um Informationen über den Samba-Server und den Client zu dem Zeitpunkt in die Konfiguration einzubinden, zu dem der Client sich anmeldet. In der Konfigurationsdatei beginnt eine Variable mit einem Prozentzeichen (%), gefolgt von einem einzelnen Groß- oder Kleinbuchstaben. Sie kann nur auf der rechten Seite einer Konfigurationsoption (d.h. nach dem Gleichheitszeichen) auftauchen. Hier ein Beispiel:

[pub]
 
    path = /home/ftp/pub/%a 
 

Die Variable %a steht für die Architektur des Client-Systems und wird so ersetzt, wie in Tabelle 6-1 gezeigt.

Tabelle 6-1
%a-Substitution
Client-Betriebssystem (»Architektur«)
Ersetzungs-String
Windows for Workgroups
WfWg
Windows 95 und Windows 98
Win95
Windows NT
WinNT
Windows 2000 und Windows XP
Win2K
Samba
Samba
Jedes Betriebssystem, das noch nicht aufgeführt wurde
UNKNOWN

In diesem Beispiel weist Samba Client-Systemen einen eindeutigen Pfad für die Freigabe [pub] zu, der davon abhängt, welches Betriebssystem auf ihnen läuft. Die Pfade, die die einzelnen Clients als ihre Freigabe sehen, unterscheiden sich entsprechend der Architektur des Clients:

/home/ftp/pub/WfwG
 
/home/ftp/pub/Win95
 
/home/ftp/pub/WinNT
 
/home/ftp/pub/Win2K
 
/home/ftp/pub/Samba
 
/home/ftp/pub/UNKNOWN
 

Die Benutzung von Variablen auf diese Weise ist ganz praktisch, wenn Sie wollen, dass unterschiedliche Benutzer eigene Konfigurationen auf der Grundlage ihrer eigenen Charakteristika oder Bedingungen erhalten. Samba besitzt 20 Variablen, wie Tabelle 6-2 zeigt.

Tabelle 6-2
Samba-Variablen 
Variable
Definition
Client-Variablen
%a
Architektur des Clients (siehe Tabelle 6-1)
%I
IP-Adresse des Clients (z.B. 172.16.1.2)
%m
NetBIOS-Name des Clients
%M
DNS-Name des Clients
Benutzervariablen
%u
Aktueller Unix-Benutzername
%U
Angeforderter Client-Benutzername (wird nicht immer von
Samba verwendet)
%H
Home-Verzeichnis von %u
%g
Primäre Gruppe von %u
%G
Primäre Gruppe von %U
Freigabevariablen
%S
Name der aktuellen Freigabe
%P
root-Verzeichnis der aktuellen Freigabe
%p
Pfad des Automounters auf das root-Verzeichnis der Freigabe, falls verschieden von %P
Server-Variablen
%d
Prozess-ID des aktuellen Servers
%h
DNS-Hostname des Samba-Servers
%L
NetBIOS-Name des Samba-Servers
%N
Home-Verzeichnis-Server aus der automount-Map
%v
Samba-Version
Sonstige Variablen
%R
Ausgehandelte SMB-Protokollstufe
%T
Aktuelles Datum und Uhrzeit
%$var
Wert der Umgebungsvariablen var

Hier ist ein weiteres Beispiel für die Benutzung von Variablen: Nehmen Sie einmal an, dass es fünf Clients in Ihrem Netzwerk gibt, aber einer der Clients, maya, erfordert eine etwas andere [homes]-Konfiguration. Mit Samba lässt sich das leicht erledigen:

[homes] 
 
	...
 
	include = /usr/local/samba/lib/smb.conf.%m
 
	...
 

Die Option include sorgt dafür, dass zusätzlich zur aktuellen Datei eine separate Konfigurationsdatei für jede NetBIOS-Maschine (%m) eingelesen wird. Lautet der Hostname des Client-Systems maya und gibt es eine Datei smb.conf.maya im Verzeichnis /usr/local/samba/lib, fügt Samba diese Konfigurationsdatei in die Standardkonfigurationsdatei ein. Werden Konfigurationsoptionen in smb.conf.maya erneut angegeben, setzen diese Werte die Optionen außer Kraft, die zuvor in dieser Freigabe erkannt wurden. Beachten Sie, dass wir »zuvor« sagen. Werden Optionen in der Hauptkonfigurationsdatei nach der include-Option erneut angegeben, beachtet Samba diese neuen Werte für die Freigabe, in der sie definiert wurden.

Existiert die Datei nicht, die durch den include-Parameter angegeben wurde, liefert Samba keine Fehlermeldung. Es tut überhaupt nichts. Dies erlaubt es Ihnen, beim Einsatz dieser Strategie nur eine einzige zusätzliche Konfigurationsdatei für maya zu erzeugen, anstatt eine für jeden Client im Netzwerk anlegen zu müssen.

Client-spezifische Konfigurationsdateien können eingesetzt werden, um bestimmte Clients anzupassen. Sie können auch die Fehlersuche bei Samba erleichtern. Wenn wir beispielsweise einen Client mit einem Problem haben, können wir ihm mit Hilfe dieses Ansatzes eine eigene Protokolldatei geben, für die wir eine höhere Protokollierungsstufe einstellen. So können wir feststellen, was Samba tut, ohne alle anderen Clients zu behindern oder die Platte mit unnützen Protokollen zu verstopfen.

Sie können die Variablen in Tabelle 6-2 verwenden, um einer Vielzahl von Samba-Optionen eigene Werte zu übergeben. Wir werden im Laufe der nächsten Kapitel einige dieser Optionen näher betrachten.

Besondere Abschnitte

Nachdem wir einen ersten Einblick in die Welt der Variablen genommen haben, sollten wir über einige besondere Abschnitte der Samba-Konfigurationsdatei sprechen. Auch hier müssen Sie sich keine Sorgen machen, wenn Sie nicht jede Konfigurationsoption verstehen, die hier aufgeführt wird, wir werden in den folgenden Kapiteln näher auf sie eingehen.

Der Abschnitt [ global]

Der Abschnitt [global] taucht in praktisch jeder Samba-Konfigurationsdatei auf, obwohl er nicht zwingend erforderlich ist. Es gibt zwei Aufgaben für den Abschnitt [global]. Hier werden serverweite Einstellungen definiert. Außerdem werden alle Optionen, die für Freigaben gelten, in allen Freigabe-Definitionen als Vorgabe verwendet, es sei denn, sie werden innerhalb der Freigabe-Definition überschrieben.

Um dies zu verdeutlichen, schauen wir uns noch einmal das Beispiel vom Anfang des Kapitels an:

[global]
 
	workgroup = METRAN
 
	encrypt passwords = yes
 
	wins support = yes
 
	log level = 1 
 
	max log size = 1000
 
	read only = no
 
[homes] 
 
	browsable = no
 
	map archive = yes
 
[printers] 
 
	path = /var/tmp
 
	printable = yes
 
	min print space = 2000
 
[test]
 
	browsable = yes
 
	read only = yes
 
	path = /usr/local/samba/tmp
 

Wenn ein Client eine Verbindung zur Freigabe [test] herstellt, liest Samba zuerst den Abschnitt [global] und legt die Option read only = no als globalen Standardwert für jede Freigabe fest, die es in der Konfigurationsdatei entdeckt. Dies schließt die Freigaben [homes] und [test] ein. Wenn es die Definition der [test]-Freigabe einliest, findet es die Konfigurationsoption read only = yes und überschreibt den vorgegebenen Wert aus dem Abschnitt [global] mit dem Wert yes.

Jede Option, die vor dem ersten gekennzeichneten Abschnitt auftaucht, wird als globale Option betrachtet. Dies bedeutet, dass die Abschnittsüberschrift [global] nicht unbedingt erforderlich ist. Wir empfehlen Ihnen allerdings, diese Überschrift aus Gründen der Klarheit und zur weiteren Sicherung der Kompatibilität immer zu setzen.

Der Abschnitt [ homes]

Wenn ein Client versucht, eine Verbindung zu einer Freigabe herzustellen, die nicht in der Datei smb.conf auftaucht, sucht Samba nach einer [homes]-Freigabe in der Konfigurationsdatei. Existiert eine Freigabe [homes], wird angenommen, dass der nicht aufgelöste Freigabename ein Unix-Benutzername ist. Ist dieser Benutzername in der Kennwortdatenbank auf dem Samba-Server zu finden, geht Samba davon aus, dass es sich bei dem Client um einen Unix-Benutzer handelt, der versucht, sich auf seinem Home-Verzeichnis auf dem Server anzumelden.

Stellen Sie sich beispielsweise vor, ein Client-System meldet sich zum ersten Mal auf dem Samba-Server toltec an und versucht, eine Verbindung zu einer Freigabe namens [alice] herzustellen. Es wurde keine Freigabe [alice] in der Datei smb.conf definiert, aber es gibt eine [homes]-Freigabe. Samba durchsucht also die Kennwort-Datenbankdatei und findet auf dem System einen Benutzerzugang namens alice. Anschließend vergleicht Samba das Kennwort, das vom Client angegeben wurde, mit dem Unix-Kennwort des Benutzers alice - entweder mit Hilfe der Kennwort-Datenbankdatei, falls unverschlüsselte Kennwörter verwendet werden, oder mit Sambas smbpasswd-Datei, falls verschlüsselte Kennwörter zum Einsatz kommen. Stimmen die Kennwörter überein, weiß Samba, dass es richtig geraten hat: Der Benutzer alice versucht, sich an seinem Home-Verzeichnis anzumelden. Samba erzeugt dann eine Freigabe namens [alice] für diesen Benutzer, bei der der Pfad der Freigabe auf das Home-Verzeichnis von alice gesetzt ist.

Der Einsatz des Abschnitts [homes] zum Anlegen von Benutzern (und der Umgang mit deren Kennwörtern) wird in Kapitel 9 genauer behandelt.

Der Abschnitt [printers]

Der dritte spezielle Abschnitt wird [printers] genannt und ähnelt [homes]. Versucht ein Client, eine Verbindung zu einer Freigabe aufzunehmen, die sich nicht in der Datei smb.conf  befindet, und kann deren Name auch nicht in der Kennwortdatei gefunden werden, prüft Samba, ob es sich dabei um eine Druckerfreigabe handelt. Dazu liest Samba die Printer-Capabilities-Datei (normalerweise /etc/printcap), um festzustellen, ob der Name der Freigabe dort auftaucht.1 Ist dies der Fall, erzeugt Samba eine Freigabe mit dem Namen des Druckers.

Das bedeutet, dass Sie wie bei [homes] nicht für jeden Systemdrucker eine Freigabe in der Datei smb.conf  verwalten müssen. Stattdessen beachtet Samba die Unix-Druckerregistrierung, wenn Sie es dazu auffordern, und stellt die registrierten Drucker den Client-Systemen zur Verfügung. Es gibt jedoch eine potenzielle Schwierigkeit: Wenn Sie einen Zugang namens fred und einen Drucker namens fred haben, findet Samba immer zuerst den Benutzerzugang, selbst wenn der Client wirklich eine Verbindung zum Drucker benötigt hat.

Das Einrichten der [printers]-Freigabe wird in Kapitel 10 näher behandelt.

Konfigurationsoptionen

Die Optionen in der Samba-Konfigurationsdatei fallen in eine von zwei Kategorien: globale Optionen oder Freigabeoptionen. Jede Kategorie bestimmt, wo eine Option in der Konfigurationsdatei auftreten kann.

Globale Optionen
Globale Optionen dürfen nur im Abschnitt [global] stehen und nirgendwo sonst. Es handelt sich hierbei um Optionen, die typischerweise das Verhalten des Samba-Servers selbst beeinflussen und keine seiner Freigaben.
Freigabeoptionen
Freigabeoptionen können in Freigabe-Definitionen, im Abschnitt [global] oder in beidem auftauchen. Wenn sie im Abschnitt [global] stehen, definieren sie ein Standardverhalten für alle Freigaben, allerdings kann diese Option für eine Freigabe durch einen eigenen Wert überschrieben werden.

Außerdem können Konfigurationsoptionen drei Arten von Werten annehmen. Folgende sind möglich:

Boolescher Wert
Dabei handelt es sich einfach um Ja- oder Nein-Werte. Diese können durch folgende Elemente repräsentiert werden: yes, no, true, false, 1 oder 0. Bei diesen Werten spielt die Groß-/Kleinschreibung keine Rolle: YES ist identisch mit yes.
Numerischer Wert
Dies ist eine dezimale, hexadezimale oder oktale Zahl. Die Standardsyntax 0xnn wird für hexadezimale Werte und 0nnn für oktale Werte verwendet.
String
Dies ist ein String mit Zeichen (bei denen die Groß-/Kleinschreibung beachtet werden muss), etwa ein Dateiname oder ein Benutzername.

Optionen der Konfigurationsdatei

Sie können Samba anweisen, Konfigurationsoptionen bei der Verarbeitung einzubinden oder zu ersetzen. Die Optionen dazu sind in Tabelle 6-3 zusammengefasst.

Tabelle 6-3
Optionen der Konfigurationsdatei 
Option
Parameter
Funktion
Vorgabewert
Geltungsbereich
config file
String (Name der Datei)
Legt den Ablageort einer Konfigurationsdatei fest, der an Stelle des aktuellen verwendet werden soll.
keiner
global
include
String (Name der Datei)
Gibt eine zusätzliche Menge von Konfigurationsoptionen an, die in die Konfigurationsdatei aufgenommen werden sollen.
keiner
global
copy
String (Name der Freigabe)
Erlaubt es Ihnen, die Konfigurationsoptionen einer anderen Freigabe in die aktuelle Freigabe zu übernehmen (zu klonen).
keiner
Freigabe

config file

Die globale Option config file gibt eine Ersatzkonfigurationsdatei an, die geladen werden soll, wenn diese Option erkannt wird. Existiert die Zieldatei, werden der Rest der aktuellen Konfigurationsdatei sowie die bisher erkannten Optionen verworfen, und Samba konfiguriert sich selbst vollständig mit den Optionen in der neuen Datei. Zusammen mit der Option config file können Variablen eingesetzt werden. Das ist ganz hilfreich, falls Sie eine spezielle Konfigurationsdatei auf der Grundlage des NetBIOS-Maschinennamens oder des Benutzers des Clients, der sich anmeldet, haben wollen.

So weist zum Beispiel die folgende Zeile Samba an, eine Konfigurationsdatei zu verwenden, die durch den NetBIOS-Namen des sich anmeldenden Clients bestimmt wird, falls eine solche Datei existiert. Ist dies der Fall, werden die in der ursprünglichen Konfigurationsdatei festgelegten Optionen ignoriert:

[global]
 
	config file = /usr/local/samba/lib/smb.conf.%m
 

Existiert die angegebene Konfigurationsdatei nicht, wird die Option ignoriert, und Samba konfiguriert sich weiterhin auf der Grundlage der aktuellen Datei. Dadurch kann eine vorgegebene Konfigurationsdatei die meisten Clients bedienen, während gleichzeitig Ausnahmen mit angepassten Konfigurationsdateien angeboten werden können.

include

Diese Option, die früher bereits ausführlicher besprochen wurde, kopiert die Zieldatei an der festgelegten Stelle in die aktuelle Konfigurationsdatei, wie in Abbildung 6-1 gezeigt wird. Auch diese Option kann zusammen mit Variablen benutzt werden. Sie können die Option folgendermaßen einsetzen:

[global]
 
	include = /usr/local/samba/lib/smb.conf.%m
 

Existiert die angegebene Konfigurationsdatei nicht, wird die Option ignoriert. Optionen in der mit include eingefügten Datei setzen alle Optionen außer Kraft, die vorher festgelegt wurden, nicht jedoch die später angegebenen. In Abbildung 6-1 überschreiben alle drei Optionen ihre vorherigen Werte.
Abbildung 6-1
Die Option include in einer Samba-Konfigurationsdatei

Die Option include funktioniert nicht mit den Variablen %u (Benutzer), %P (root-Verzeichnis der aktuellen Freigabe) oder %S (Name der aktuellen Freigabe), da diese Werte zu dem Zeitpunkt, zu dem der Parameter include verarfbeitet wird, noch nicht gesetzt sind.

copy

Die Konfigurationsoption copy erlaubt es Ihnen, die Konfigurationsoptionen der Freigabe zu klonen, die Sie in der aktuellen Freigabe festlegen. Die Zielfreigabe muss früher in der Konfigurationsdatei auftauchen als die Freigabe, die die Kopie ausführt, zum Beispiel:

[template]
 
	writable = yes
 
	browsable = yes
 
	valid users = andy, dave, jay
 

 
[data]
 
	path = /usr/local/samba
 
	copy = template
 

Beachten Sie, dass alle Optionen in der Freigabe, die die Anweisung copy ausgelöst hat, diejenigen aus der geklonten Freigabe außer Kraft setzen; es spielt dabei keine Rolle, ob sie vor oder nach der Anweisung copy auftreten.

Server-Konfiguration

Wir werden nun von Grund auf beginnen und eine Konfigurationsdatei für unseren Samba-Server erstellen. Zuerst führen wir drei grundlegende Konfigurationsoptionen ein, die im Abschnitt [global] der Datei smb.conf auftreten können:

[global]
 
	#  Server-Konfigurationsparameter
 
	netbios name = toltec
 
	server string = Samba %v on %L
 
	workgroup = METRAN
 
	encrypt passwords = yes
 

Diese Konfigurationsdatei ist sehr einfach; sie macht den Samba-Server unter dem NetBIOS-Namen toltec bekannt. Darüber hinaus platziert sie das System in der Arbeitsgruppe METRAN und zeigt den Clients eine Beschreibung an, die die Versionsnummer von Samba sowie den NetBIOS-Namen des Samba-Servers enthält.


Falls Sie die Zeile encrypt passwords = yes bereits in Ihrer früheren Konfigurationsdatei verwendet haben, sollten Sie dies hier ebenfalls tun.

Wenn Sie wollen, können Sie diese Konfigurationsdatei einmal ausprobieren. Erzeugen Sie mit dem zuvor gezeigten Text eine Datei namens smb.conf im Verzeichnis /usr/local/samba/lib. Starten Sie anschließend den Samba-Server neu und verwenden Sie einen Windows-Client, um die Ergebnisse zu überprüfen. Achten Sie darauf, dass sich Ihre Windows-Clients auch in der Arbeitsgruppe METRAN befinden. Wenn Sie die Netzwerkumgebung auf einem Windows-Client doppelt anklicken, sollten Sie ein Fenster sehen, das Abbildung 6-2 ähnelt. (In dieser Abbildung ist Mixtec ein weiterer Samba-Server und Zapotec ein Windows-Client.)
Abbildung 6-2
Die Netzwerkumgebung mit Toltec, dem Samba-Server

Sie können den server string überprüfen, indem Sie sich im Netzwerkumgebung-Fenster die Details anzeigen lassen (wählen Sie Details im Menü Ansicht). Sie sollten ein Fenster ähnlich Abbildung 6-3 sehen.
Abbildung 6-3
Die Netzwerkumgebung in der detaillierten Ansicht

Wenn Sie das Symbol toltec anklicken würden, müsste ein Fenster auftauchen, das die Dienste anzeigt, die dieser Server anbietet. In diesem Fall wäre das Fenster völlig leer, da es auf dem Server noch keine Freigaben gibt.

Optionen zur Server-Konfiguration

Tabelle 6-4 fasst die gerade vorgestellten Optionen zur Server-Konfiguration zusammen. Alle drei Optionen gelten global, müssen also im Abschnitt [global] der Konfigurationsdatei stehen.

Tabelle 6-4
Optionen zur Server-Konfiguration 
Option
Parameter
Funktion
Vorgabewert
Geltungsbereich
netbios name
String
NetBIOS-Name des Samba-Servers
Nicht-qualifizierter DNS-Hostname des Servers.
global
workgroup
String
NetBIOS-Gruppe, zu der der Server gehört
Wird bei der Kompilierung definiert.
global
server string
String
beschreibender String für den Samba-Server
Samba %v
global

netbios name

Die Option netbios name erlaubt es Ihnen, den NetBIOS-Namen des Servers zu setzen, zum Beispiel:

netbios name = YORKVM1
 

Der Vorgabewert für diese Konfigurationsoption ist der Hostname des Servers - das heißt der erste Teil seines vollqualifizierten Domänennamens. So würde beispielsweise einem System mit dem DNS-Namen ruby.ora.com standardmäßig der NetBIOS-Name RUBY gegeben werden. Sie können diese Option dazu nutzen, den NetBIOS-Namen des Systems erneut festzulegen (wie wir es getan haben). Häufiger wird sie jedoch dazu verwendet, dem Samba-Server einen NetBIOS-Namen zuzuweisen, der sich von seinem aktuellen DNS-Namen unterscheidet. Denken Sie daran, dass der zugewiesene Name den Regeln für gültige NetBIOS-Maschinennamen unterliegt, wie in Kapitel 1 ausgeführt.

Das Ändern des NetBIOS-Namens des Servers wird nur dann empfohlen, wenn Sie einen wirklich guten Grund dafür haben. Ein solcher Grund liegt vor, wenn der Hostname des Systems nicht eindeutig ist, weil das LAN über zwei oder mehr DNS-Domänen verteilt ist. Zum Beispiel ist YORKVM1 ein guter NetBIOS-Kandidat für vm1.york.example.com, um dieses System von vm1.falkirk.example.com zu unterscheiden, das den gleichen Hostnamen trägt, aber in einer anderen DNS-Domäne liegt.

Ein anderer Anwendungsfall für diese Option ist das Umsetzen von SMB-Diensten von einem ausgefallenen oder außer Betrieb gestellten System. Wenn zum Beispiel SALES der SMB-Server der Abteilung ist und plötzlich ausfällt, könnten Sie sofort netbios name = SALES auf einem Backup-Samba-Server setzen, der die Aufgabe der anderen Maschine übernimmt. Die Benutzer müssen ihre Laufwerkzuordnungen nicht auf einen anderen Server ausrichten - neue Verbindungen zu SALES gehen einfach zu dem neuen Server.

workgroup

Der Parameter workgroup legt die aktuelle Arbeitsgruppe (oder Domäne) fest, in der der Samba-Server sich selbst bekannt macht. Clients, die auf Freigaben auf dem Samba-Server zugreifen wollen, müssen sich in der gleichen NetBIOS-Gruppe befinden. Denken Sie daran, dass Arbeitsgruppen eigentlich einfach nur NetBIOS-Gruppennamen sind und den Standard-NetBIOS-Namenskonventionen folgen müssen, die in Kapitel 1 dargestellt werden.

Der Vorgabewert für diesen Parameter wird bei der Kompilierung auf WORKGROUP gesetzt. Da dies der Standardarbeitsgruppenname für jedes nicht-konfigurierte Windows- und Samba-System ist, empfehlen wir Ihnen, immer Ihren Arbeitsgruppennamen in der Samba-Konfigurationsdatei zu setzen. Wenn Sie den Arbeitsgruppennamen auswählen, vermeiden Sie es, den gleichen Namen wie bei einem Server oder Benutzer einzustellen. Dadurch beugen Sie möglichen Problemen bei der WINS-Namensauflösung vor.

server string

Der Parameter server string definiert einen Kommentar-String, der neben dem Server-Namen in der Netzwerkumgebung (in der Detailansicht) sowie im Kommentareintrag des Microsoft Windows-Druckermanagers auftaucht.2 Sie können Variablen einsetzen, um Informationen in der Beschreibung zur Verfügung zu stellen. So lautete unser Eintrag:

[global]
 
	server string = Samba %v on (%h)
 

Der Vorgabewert für diese Option zeigt lediglich die aktuelle Version von Samba und ist äquivalent zu:

server string = Samba %v 
 

Die Konfiguration einer Plattenfreigabe

Wir erwähnten im vorangegangenen Abschnitt, dass es auf dem Server toltec keine Plattenfreigaben gibt. Lassen Sie uns daher an der Konfigurationsdatei weiterarbeiten und eine leere Festplattenfreigabe namens [data] erzeugen. Folgende Ergänzungen erledigen dies:

[data]
 
	path = /export/samba/data
 
	comment = Datenlaufwerk
 
	volume = Sample-Data-Drive
 
	writable = yes
 

Die Freigabe [data] ist typisch für eine Samba-Plattenfreigabe. Die Freigabe wird dem Verzeichnis /export/samba/data auf dem Samba-Server zugeordnet. Wir haben außerdem einen Kommentar angegeben, der die Freigabe als Datenlaufwerk beschreibt sowie als Name für die Freigabe selbst verwendet wird.

Laut Voreinstellung erzeugt Samba eine schreibgeschützte Freigabe. Daher muss die Option writable für jede Plattenfreigabe, die schreibbar sein soll, explizit gesetzt werden.

Sie müssen außerdem das Verzeichnis /export/samba/data auf dem Samba-Server anlegen. Dazu verwenden Sie folgende Befehle:

# mkdir /export/samba/data
 
# chmod 777 /export/samba/data
 

Wenn Sie nun wieder eine Verbindung zum Server toltec herstellen, indem Sie in der Windows-Netzwerkumgebung auf sein Symbol doppelklicken, sehen Sie eine einzelne Freigabe mit der Bezeichnung data, wie in Abbildung 6-4 gezeigt. Diese Freigabe hat Lese-/Schreibzugriff, es können also Dateien von ihr und auf sie kopiert werden.
Abbildung 6-4
Die neu angelegte Freigabe auf dem Samba-Server

Optionen zur Konfiguration einer Plattenfreigabe

Die gerade vorgestellten Samba-Konfigurationsoptionen für Plattenfreigaben sind in Tabelle 6-5 aufgeführt.

Tabelle 6-5
Grundlegende Konfigurationsoptionen für Freigaben 
Option
Parameter
Funktion
Vorgabewert
Geltungsbereich
path (directory)
String (Verzeichnisname)
Legt das Unix-Verzeichnis fest, das für eine Plattenfreigabe bereitgestellt oder für das Spooling durch eine Druckerfreigabe verwendet wird.
/tmp
Freigabe
comment
String
Setzt einen Kommentar, der zusammen mit der Freigabe angezeigt wird.
keiner
Freigabe
volume
String
Legt den MS-DOS-Volume-Namen für die Freigabe fest.
Freigabename
Freigabe
read only
Boolescher Wert
Wenn yes, ist nur schreibgeschützter Zugriff auf eine Freigabe möglich.
yes
Freigabe
writable (write ok oder writeable)
Boolescher Wert
Wenn no, ist nur schreibgeschützter Zugriff auf eine Freigabe möglich. Wenn yes, sind sowohl Lesen als auch Schreiben erlaubt.
no
Freigabe

path

Diese Option, die das Synonym directory besitzt, gibt den Pfadnamen für die Wurzel des freigegebenen Verzeichnisses oder Druckers an. Sie können ein beliebiges Verzeichnis auf dem Samba-Server wählen. Der Eigentümer des Samba-Prozesses muss lediglich Lese- und Schreibzugriff auf dieses Verzeichnis haben. Handelt es sich um den Pfad für eine Druckerfreigabe, sollte er auf ein temporäres Verzeichnis verweisen, in dem die Dateien zwischengespeichert werden können, bevor sie an den Zieldrucker weitergeleitet werden (gern genommen werden   /tmp und /var/spool). Ist dieser Pfad für eine Plattenfreigabe gedacht, entspricht der Inhalt des Ordners, der den Freigabenamen auf dem Client repräsentiert, dem Inhalt des Verzeichnisses auf dem Samba-Server.

Das Verzeichnis, das als Wert für path festgelegt wird, kann als relativer Pfad angegeben werden. In diesem Fall liegt der Pfad relativ zu dem Verzeichnis, das durch den Parameter root directory vorgegeben wurde. Da root directory standardmäßig root (/ ) ist, bietet es sich im Allgemeinen an, absolute Pfade für den Parameter path zu verwenden, es sei denn, root directory wurde auf einen anderen als den Vorgabewert gesetzt.

comment

Die Option comment erlaubt es Ihnen, einen Kommentar einzugeben, der an den Client gesendet wird, wenn dieser versucht, die Freigabe zu durchsuchen. Der Benutzer kann den Kommentar in der detaillierten Ansicht des Freigabeordners oder über den Befehl net view an der MS-DOS-Eingabeaufforderung sehen. So könnten Sie beispielsweise einen Kommentar für eine Freigabe einfügen:

[network]
 
	comment = Netzwerklaufwerk
 
	path = /export/samba/network
 

Verwechseln Sie die Option comment, die die Freigaben eines Samba-Servers dokumentiert, nicht mit der Option server string, die den Server selbst dokumentiert.

volume

Diese Option erlaubt es Ihnen, den Volume-Namen der Freigabe festzulegen, der ansonsten standardmäßig auf den Namen der Freigabe lauten würde, der in der smb.conf  angegeben wird.

Manche Software-Installationsprogramme prüfen den Volume-Namen der Distributions-CD-ROM, um sicherzustellen, dass sich die richtige CD-ROM im Laufwerk befindet, bevor sie versuchen, davon zu installieren. Falls Sie den Inhalt der CD-ROM in eine Netzwerkfreigabe kopieren, um davon zu installieren, können Sie diese Option einsetzen, um dafür zu sorgen, dass das Installationsprogramm den richtigen Volume-Namen sieht:

[network]
 
	comment = Netzwerklaufwerk
 
	volume = ASVP-102-RTYUIKA
 
	path = /home/samba/network
 
read only, writable

Die Optionen read only und writable (auch als writeable oder write ok  bezeichnet) stellen in der Tat zwei Möglichkeiten dar, das Gleiche auszudrücken, allerdings von entgegengesetzten Ausgangspunkten aus. Sie können zum Beispiel eine der folgenden Optionen im Abschnitt [global] oder in einer speziellen Freigabe setzen:

read only = yes
 
writable = no
 

Wenn beide Optionen entsprechend gesetzt sind, können Daten von der Freigabe gelesen, aber nicht auf sie geschrieben werden. Vermutlich glauben Sie jetzt, dass Sie diese Option nur brauchen, wenn Sie eine schreibgeschützte Freigabe erzeugen. Beachten Sie jedoch, dass ein Schreibschutz für Freigaben das vorgegebene Verhalten darstellt. Falls Sie Daten auf eine Freigabe schreiben wollen, müssen Sie in der Konfigurationsdatei für jede Freigabe ausdrücklich eine der folgenden Optionen festlegen:

read only = no
 
writable = yes
 

Treten die beiden Optionen jeweils mehr als einmal auf, beachtet Samba für die Freigabe den letzten Wert, den es erkennt.

Netzwerkoptionen für Samba

Wenn Sie Samba auf einem so genannten Multihomed-System (einem System, das sich in mehreren Subnetzen befindet) ausführen, müssen Sie es so konfigurieren, dass es alle Netzwerkschnittstellen benutzt. Ein weiterer Einsatzfall für die in diesem Abschnitt präsentierten Optionen ist die Implementierung einer größeren Sicherheit, indem Verbindungen zu bestimmten Schnittstellen erlaubt oder verboten werden.

Nehmen wir einmal an, der Samba-Server kann auf die beiden Subnetze 192.168.220.* und 134.213.233.* zugreifen. Sie müssen folgende Ergänzungen in die Konfigurationsdatei aufnehmen, um die Netzwerk-Konfigurationsoptionen hinzuzufügen:

[global]
 
	#  Netzwerk-Konfigurationsoptionen
 
	hosts allow = 192.168.220. 134.213.233.
 
	hosts deny = 192.168.220.102
 
	interfaces = 192.168.220.100/255.255.255.0 \
 
					134.213.233.110/255.255.255.0
 
	bind interfaces only = yes
 

Schauen Sie sich die Optionen hosts allow und hosts deny an. Falls Ihnen diese Optionen jetzt bekannt vorkommen, denken Sie vermutlich gerade an die Dateien hosts.allow und hosts.deny, die in den /etc-Verzeichnissen vieler Unix-Systeme zu finden sind. Die Aufgabe dieser Optionen ist identisch mit der dieser Dateien. Sie bieten eine gewisse Sicherheit, indem sie Verbindungen anderer Hosts auf der Grundlage der IP-Adressen erlauben oder verbieten. Wir könnten die Dateien hosts.allow und hosts.deny benutzen, verwenden aber stattdessen diese Methode, da es auf dem Server Dienste geben könnte, auf die Benutzer zugreifen können sollen, ohne dass wir ihnen außerdem Zugriff auf die Platten- oder Druckerfreigaben von Samba gewähren.

Mit der Option hosts allow haben wir die IP-Adresse 192.168.220 angegeben. Dies ist äquivalent zur Aussage: »Alle Hosts im Subnetz 192.168.220.« Allerdings haben wir in einer hosts deny-Zeile ausdrücklich festgelegt, dass dem System 192.168.220.102 kein Zugriff erlaubt ist.

Sie wundern sich vielleicht jetzt, wieso 192.168.220.102 ausgeschlossen wird, obwohl es sich in dem Subnetz befindet, das durch die Option hosts allow erfasst wurde. Es ist wichtig zu verstehen, wie Samba die Regeln interpretiert, die durch hosts allow und hosts deny  bestimmt werden:

1. Wurden keine allow- oder deny-Optionen in smb.conf definiert, lässt Samba Verbindungen von allen Systemen zu.
2. hosts allow- oder hosts deny-Optionen, die im Abschnitt [global] der smb.conf definiert wurden, gelten für alle Freigaben, selbst wenn eine der Optionen in einer oder mehreren der Freigaben definiert wurde.
3. Wurde für eine Freigabe nur eine hosts allow-Option definiert, ist es nur den aufgeführten Hosts erlaubt, die Freigabe zu benutzen. Alle anderen werden abgewiesen.
4. Wurde für eine Freigabe nur eine hosts deny-Option definiert, kann jeder Host, der nicht auf der Liste steht, auf die Freigabe zugreifen.
5. Wurde sowohl eine hosts allow- als auch eine hosts deny-Option definiert, muss ein Host in der allow-Liste auftauchen und darf nicht in der deny-Liste stehen (in welcher Form auch immer), um auf die Freigabe zuzugreifen. Ansonsten wird der Host abgewiesen.

Achten Sie darauf, dass Sie nicht einem Host ausdrücklich den Zugriff auf eine Freigabe erlauben und dann dem gesamten Subnetz, in dem sich der Host befindet, den Zugriff verweigern.

Schauen wir uns ein weiteres Beispiel dieses letzten Elements an. Betrachten Sie folgende Optionen:

hosts allow = 111.222.
 
hosts deny = 111.222.333.
 

In diesem Fall ist nur den Hosts, die zu dem Subnetz 111.222.*.* gehören, der Zugriff auf die Samba-Freigaben erlaubt. Gehört ein Client jedoch zum Subnetz 111.222.333.*, wird ihm der Zugriff verweigert, obwohl die Bedingungen, die durch hosts allow formuliert wurden, erfüllt werden. Der Client muss in der hosts allow-Liste auftauchen und darf nicht auf der hosts deny-Liste stehen, um Zugriff auf eine Samba-Freigabe zu erlangen.

Die beiden anderen Optionen, die wir festgelegt haben, sind interfaces und bind interface only. Wir wollen uns zuerst die Option interfaces ansehen. Samba sendet standardmäßig Daten nur von der primären Netzwerkschnittstelle. In unserem Beispiel befindet sich dort das Subnetz 192.168.220.100. Wollten wir Daten an mehr als eine Schnittstelle senden, müssten wir mit der Option interfaces die komplette Liste angeben. Im vorangegangenen Beispiel haben wir Samba an beide Subnetze (192.168.220 und 134.213.233) gebunden, in denen das System aktiv ist, indem wir die andere Netzwerkschnittstellenadresse angegeben haben: 134.213.233.100. Besitzt Ihr Computer mehr als eine Netzwerkschnittstelle, sollten Sie diese Option immer setzen, da es keine Garantie dafür gibt, dass die primäre Schnittstelle, die Samba auswählt, auch wirklich die richtige ist.

Die Option bind interfaces only schließlich weist den nmbd-Prozess an, Broadcast-Nachrichten nur von den Subnetzen zu akzeptieren, die mit der Option interfaces festgelegt wurden. Dies unterscheidet sich von den Optionen hosts allow und hosts deny, die zwar verhindern, dass Clients Verbindungen zu Diensten herstellen, aber nicht, dass Broadcast-Meldungen empfangen werden. Die Option bind interfaces only stellt eine Möglichkeit dar, alle Datagramme aus fremden Subnetzen auszuschließen. Darüber hinaus weist sie den smbd-Prozess an, nur die Schnittstellenliste zu binden, die durch die Option interfaces vorgegeben wurde. Dies beschränkt die Anzahl der Netzwerke, die Samba bedient.

Netzwerkoptionen

Die vorgestellten Netzwerkoptionen werden in Tabelle 6-6 noch einmal zusammengefasst.

Tabelle 6-6
Netzwerk-Konfigurationsoptionen 
Option
Parameter
Funktion
Vorgabewert
Geltungsbereich
hosts allow (allow hosts)
String (Liste von Hostnamen)
Client-Systeme, die sich bei Samba anmelden dürfen.
keiner
Freigabe
hosts deny (deny hosts)
String (Liste von Hostnamen)
Client-Systeme, die sich nicht bei Samba anmelden dürfen.
keiner
Freigabe
interfaces
String (Liste von IP-Netzmaske-Kombinationen)
Netzwerkschnittstellen, auf die Samba antwortet. Erlaubt das Korrigieren von Vorgabewerten.
systemabhängig
global
bind
interfaces only
Boolescher Wert
Auf yes gesetzt, wird Samba nur an die Schnittstellen gebunden, die durch die Option interfaces festgelegt werden.
no
global

hosts allow

Die Option hosts allow (manchmal auch allow hosts geschrieben) legt die Clients fest, die die Berechtigung besitzen, auf Freigaben auf dem Samba-Server zuzugreifen. Die Clients werden als durch Kommata oder Leerzeichen getrennte Liste von den Hostnamen der Systeme oder deren IP-Adressen angegeben. Sie können eine gewisse Sicherheit erzielen, indem Sie die Subnetzadresse Ihres LANs in diese Option setzen.

Für diese Option sind folgende Formate möglich:

Das Schlüsselwort ALL allein zu benutzen ist fast immer eine ganz schlechte Idee, weil das bedeutet, dass Cracker aus jedem Netzwerk auf Ihren Samba-Server zugreifen können.

Der Hostname localhost für die Loopback-Adresse 127.0.0.1 ist standardmäßig in die hosts allow-Liste eingeschlossen und muss nicht ausdrücklich aufgeführt werden, es sei denn, Sie haben den Parameter bind interfaces only festgelegt. Diese Adresse ist erforderlich, damit Samba ordentlich funktioniert.

Abgesehen davon gibt es keinen Vorgabewert für die Konfigurationsoption hosts allow. Falls weder die Option hosts allow noch die Option hosts deny in der Datei smb.conf festgelegt wurde, wird standardmäßig der Zugriff von allen Quellen aus erlaubt.


Wenn Sie hosts allow im Abschnitt [global] festlegen, setzt diese Definition alle hosts allow-Zeilen in den Freigabe-Definitionen außer Kraft. Dies ist das Gegenteil des üblichen Verhaltens, bei dem Parameter, die in Freigabe-Definitionen gesetzt sind, Standardwerte aus dem Abschnitt [global] überschreiben.
hosts deny

Die Option hosts deny (synonym mit deny hosts) gibt Client-Systeme an, die keine Berechtigung haben, um auf eine Freigabe zuzugreifen. Die Client-Systeme werden als durch Kommata oder Leerzeichen getrennte Liste von Hostnamen oder deren IP-Adressen festgelegt. Verwenden Sie zum Vorgeben der Clients das gleiche Format wie bei der Option hosts allow. Um beispielsweise den Zugriff auf den Server von jedem System mit Ausnahme von example.com zu verbieten, könnten Sie schreiben:

hosts deny = ALL EXCEPT .example.com
 

Es gibt für die Konfigurationsoption hosts deny keinen Vorgabewert, allerdings wird standardmäßig der Zugriff von allen Quellen aus erlaubt, falls keine Option festgelegt wurde. Und falls Sie diese Option im Abschnitt [global] der Konfigurationsdatei angeben, werden alle hosts deny-Optionen außer Kraft gesetzt, die in den Freigaben definiert wurden. Wollen Sie den Zugriff auf bestimmte Freigaben verbieten, vermeiden Sie den Einsatz der Optionen hosts allow und hosts deny im Abschnitt [global] der Konfigurationsdatei.


Schließen Sie niemals die Loopback-Adresse (Localhost unter der IP-Adresse 127.0.0.1) in die hosts deny-Liste ein. Das Programm smbpasswd muss sich über die Loopback-Adresse als Client am Samba-Server anmelden, um das verschlüsselte Kennwort eines Benutzers zu ändern. Wenn die Loopback-Adresse deaktiviert ist, werden die lokal erzeugten Pakete, die die Änderung des verschlüsselten Kennworts anfordern, von Samba abgewiesen.
Außerdem verlangen sowohl die lokale Suchlistenbekanntgabe als auch einige Funktionen des SWAT den Zugriff auf den Samba-Server über die Loopback-Adresse und funktionieren nicht richtig, wenn diese Adresse deaktiviert ist.
interfaces

Die Option interfaces legt die Netzwerke fest, die der Samba-Server erkennen und verarbeiten soll. Diese Option ist ganz praktisch, wenn Sie einen Computer haben, der sich in mehr als einem Subnetz befindet. Wenn diese Option nicht gesetzt ist, sucht Samba beim Start nach der primären Netzwerkschnittstelle des Servers (normalerweise die erste Ethernet-Karte) und konfiguriert sich selbst so, dass es nur in diesem Subnetz arbeitet. Wurde der Server für den Einsatz in mehr als einem Subnetz konfiguriert und Sie legen diese Option nicht fest, funktioniert Samba nur in dem ersten Subnetz, das es erkennt. Sie müssen diese Option verwenden, um Samba zu zwingen, die anderen Subnetze in Ihrem Netzwerk zu bedienen.

Der Wert dieser Option ist eine oder mehrere Gruppen von IP-Adresse/Netzmaske-Paaren, wie im folgenden Beispiel:

interfaces = 192.168.220.100/255.255.255.0 192.168.210.30/255.255.255.0
 

Sie können optional eine Bit-Maske im CIDR-Format angeben:

interfaces = 192.168.220.100/24 192.168.210.30/24
 

Die Zahl nach dem Schrägstrich gibt die Anzahl der Bits an, die in der Netzmaske gesetzt werden. So bedeutet zum Beispiel die Zahl 24, dass die ersten 24 (von 32) Bits in der Bit-Maske gesetzt werden. Das ist identisch mit dem Wert 255.255.255.0 als Netzmaske. 16 wäre demnach äquivalent zur Netzmaske 255.255.0.0, und 8 wäre identisch mit der Netzmaske 255.0.0.0.


Diese Option funktioniert unter Umständen nicht richtig, wenn Sie DHCP benutzen.

bind interfaces only

Die Option bind interfaces only kann verwendet werden, um die Prozesse smbd und nmbd zu zwingen, nur auf solche Adressen zu reagieren, die durch die Option interfaces festgelegt wurden. Der nmbd-Prozess ist normalerweise an die Schnittstelle für alle Adressen (0.0.0.0.) an den Ports 137 und 138 gebunden, wodurch der Empfang von Broadcast-Nachrichten von allen Absendern erlaubt ist. Sie können dieses Verhalten jedoch mit der folgenden Einstellung außer Kraft setzen:

bind interfaces only = yes
 

Dies veranlasst Samba, alle Pakete zu ignorieren (einschließlich der Broadcast-Pakete), deren Quelladressen nicht mit einer der Netzwerkschnittstellen korrespondieren, die durch die Option interfaces festgelegt wurden. Sie sollten den Einsatz dieser Option vermeiden, falls Sie temporäre Netzwerkverbindungen erlauben wollen, die zum Beispiel über SLIP oder PPP erzeugt werden. Es kommt nur selten vor, dass diese Option benötigt wird, und sie sollte auch nur von Experten verwendet werden.


Falls Sie bind interfaces only auf yes  setzen, nehmen Sie die lokale Hostadresse (127.0.01) in die »interfaces«-Liste auf. Ansonsten ist smbpasswd in seinem Standardmodus nicht in der Lage, eine Verbindung zum Server aufzunehmen, um ein Kennwort zu ändern, die lokale Suchlistenbekanntgabe wird fehlschlagen, und einige Funktionen des SWAT werden nicht richtig funktionieren.

Virtuelle Server

Virtuelle Server können eingesetzt werden, um die Illusion zu erzeugen, dass im Netzwerk mehrere Server vorhanden sind, während es in Wirklichkeit nur einen gibt. Die Technik ist einfach umzusetzen: Ein System registriert einfach mehr als einen NetBIOS-Namen im Zusammenhang mit seiner IP-Adresse. Dieses Vorgehen bringt deutliche Vorteile mit sich.

Beispielsweise könnte die Buchhaltung einen buchhaltung-Server haben. Dessen Clients würden nur die Festplatten und Drucker aus der Buchhaltung sehen. Die Marketing-Abteilung könnte ihren eigenen Server namens marketing mit eigenen Berichten usw. haben. All diese Dienste würden von einem mittelgroßen Unix-Server (und einem entspannten Administrator) bereitgestellt werden. Es wäre nicht nötig, einen kleinen Server pro Abteilung zu installieren.

Konfigurationsoptionen für virtuelle Server

Samba erlaubt es einem Server, mit Hilfe der Option netbios aliases mehr als einen NetBIOS-Namen zu verwenden; Genaueres dazu in Tabelle 6-7.

Tabelle 6-7
Konfigurationsoptionen für virtuelle Server 
Option
Parameter
Funktion
Vorgabewert
Geltungsbereich
netbios aliases
String (Liste von NetBIOS-Namen)
Zusätzliche NetBIOS-Namen, auf die reagiert werden soll, für den Einsatz mit mehreren »virtuellen« Samba-Servern.
keiner
global

netbios aliases

Die Option netbios aliases kann eingesetzt werden, um dem Samba-Server mehr als einen NetBIOS-Namen zu geben. Jeder als Wert aufgeführte NetBIOS-Name wird in der Netzwerkumgebung der Windows-Clients angezeigt. Wird eine Verbindung zu einem der Server angefordert, wird immer der gleiche Samba-Server kontaktiert.

Das könnte sich beispielsweise als praktisch erweisen, wenn Sie die Daten von drei Abteilungen auf einen einzigen Unix-Server mit größeren und schnelleren Festplatten übertragen und die alten Windows NT/2000-Server außer Dienst stellen oder umsetzen. Falls die drei Server die Bezeichnungen vertrieb, buchhaltung und admin tragen, können Sie Samba mit Hilfe der folgenden Optionen veranlassen, alle drei Server zu repräsentieren:

[global]
 
	netbios aliases = vertrieb buchhaltung admin
 
	include = /usr/local/samba/lib/smb.conf.%L
 

In Abbildung 6-5 sehen Sie, was die Netzwerkumgebung eines Clients darstellen würde. Wenn ein Client versucht, sich bei Samba anzumelden, gibt er den Namen des Servers an, zu dem eine Verbindung gewünscht wird. Dieser Name wird in der Konfigurationsdatei durch die Variable %L bereitgestellt. Handelt es sich bei dem angeforderten Server um vertrieb, fügt Samba die Datei /usr/local/samba/lib/smb.conf.vertrieb ein. Diese Datei könnte globale und Freigabe-Deklarationen enthalten, die ausschließlich für das Vertriebsteam vorgesehen sind:

[global]
 
	workgroup = VERTRIEB
 
	hosts allow = 192.168.10.255
 

 
[vertrieb2003]
 
	path = /usr/local/samba/vertrieb/vertrieb2003/
 
...
 

Dieses spezielle Beispiel würde außerdem die Arbeitsgruppe auf VERTRIEB setzen und die IP-Adresse so einstellen, dass nur Verbindungen aus dem Subnetz VERTRIEB zulässig sind (192.168.10). Darüber hinaus würden Freigaben aus der Vertriebsabteilung angeboten werden.
Abbildung 6-5
NetBIOS-Aliase für einen Samba-Server einsetzen

Konfigurationsoptionen für die Protokollierung

Gelegentlich müssen Sie sich darum kümmern, was Samba so treibt. Dies gilt vor allem dann, wenn Samba eine unerwartete Aktion ausführt oder vielleicht überhaupt nichts mehr tut. Um diese Informationen zu ermitteln, müssen Sie die Protokolldateien von Samba überprüfen, um genau feststellen zu können, weshalb etwas geschehen ist.

Die Samba-Protokolldateien können so kurz oder so ausführlich sein, wie Sie das wünschen. Hier ein Beispiel dafür, wie eine Samba-Protokolldatei aussehen könnte:

[2002/07/21 13:23:25, 3] smbd/service.c:close_cnum(514)
 
  maya (172.16.1.6) closed connection to service IPC$
 
[2002/07/21 13:23:25, 3] smbd/connection.c:yield_connection(40)
 
  Yielding connection to IPC$
 
[2002/07/21 13:23:25, 3] smbd/process.c:process_smb(615)
 
  Transaction 923 of length 49
 
[2002/07/21 13:23:25, 3] smbd/process.c:switch_message(448)
 
  switch message SMBread (pid 467)
 
[2002/07/21 13:23:25, 3] lib/doscalls.c:dos_ChDir(336)
 
  dos_ChDir to /home/samba
 
[2002/07/21 13:23:25, 3] smbd/reply.c:reply_read(2199)
 
  read fnum=4207 num=2820 nread=2820
 
[2002/07/21 13:23:25, 3] smbd/process.c:process_smb(615)
 
  Transaction 924 of length 55
 
[2002/07/21 13:23:25, 3] smbd/process.c:switch_message(448)
 
  switch message SMBreadbraw (pid 467)
 
[2002/07/21 13:23:25, 3] smbd/reply.c:reply_readbraw(2053)
 
  readbraw fnum=4207 start=130820 max=1276 min=0 nread=1276
 
[2002/07/21 13:23:25, 3] smbd/process.c:process_smb(615)
 
  Transaction 925 of length 55
 
[2002/07/21 13:23:25, 3] smbd/process.c:switch_message(448)
 
  switch message SMBreadbraw (pid 467)                          
 

Viele dieser Informationen sind nur für Samba-Programmierer von Belang. Wir werden jedoch die Bedeutung einiger dieser Einträge in Kapitel 12 näher betrachten.

Samba enthält sechs Optionen, die es Benutzern erlauben zu beschreiben, wie und wo Protokollierungsinformationen abgelegt werden sollen. Es handelt sich um globale Optionen, die nicht in Freigabe-Definitionen auftauchen dürfen. Hier ein Beispiel für Protokollierungsoptionen, die wir unserer Konfigurationsdatei hinzufügen:

[global]
 
	log level = 2
 
	log file = /var/log/samba.log.%m
 
	max log size = 50
 
	debug timestamp = yes	
 

Wir haben eine eigene Protokolldatei angelegt, die Informationen bis zur Protokollierungsstufe 2 aufzeichnet. Dies ist eine relativ niedrige Protokollierungsstufe. Die Protokollierungsstufen bewegen sich im Bereich von 1 bis 10, wobei Stufe 1 nur sehr wenige Informationen bereitstellt, Stufe 10 dagegen eine Unmenge an mehr und auch weniger wichtigen Informationen sammelt. Die Stufen 2 oder 3 beliefern uns mit nützlichen Debugging-Informationen, ohne Festplattenplatz auf dem Server zu verschwenden. In der Praxis sollten Sie es vermeiden, Protokollierungsstufen einzustellen, die größer als 3 sind, es sei denn, Sie arbeiten am Samba-Quellcode.

Die Protokolldatei befindet sich dank der Konfigurationsoption log file im Verzeichnis /var/log. Wir können jedoch mit Hilfe von Variablen spezielle Protokolldateien für einzelne Benutzer oder Clients anlegen. Betrachten Sie dazu die folgende Zeile mit der Variablen %m:

log file = /usr/local/logs/samba.log.%m
 

Das Isolieren der Protokollierungsmeldungen erweist sich beim Verfolgen eines Netzwerkfehlers vor allem dann als sinnvoll, wenn Sie wissen, dass das Problem von einem bestimmten Client-System oder Benutzer stammt.

Im Zusammenhang mit der Protokollierung müssen Sie Folgendes beachten: Eine Protokolldatei kann nicht größer als 50 KByte sein, wie durch die Option max log size festgelegt. Überschreitet eine Protokolldatei diese Größe, wird der Inhalt in eine Datei mit dem gleichen Namen und dem Suffix .old verschoben. Existiert die .old-Datei bereits, wird sie überschrieben, und der Inhalt geht verloren. Die Originaldatei wird geleert und ist nun für die Aufnahme neuer Protokollierungsinformationen bereit. Dies verhindert, dass die Festplatte während des Lebenszyklus der Samba-Daemons mit Samba-Protokolldateien vollgestopft wird.

Wir haben beschlossen, mit der Option debug timestamp die Zeitstempel der Nachrichten in das Protokoll aufzunehmen - das ist das Standardverhalten. Jede Nachricht, die in die Protokolldatei geschrieben wird, erhält dadurch einen Zeitstempel. Wären wir an dieser Information nicht interessiert, könnten wir für diese Option stattdessen den Wert no festlegen.

syslog verwenden

Vielleicht möchten Sie ja an Stelle oder zusätzlich zu der normalen Samba-Protokolldatei den System-Logger (syslog ) einsetzen. Samba bietet dafür ebenfalls Optionen. Um syslog benutzen zu können, müssen Sie allerdings zunächst sicherstellen, dass Samba mit der Konfigurationsoption configure --with-syslog kompiliert wurde. In Kapitel 2 finden Sie weitere Informationen über die Konfiguration und Kompilierung von Samba. Anhang E bietet Einzelheiten über die Option --with-syslog.

Sobald dies erledigt ist, müssen Sie Ihre /etc/syslog.conf so konfigurieren, dass sie Protokollierungsinformationen von Samba akzeptiert. Falls es noch keinen daemon.*-Eintrag in der Datei /etc/syslog.conf gibt, fügen Sie folgende Zeile hinzu:

daemon.*        /var/log/daemon.log
 

Dies legt fest, dass alle Protokollierungsinformationen von System-Daemons in der Datei /var/log/daemon.log gespeichert werden. An dieser Stelle werden auch die Samba-Informationen abgelegt. Von dort können Sie einen Wert für den Parameter syslog in Ihrer Samba-Konfigurationsdatei setzen, um festzulegen, welche Protokollierungsnachrichten an syslog geschickt werden sollen. Es werden nur solche Nachrichten an syslog gesandt, deren Protokollierungsstufen niedriger sind als der Wert des syslog-Parameters. Wenn Sie zum Beispiel Folgendes einstellen:

syslog = 3
 

legen Sie fest, dass alle Protokollierungsnachrichten der Stufe 2 oder niedriger an syslog sowie an die Samba-Protokolldateien geschickt werden. (Die Zuordnungen zu den syslog-Prioritäten werden im kommenden Abschnitt »syslog« beschrieben.) Um das Beispiel fortzusetzen, lassen Sie uns annehmen, dass wir die Option log level auf 4 gesetzt haben. Die Protokollierungsnachrichten der Stufen 2 und 1 werden sowohl an syslog als auch an die Samba-Protokolldateien gesandt. Nachrichten der Stufen 3 oder 4 werden an die Samba-Protokolldateien geschickt, nicht jedoch an syslog. Überschreitet der syslog-Wert den log level-Wert, wird nichts an syslog geschickt.

Wollen Sie festlegen, dass Nachrichten nur an syslog gesandt werden - und nicht an die normalen Samba-Protokolldateien -, können Sie diese Option in die Konfigurationsdatei aufnehmen:

syslog only = yes
 

Ist dies der Fall, werden alle Protokollierungsinformationen über dem in der Option syslog festgelegten Wert abgewiesen, wie bei der Option log level.

Konfigurationsoptionen für die Protokollierung

Tabelle 6-8 zeigt alle Konfigurationsoptionen für die Protokollierung, die Samba verwenden kann.

Tabelle 6-8
Konfigurationsoptionen für die Protokollierung 
Option
Parameter
Funktion
Vorgabewert
Geltungsbereich
log file
String (Name der Datei)
Name der Protokolldatei, die Samba benutzen soll. Funktioniert mit allen Variablen.
wird im Samba-makefile festgelegt
global
log level
(debug level)
numerischer Wert (0 bis 10)
Menge der Protokollierungs-/Debugging-Nachrichten, die an die Protokolldatei geschickt werden. 0 bedeutet keine, 3 ist ein annehmbarer Wert.
1
global
max log size
numerischer Wert (Größe in KByte)
Maximale Größe der Protokolldatei.
5000
global
debug timestamp (timestamp logs)
Boolescher Wert
Wenn no, werden die Protokolleinträge nicht mit Zeitstempeln versehen, wodurch sich die Lesbarkeit bei der Fehlersuche verbessert.
yes
global
syslog
numerischer Wert (0 bis 10)
Stufe der Nachrichten, die an syslog gesandt werden. Stufen unterhalb des syslog-Werts werden an den System-Logger geschickt.
1
global
syslog only
Boolescher Wert
Wenn yes, wird nur syslog verwendet. Es werden keine Nachrichten an die Samba-Protokolldateien ausgegeben.
no
global

log file

Samba schreibt Protokollierungsinformationen standardmäßig in Textdateien im Verzeichnis /usr/local/samba/var. Die Option log file kann verwendet werden, um die Datei an einer anderen Stelle abzulegen. Um beispielsweise die Samba-Protokollierungsinformationen in /usr/local/logs/samba.log zu speichern, könnten Sie Folgendes verwenden:

[global]
 
	log file = /usr/local/logs/samba.log
 

Mittels Variablenersetzung können Sie Protokolldateien für einzelne Benutzer oder Clients anlegen.

Beim Start der Daemons können Sie den Wert für den Ablageort der Datei mit der Kommandozeilen-Option -l überschreiben. Dies setzt jedoch nicht die Option log file außer Kraft. Wenn Sie diesen Parameter setzen, werden die ersten Protokollierungsinformationen an die Datei geschickt, die nach -l angegeben wurde (oder an die Standarddatei, die im Samba-makefile festgelegt wurde), bis die Daemons die Datei smb.conf verarbeitet haben und wissen, dass sie die Daten an eine neue Datei weiterleiten sollen.

log level

Die Option log level legt die Menge der Daten fest, die protokolliert werden sollen. Normalerweise ist diese Option auf 0 oder 1 gesetzt. Haben Sie jedoch ein spezielles Problem, könnten Sie sie auf 3 setzen, wodurch die notwendigen Informationen geliefert werden, um ein Problem zu verfolgen. Protokollierungsstufen, die größer als 3 sind, liefern Informationen, die vorrangig für Entwickler gedacht sind, die interne Fehler suchen, und verlangsamen den Server merklich. Wir empfehlen Ihnen deshalb für den normalen Betrieb Werte, die kleiner als 3 sind.

max log size

Die Option max log size legt in KByte die maximale Größe der Protokolldatei fest, die Samba anlegt. Überschreitet die Protokolldatei diese Größe, wird die aktuelle Datei mit der Erweiterung .old versehen (wobei eine eventuell vorhandene Datei dieses Namens gelöscht wird), und eine neue Protokolldatei mit dem Originalnamen wird angelegt, zum Beispiel:

[global]
 
	log file = /usr/local/logs/samba.log.%m
 
	max log size = 1000
 

Überschreitet hier eine Protokolldatei die eingestellte Größe von 1 MByte, benennt Samba die Protokolldatei in samba.log. maschinenname.old um und legt eine neue Protokolldatei an. Gibt es bereits eine Datei mit der Erweiterung .old, löscht Samba diese. Wir empfehlen Ihnen, diese Option in Ihren Konfigurationsdateien auf jeden Fall einzustellen, da bei der Fehlerprotokollierung (selbst bei niedrigen Stufen) schnell große Datenmengen zusammenkommen und Ihren verfügbaren Festplattenplatz belegen. Diese Option verhindert, dass unachtsame Administratoren plötzlich entdecken müssen, dass der meiste Platz auf einer Festplatte oder Plattenpartition von einer einzigen Samba-Protokolldatei belegt wird.

debug timestamp oder timestamp logs

Falls Sie einmal ein Netzwerkproblem verfolgen und feststellen, dass die Zeitinformation in den Samba-Protokollierungszeilen Ihnen im Weg sind, können Sie sie deaktivieren, indem Sie der Option timestamp logs oder ihrer synonymen Option debug timestamp den Wert no geben. Eine normale Samba-Protokolldatei präsentiert ihre Ausgabe beispielsweise in der folgenden Form:

12/31/01 12:03:34 toltec (172.16.1.1) connect to server network as user jay
 

Beim Wert no für diese Option würde die Ausgabe ohne den Zeitstempel erscheinen:

toltec (172.16.1.1) connect to server network as user jay
 
syslog

Die Option syslog veranlasst Samba, die Protokollierungsnachrichten an den Unix-System-Logger zu schicken. Die Art der aufzuzeichnenden Protokollierungsinformationen wird über einen numerischen Wert festgelegt. Wie bei der Option log level ist dies eine Zahl zwischen 0 und 10. Protokollierungsinformationen mit einem Wert, der niedriger ist als die angegebene Zahl, werden an den System-Logger gesandt. Informationen, deren Protokollierungsstufe größer oder gleich der syslog-Stufe ist, aber niedriger als log level, werden weiterhin an die normalen Protokolldateien von Samba geschickt. Ein Beispiel:

[global]
 
	log level = 3
 
	syslog = 1
 

Damit werden alle Protokollierungsinformationen der Stufe 0 an die normalen Samba-Protokolle und den System-Logger geschickt, während Informationen mit den Stufen 1, 2 und 3 nur an die normalen Samba-Protokolle gesandt werden würden. Stufen über 3 werden überhaupt nicht protokolliert. Alle Nachrichten, die an den System-Logger geschickt werden, werden auf eine Prioritätsstufe abgebildet, die der syslogd-Daemon versteht, wie in Tabelle 6-9 dargestellt. Der Standardwert ist 1.

Tabelle 6-9
syslog-Prioritätenkonvertierung 
Protokollierungsstufe
syslog-Priorität
0
LOG_ERR
1
LOG_WARNING
2
LOG_NOTICE
3
LOG_INFO
4 und höher
LOG_DEBUG

Wollen Sie syslog verwenden, müssen Sie bei der Kompilierung von Samba die Konfigurationsoption configure --with-syslog einsetzen und Ihre /etc/syslog.conf entsprechend konfigurieren. (Beachten Sie auch den Abschnitt »syslog verwenden« weiter oben in diesem Kapitel.)

syslog only

Die Option syslog only weist Samba an, seine eigenen Protokolldateien überhaupt nicht zu verwenden, sondern nur den System-Logger einzusetzen. Um dies zu aktivieren, geben Sie die folgende Option im Abschnitt [global] der Samba-Konfigurationsdatei an:

[global]
 
	syslog only = yes    
 
1Je nach Ihrem verwendeten System handelt es sich bei dieser Datei nicht um /etc/printcap. Sie können den Befehl testparm verwenden, der in Samba enthalten ist, um die Parameter-Definitionen auszulesen und den Wert der Konfigurationsoption printcap name zu ermitteln. Der zugewiesene Wert ist der Standardwert, der bei der Konfiguration und Kompilierung von Samba gewählt wurde. Dieser Wert sollte richtig sein.
2Wir meinen damit das Fenster, das sich öffnet, wenn Sie auf ein Druckersymbol in der Drucker-Systemsteuerung doppelklicken.

TOC PREV NEXT INDEX

Copyright © 2003 by O'Reilly Verlag GmbH & Co.KG