Wiki

Samba Server/smb.conf

smb.conf

Artikel für fortgeschrittene Anwender

Dieser Artikel erfordert mehr Erfahrung im Umgang mit Linux und ist daher nur für fortgeschrittene Benutzer gedacht.

Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:

Dieser Artikel ist größtenteils für alle Ubuntu-Versionen gültig.

Ausbaufähige Anleitung

Dieser Anleitung fehlen noch einige Informationen. Wenn Du etwas verbessern kannst, dann editiere den Beitrag, um die Qualität des Wikis noch weiter zu verbessern.


Anmerkung: Für Windows-Clients geeignete Parameter-Werte (Groß- und Kleinschreibung, verbotene Zeichen in Namen, Zeichensätze, Verschlüsselung von Passwörtern...); Erstellen von Freigaben auf FAT- oder NTFS-Partitionen; weitere Hinweise auf häufige Konfigurations-Fehler

Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:

Das Kernstück jedes Samba-Servers ist die Konfigurationsdatei /etc/samba/smb.conf . Über diese lässt Samba sehr umfangreich und detailliert einrichten. Diese Datei teilt sich in mehrere Sektionen und muss mit einem Editor [3] mit Root-Rechten (sudo) bearbeitet werden. Die wichtigsten Optionen - die man normalerweise anpassen muss, um einen Samba-Server einzurichten - werden im Folgenden erklärt. Grundlagen sind dem Artikel Samba Server zu entnehmen, weitere Details zu den verfügbaren Optionen sind über den Abschnitt Links zu finden.

Aufbau der smb.conf

Hinweis:

Kommentare in der /etc/samba/smb.conf sind Zeilen, welche mit einem # oder ; Zeichen anfangen; was hinter diesem Zeichen steht, wird von Samba ignoriert. Viele Einstellungen sind unter Ubuntu standardmäßig auskommentiert (d.h. mit einem ; bzw. # am Anfang der Zeile); es genügt in der Regel, diese Kommentarzeichen zu entfernen, um eine bestimmte Funktion zu nutzen.

Globale Einstellungen

In der globalen Sektion werden die allgemeinen Einstellungen und Sicherheitsoptionen festgelegt. Üblicherweise müssen nur wenige Werte angepasst werden. Die Sektion Global beginnt mit

[global]

Grundeinstellungen

workgroup = Arbeitsgruppe
server string = %h server (Samba, Ubuntu)

Hierbei gibt der Parameter workgroup die Arbeitsgruppe bzw. Domäne an. Prinzipiell frei wählbar, aber bei der Benennung sollte auf deutsche Umlaute und Leerzeichen verzichtet sowie nicht mehr als 11 Zeichen verwendet werden. Der Parameter server string steht für den Rechnernamen und ist ebenfalls frei wählbar. Allerdings sollte auch hier auf deutsche Umlaute verzichtet werden.

Falls Windows XP den so gesetzten Rechnernamen als Kommentar anzeigt, hilft ein Registry-Patch: Forenbeitrag

WINS Support

wins support = no
wins server = 192.168.1.1

Wichtig ist auch die Angabe, ob der Rechner als "WINS-Server" fungieren oder einen anderen Rechner als WINS-Server nutzen soll. WINS {de} (Windows Internet Name Service) ist ein von Microsoft entwickeltes System zur dynamischen Auflösung von NetBIOS-Namen.

Standardmäßig ist die WINS-Unterstützung von Samba unter Ubuntu deaktiviert.

Um Samba als WINS-Server zu betreiben, genügt es wins support auf yes zu setzen. Soll Samba ein WINS-Client sein, müssen wins support auf no sowie wins server auf die IP vom WINS-Server gesetzt werden.

Hinweis:

Besitzt man einen Rechner mit einem Windows-Server-Betriebssystem (also z.B. Windows 2000 bzw. 2003 Server), so sollte man diesen als WINS-Server nutzen. Ist der Samba-Server jedoch der einzige Rechner im Netz, der permanent an sein wird, so sollte man die Funktion als WINS-Server mit "wins support = yes" aktivieren.

Hinweis:

Es ist dringend angeraten, dass in einem Netzwerk nur ein WINS-Server betrieben wird. Die Einstellung "wins support = yes" sollte daher nur auf einem Rechner gesetzt werden!

Mehr zum Thema Samba als WINS-Server findet sich in der Dokumentation {de} .

Benutzerauthentifizierung

security = user
encrypt passwords = true
invalid users = root

Der Parameter security gibt an, wie eine Benutzeranmeldung geprüft wird; mögliche Werte:

user Dies ist die Standardeinstellung. Üblicherweise sollte User Level-Sicherheit am besten für heterogene Windows-Linux-Netzwerke funktionieren.
share Bei der Share Level-Sicherheit authentifiziert sich der Client selbst bei jedem Aufruf einer Freigabe mit einem Passwort. Es wird nicht explizit ein Benutzername vom Client zum Server gesendet. Eventuell haben aktuelle Windows Betriebssysteme Probleme mit dieser Einstellung. Dieses Problem kann mit force user = <username> behoben werden.
domain Wenn Samba in diesem Modus betrieben wird, hat der Server einen Trust Account (Maschinen-Account) und reicht alle Authentifizierungsanfragen an die Domänencontroller weiter. Mit anderen Worten: Diese Konfiguration macht den Samba-Server zu einem Domänen-Mitglied.

Verschlüsselte Passwörter sind durch encrypt passwords = true standardmäßg aktiviert; nur für einige wenige Clients (z.B. Windows 95) ist es erforderlich, diesen Parameter auf false zu setzen.

Mit invalid users wird festgelegt, welche Benutzer sich nicht bei Samba anmelden dürfen.

Hinweis:

Es dürfen sich bei Samba nur Benutzer anmelden, für welche auch ein Passwort mit smbpasswd eingerichtet wurde!

CIFS Unix Extensions

unix extensions = yes

Dieser Parameter ermöglicht durch z.B. Samba Client/cifs auch auf dem Client die Original Dateirechte und Zeitstempel zu sehen und zu verwenden. Standardmäßig ist diese Option aktiviert; sie sollte nur bei Problemen mit diesen Extensions deaktiviert werden.

Die Einstellung kann nur für den gesamten Server geändert werden; unterschiedliche Einstellungen für einzelne Freigaben sind vom Server aus nicht möglich.

Auch wenn sie aktiviert sind, bleiben die UNIX-Extensions weitgehend unwirksam für Freigaben, die sich auf Partitionen mit FAT- oder NTFS-Dateisystemen befinden, da diese Dateisysteme keine Unix Dateirechte speichern können. Von Windows-Clients werden die UNIX-Extensions ganz ignoriert.

Hinweis:

Bei aktivierten CIFS Unix Extension funktionieren die Direktiven force user und force group beim mounten der Freigaben nicht!

Druckerfreigaben

Automatische Druckerfreigabe

Neuere Windows-Versionen können über das IPP-Protokoll auf einen Linux-Drucker über CUPS zugreifen. Man kann aber auch mit Samba Drucker für Windows-Clients zur Verfügung stellen. Die nötigen Optionen sind im Abschnitt "[printers]" definiert:

[printers]
   comment = All Printers
   browseable = no
   path = /tmp
   printable = yes
   public = no
   writable = no
   create mode = 0700

Dieser Abschnitt ist nach der Installation des Servers automatisch aktiv. Möchte man keine Drucker freigeben, so sollte man den Eintrag auskommentieren. Ausführliche Dokumentationen zum Thema Samba und Druckerfreigaben finden sich wieder in der Dokumentation {de} .

Hinweis:

Laut diesem Forenbeitrag kann es zu Problemen mit manchen Windowsprogrammen kommen, welche eine andere Zugriffsmethode auf den Drucker verwenden; insbesondere sei hier der Adobe Reader genannt. Als Workaround kann man den Parameter browseable auf yes setzen

Dateifreigaben

Heimatverzeichnisse

Hier sind alle nötigen Einstellungen schon vorbereitet, um die Homeverzeichnisse für die jeweiligen Benutzer freizugeben. Um die Freigabe der Homeverzeichnisse zu aktivieren, muss man alle Semikolons ";" vor den Einträgen entfernen.

[homes]
   comment = Home Directories
   browseable = no
   valid users = %S
   writable = yes
   create mode = 0600
   directory mode = 0700

Sind diese Einstellungen aktiviert, so ist z.B. die automatische Freigabe des Homeverzeichnisses "/home/otto" des Benutzers "otto"

  • Nur für "otto" sichtbar

  • Nur für "otto" les- und schreibbar

  • Andere Benutzer können die Freigabe weder sehen, noch lesen, noch schreiben

Eigene Freigaben

Abschließend werden die eigenen Freigaben eingetragen. Eine Freigabe setzt sich aus dem Freigabenamen in eckigen Klammern - also "[Beispielfreigabe]" - und den danach folgenden Optionen zusammen. Die graphischen Oberflächen zu Samba tragen hier ebenfalls die Freigaben ein.

Hinweis:

Oft wird vergessen, dass die Zugriffsrechte in der Freigabe und im lokalen Dateisystem stimmen müssen. Erlaubt man z.B. den Zugriff von Gästen auf ein Verzeichnis, so muss der Benutzer "nobody" bzw. die Gruppe "nogroup" auch die entsprechenden lokalen Lese-/Schreibrechte in dem Verzeichnis haben.

Beispiel 1

Beispiel für eine Freigabe, auf die nur angemeldete Benutzer zugreifen dürfen, wobei diese nur lesen aber nicht schreiben können:

[beispiel1]
# Allgemein
# Pfad zu Verzeichnis
path = /pfad/zu/daten1
# Kommentar zur Freigabe
comment = Testfreigabe 1
# Freigabe ist aktiv
available = yes
# Freigabe ist direkt sichtbar
browseable = yes
# Gäste dürfen nicht auf die Freigabe zugreifen
guest ok = no
# Angemeldete Benutzer dürfen lesen aber nicht schreiben
writable = no
Beispiel 2

Beispiel für eine Freigabe, auf die jeder - auch Gäste - sowohl lesend als auch schreibend zugreifen können. Desweiteren wird auf die Daten lokal mit den Benutzerrechten "otto" und den Gruppenrechten "users" zugegriffen:

[beispiel2]
# Allgemein
path = /pfad/zu/daten2
# Auch Gäste dürfen auf die Freigabe zugreifen
guest ok = yes
# Angemeldete Benutzer dürfen auch schreiben
writeable = yes
browseable = yes
# Rechte bei neuen Dateien/Verzeichnissen
# Neue Dateien werden mit diesen Rechten versehen
create mode = 0664
# Neue Verzeichnisse werden mit diesen Rechten versehen
directory mode = 0775
# Benutzer und Gruppenzugehörigkeit
# Egal mit welchen Daten sich ein Benutzer am Server anmeldet
force user = otto
# Die Daten werden lokal mit diesen Dateizugehörigkeiten abgelegt
force group = users
Beispiel 3

Beispiel für eine Freigabe, deren Werte von der Freigabe "beispiel2" kopiert werden, wobei alle weiteren Angaben von den folgenden Optionen überschrieben werden. Prinzipiell darf niemand schreiben, bis auf den Benutzer "paul" und die Mitglieder der Gruppe "beispiel":

[beispiel3]
# Die Daten dieser Freigabe werden übernommen
copy = beispiel2
path = /pfad/zu/daten3
writeable = no
# Benutzer, Gruppen die trotzdem schreiben dürfen
write list = paul,@beispiel

Mehr zu dem Thema "Zugriffskontrollen für Freigabedefinitionen" findet sich in der Dokumentation {de} .

Einfache Freigaben ohne Passwort

Möchte man in seinem Heimnetzwerk schnell etwas freigeben, das ohne Passwortabfrage für jeden im Netzwerk verfügbar sein soll, empfiehlt es sich, Folgendes bei der /etc/samba/smb.conf in den [global] Bereich einzutragen:

username map = /etc/samba/smbusers
map to guest = bad user
guest account = nobody

Nach einem Neustart des Samba-Servers können Ordner jetzt wie gewohnt freigegeben werden und jeder im Netzwerk kann ohne Passwort darauf zugreifen.

Achtung!

Dies stellt natürlich ein gewisses Sicherheitsrisiko dar und sollte ausschließlich in Netzwerken geschehen, bei denen man sicher ist, dass kein Datenmissbrauch mit den freigegebenen Daten möglich ist.

Verwandte Seiten

  • Samba Server - Grundsätzliches zum Einrichten eines Samba-Servers

  • Samba Server PDC - Eine Beschreibung, wie man Samba als Primary Domain Controller (PDC) nutzen kann

  • Samba Winbind - Ubuntu an einer Windows Domäne anmelden und die Benutzer am "Active Directory" authentifizieren

  • Samba Server Swat - "Swat", das offizielle Webinterface von Samba

Diese Revision wurde am 19. Oktober 2009 um 14:52 Uhr von Max-Ulrich Farber erstellt.
Dieser Seite wurden folgende Begriffe zugeordnet: Netzwerk, Server

Passwort vergessen?