{{{#!Wissen * [1]: [:Terminal: Ein Terminal öffnen] * [2]: [:Editor: Einen Editor öffnen] }}} [[TableOfContents(3)]] = Grundlegendes = Der Samba-Server wird lediglich über eine Datei konfiguriert. Alle Einstellungen werden in der '''/etc/samba/smb.conf''' vollzogen, die in einem Editor mit Root-Rechten [2] bearbeitet werden kann oder unter [:GNOME:] sowie [:KDE:] auch über eine GUI manipuliert werden kann. Im Folgenden wird beschrieben, wie man die wichtigsten Einstellungen am Samba-Server vornimmt und wie man Freigaben erstellen und verwalten kann. Den Samba-Server in einem Wiki-Beitrag umfassend zu beschreiben würde den Umfang eines Artikels sprengen. Daher wird hier der Einsatz des Servers in einem kleineren Umfeld (kleines Büro, WG, Zuhause usw.) beschrieben. Möchte man den Server in einem größeren Umfeld einsetzen und komplizierte Konfigurationen umsetzen, so sollte man sich in die ausführliche [http://gertranssmb3.berlios.de/output/index.html Dokumentation] {de} einarbeiten. = Konfigurationen und Freigaben = == GNOME == Unter GNOME kann man sehr komfortabel die wichtigsten Einstellungen vornehmen und Freigaben erstellen. Man öffnet dafür den Dateimanager [:Nautilus:] und geht zu dem Ordner, in welchem man einen Ordner freigeben möchte. [[Bild(./gnome_ordner_teilen.png,200,rechts)]] === Freigabe erstellen === Dort klickt man mit der rechten Maustaste auf den freizugebenden Ordner und wählt ''"Ordner teilen -> SMB"'' Daraufhin öffnet sich ein Dialog, in dem man die üblichen Konfigurationen zu einer Freigabe eintragen kann. Dies sind || '''Name''' || Der Name, unter dem die Freigabe angesprochen wird || || '''Kommentar''' || Manche Samba Clienten (auch der Windows Explorer) können Kommentare zu einer Freigabe einblenden || || '''Nur lesend''' || Ausschließlich Lesezugriff auf die Freigabe|| || '''Durchsuchen von Ordnern erlauben''' || Die Freigabe ist nicht direkt sichtbar, sie muss mit dem korrekten Namen geöffnet werden || [[Bild(./gnome_verteilungseinstellungen.png,200,rechts)]] === Serverdetails konfigurieren === Klickt man in obigem Dialog auf die Schaltfläche ''"Allgemeine Windows-Verteilungseinstellungen"'', so öffnet sich ein weiterer Dialog, in dem man die wichtigsten Einstellungen des Samba-Servers vornehmen kann. Unter Ubuntu Edgy Eft 6.10 findet man diese Einstellungen nicht im oben genannten Dialog, sondern im Menü unter ''"System -> Administration -> Gemeinsame Ordner"'' || '''Rechnerbeschreibung''' || Beschreibung des Samba-Servers, üblicherweise ist der String ''"%h server (Samba, Ubuntu)"'' eingetragen, wobei ''"%h"'' durch den Rechnernamen (hostname) ersetzt wird || || '''Domain/Arbeitsgruppe''' || Die Domäne oder die Arbeitsgruppe, in der der Samba-Server erscheinen soll || || '''WINS-Server''' || Diesen Rechner als WINS-Server konfigurieren, oder einen anderen Rechner als WINS-Server nutzen. Mehr zum Thema WINS bitte weiter unten nachlesen. || [[Bild(./kde-freigabe4.png,200,rechts)]] == KDE == Die KDE Desktopumgebung bietet eine umfangreiche Oberfläche, um auch die kleinsten Einstellungen des Samba-Servers einzurichten. Man kann diese sowohl über den [:Konqueror:] durch einen Rechtsklick auf einen Ordner und dann ''"Eigenschaften -> Freigabe -> Dateifreigabe einrichten"'' bzw. über das K-Menü unter ''"Systemeinstellungen -> Freigabe -> Dateifreigabe"'' starten. Dort kann jeder Benutzer über die ''"Einfache Freigabe"'', ohne root-Rechte zu benötigen, Ordner aus seinem eigenen Homeverzeichnis freigeben. Über die ''"Erweiterte Freigabe"'' ist es möglich sämtliche Ordner des Systems freizugeben. [[Bild(./kde-freigabe1.png,200,rechts)]] === Freigaben hinzufügen/ändern === Legt man über ''"Hinzufügen"'' eine Freigabe an oder ändert über ''"Ändern"'' eine vorhandene Freigabe, so gelangt man in einen einfachen Dialog. Hier lassen sich die wichtigsten Details zur Freigabe festlegen. || '''Ordner''' || Pfad zum Ordner, der freigegeben werden soll || || '''Freigaben mit Samba''' || Der Ordner soll über Samba freigegeben werden || || '''Name''' || Der Name unter dem die Freigabe erscheint || || '''Öffentlich''' || Auch Gäste dürfen auf die Freigabe zugreifen || || '''Schreibbar''' || Sowohl Lese- als auch Schreibzugriff || Über die Schaltfläche ''"Weitere Samba-Optionen"'' gelangt man in einen umfangreichen Dialog, in dem man so gut wie jedes Detail des Servers konfigurieren kann. [[Anchor(Konfiguration)]] == Konfigurationsdatei == Deutlich umfangreicher und detaillierter lässt sich der Samba-Server über seine Konfigurationsdatei '''/etc/samba/smb.conf''' einrichten. Diese kann mit einem Editor [2] bearbeitet werden. Die Datei teilt sich in mehrere Sektionen. Die wichtigsten Optionen - die man normalerweise anpassen muss, um einen Samba-Server vollständig einzurichten - werden nun im Folgenden erklärt. === Global Settings === In der globalen Sektion werden die allgemeinen Einstellungen und Sicherheitsoptionen festgelegt. Üblicherweise müssen nur wenige Werte angepasst werden. ==== Browsing/Identification ==== {{{#!Text [global] ## Browsing/Identification ### # Change this to the workgroup/NT-domain name your Samba server will part of workgroup = Arbeitsgruppe # server string is the equivalent of the NT Description field server string = %h server (Samba, Ubuntu) # Windows Internet Name Serving Support Section: # WINS Support - Tells the NMBD component of Samba to enable its WINS Server ; wins support = no # WINS Server - Tells the NMBD components of Samba to be a WINS Client # Note: Samba can be either a WINS Server, or a WINS Client, but NOT both ; wins server = w.x.y.z }}} [[Anchor(WINS)]] Hier wird der Name der Arbeitsgruppe sowie der Kommentar zum Rechnernamen für diesen Samba-Server festgelegt. Wichtig ist auch die Angabe, ob der Rechner als ''"WINS-Server"'' fungieren oder einen anderen Rechner als WINS-Server nutzen soll. [http://de.wikipedia.org/wiki/Windows_Internet_Naming_Service WINS] {de} (Windows Internet Name Service) ist ein von Microsoft entwickeltes System zur dynamischen Auflösung von NetBIOS-Namen. {{{#!Hinweis WINS-Server 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. }}} Mehr zum Thema Samba also WINS-Server findet sich in der [http://gertranssmb3.berlios.de/output/NetworkBrowsing.html#id2525870 Dokumentation] {de} . ==== Authentication ==== {{{#!Text # "security = user" is always a good idea. This will require a Unix account # in this server for every user accessing the server. See # /usr/share/doc/samba-doc/htmldocs/Samba-HOWTO-Collection/ServerType.html # in the samba-doc package for details. ; security = user }}} Die Option ''"security"'' legt den Sicherheitslevel für die Freigaben fest. Folgende Werte sind für ''"security"'' üblich: || '''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 = }}} 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. || Die Sicherheitslevel werden in der [http://gertranssmb3.berlios.de/output/ServerType.html#id2509494 Dokumentation] {de} ausführlicher beschrieben. Hier findet man auch weitere Details zu Samba als Teil einer Domäne. === Printing === {{{#!Text [printers] comment = All Printers browseable = no path = /tmp printable = yes public = no writable = no create mode = 0700 }}} 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: 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 [http://gertranssmb3.berlios.de/output/CUPS-printing.html#id2557206 Dokumentation] {de} . === Share Definitions === ==== Homeverzeichnisse ==== 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. {{{#!Text # Un-comment the following (and tweak the other settings below to suit) # to enable the default home directory shares. This will share each # user's home directory as \\server\username [homes] comment = Home Directories browseable = no # By default, \\server\username shares can be connected to by anyone # with access to the samba server. Un-comment the following parameter # to make sure that only "username" can connect to \\server\username valid users = %S # By default, the home directories are exported read-only. Change next # parameter to 'yes' if you want to be able to write to them. writable = yes # File creation mask is set to 0600 for security reasons. If you want to # create files with group=rw permissions, set next parameter to 0664. create mask = 0600 # Directory creation mask is set to 0700 for security reasons. If you want to # create dirs. with group=rw permissions, set next parameter to 0775. directory mask = 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 Zugriffsrechte Oft wird vergessen, dass die Zugriffsrechte in der Freigabe stimmen müssen. Erlaubt man z.B. den Zugriff von Gästen auf ein Verzeichnis, so muss der Benutzer ''"nobody"'' bzw. die Gruppe ''"nogroup"'' die entsprechenden 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: {{{#!Text [beispiel1] # Allgemein path = /pfad/zu/daten1 # Pfad zu Verzeichnis comment = Testfreigabe 1 # Kommentar zur Freigabe available = yes # Freigabe ist aktiv browseable = yes # Freigabe ist direkt sichtbar guest ok = no # Gäste dürfen nicht auf die Freigabe zugreifen writable = no # Angemeldete Benutzer dürfen lesen aber nicht schreiben }}} ===== 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: {{{#!Text [beispiel2] # Allgemein path = /pfad/zu/daten2 guest ok = yes # Auch Gäste dürfen auf die Freigabe zugreifen writeable = yes # Angemeldete Benutzer dürfen auch schreiben browseable = yes # Rechte bei neuen Dateien/Verzeichnissen create mode = 0664 # Neue Dateien werden mit diesen Rechten versehen directory mode = 0775 # Neue Verzeichnisse werden mit diesen Rechten versehen # Benutzer und Gruppenzugehörigkeit force user = otto # Egal mit welchen Daten sich ein Benutzer am Server anmeldet force group = users # Die Daten werden lokal mit diesen Dateizugehörigkeiten abgelegt # Zeichensätze dos charset = 850 # Sollte es zu Problemen mit Zeichencodierungen kommen, unix charset = ISO-8859-15 # so kann man hier den Samba Server die Freigabe mit einem display charset = ISO-8859-15 # definierten Zeichensatz anzeigen lassen }}} ===== 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"'': {{{#!Text [beispiel3] copy = beispiel2 # Die Daten dieser Freigabe werden übernommen path = /pfad/zu/daten3 writeable = no write list = paul,@beispiel # Benutzer, Gruppen die trotzdem Schreiben dürfen }}} Mehr zu dem Thema "Zugriffskontrollen für Freigabedefinitionen" findet sich in der [http://gertranssmb3.berlios.de/output/AccessControls.html#id2537147 Dokumentation] {de} . = Server (neu) starten = Nachdem man Änderungen an der Samba Konfiguration vorgenommen hat, muss der Server neu gestartet werden. (Das ist nicht ganz richtig, Samba liest eigentlich alle 30 -90 Sekunden die smb.conf neu ein, dadurch bleiben bisherige Clients mit dem Server wie bisher verbunden, und erst beim Neuanmelden wieder mit den neuen Daten verbunden. Mit Ubuntu Edgy getestet.)Dies kann man aus einem Terminal heraus [2] über den Befehl {{{#!Befehl sudo /etc/init.d/samba restart }}} machen. Mehr zu dem Thema Dienste findet man [:Dienste:hier]. = Benutzerverwaltung = Samba verwaltet die Benutzer unabhängig vom System mit dem Befehl ''"smbpasswd"''. Man kann aber die Systembenutzer mit den Samba-Benutzern synchron halten. Dazu müssen lokale Benutzer mit dem Befehl {{{#!Befehl sudo smbpasswd -a }}} ein Samba Passwort vergeben. {{{#!Hinweis Logins und Passwörter Angenommen man setzt den Samba-Server in einem Umfeld ohne "ordentliche" Benutzerauthentifizierung ein, sprich in einer WG oder einem Büro, wo sich alle Benutzer nicht an einer Domäne anmelden, sondern nur lokal an ihrem Rechner. So ist es sinnvoll, dass die Benutzer auf allen Rechnern (egal, ob nun Windows oder Linux eingesetzt wird) sich mit den selben Benutzerdaten - sprich Login und Passwort - anmelden. Dieses Passwort sollte auch als Samba-Passwort gesetzt werden. }}} = Links = * [http://us1.samba.org/samba/ Die Homepage des Samba Projektes] {en} * [http://samba.sernet.de/ Die deutsche Homepage des Samba Projektes] {de} * [http://gertranssmb3.berlios.de/output/index.html Samba-HOWTO-Sammlung] {de} ---- * [:Kategorie/Netzwerk:] * [:Kategorie/Server:] ## vim:filetype=moin