[[Vorlage(Getestet, Hardy, Lucid, Natty)]] {{{#!vorlage Wissen [:Pakete installieren: Installation von Programmen] }}} [[Inhaltsverzeichnis(3)]] Dieser Artikel bezieht sich in erster Linie auf die Desktop-Umgebung [:GNOME:], ist aber in weiten Teilen auch für [:Unity:] und [:Xfce:] (Xubuntu) gültig. Für [:KDE:] (Kubuntu) gibt es einen eigenen Artikel [:Samba_Server/KDE:]. Die Einrichtung eines Samba-Servers ohne graphische Benutzeroberfläche ist in [:Samba_Server:] beschrieben. Unter GNOME kann man sehr komfortabel Ordner und Dateien im Netzwerk freigeben und die wichtigsten Netzwerk-Einstellungen vornehmen. Oftmals kann man es sich damit ersparen, Eingaben über ein [:Terminal:] vorzunehmen oder umfangreiche Administrations-Tools wie [:Samba_Server_Swat:Swat] oder [http://dalalven.dtdns.net/linux/gadmintools-webpage/ gadmin-samba] {en} einzusetzen. Seit der Version 3.0.23 enthält die [:Samba:]-Suite das Tool '''net usershare'''. Dieses bietet alternativ zur klassischen Methode, Freigaben mit Root-Rechten über einen Eintrag in der Datei [:Samba_Server/smb.conf: /etc/samba/smb.conf] einzurichten, auch gewöhnlichen Benutzern die Möglichkeit, ihre eigenen Dateien ohne Root-Rechte freizugeben. GNOME bietet Unterstützung für __beide__ Verfahren, wobei seit [:Hardy:Ubuntu 8.04 LTS] (Hardy Heron) standardmäßig '''nautilus-share''' installiert wird, das '''net usershare''' nutzt. {{{#!vorlage Hinweis Das Tool [:gnome-user-share:] ist trotz der Namensähnlichenkeit mit '''net usershare''' __kein__ Samba-Tool. (Es bietet öffentliche Bluetooth und Web-Freigaben (apache, http, WebDAV) und macht keinen Gebrauch von Samba.) }}} = Persönliche Freigaben mit "net usershare" = Der [:Dateimanager:] [:Nautilus:] nutzt mit dem Zusatzpaket '''nautilus-share''' (standardmäßig installiert) das Samba-Tool '''net usershare''' um Verzeinisse im Netzwerk freizugeben. Persönliche Freigaben können jedoch nur von Mitgliedern der [:Benutzer und Gruppen:Gruppe] ''sambashare'' eingerichtet werden. Der Erstbenutzer ist standardmäßig Mitglied dieser Gruppe; neu hinzugefügte Benutzer müssen evtl. noch in dieser Gruppe eingetragen werden. Für persönliche Freigaben gibt es keinen Eintrag in der allgemeinen Konfigurationsdatei '''/etc/samba/smb.conf'''. Statt dessen wird für jede dieser Freigaben im Ordner '''/var/lib/samba/usershares/''' eine eigene kleine Textdatei mit den nötigen Angaben angelegt. Diese ist Besitz des jeweiligen Benutzers; nur dieser kann sie verändern oder löschen. Normalerweise sollte diese Datei nicht mit einem Editor bearbeitet werden! == Installation == Damit Verzeichnisse im Netzwerk per SMB/CIFS Protokoll (bzw. als "Windows-Freigabe") angesprochen werden können, muss folgendes [:Metapakete:Metapaket] aus den [:Paketquellen:] installiert sein [1]: * '''samba''' Jedoch braucht man die Installation nicht unbedingt von Hand zu veranlassen, wenn man man mit Nautilus [#Persoenliche-Freigaben-mit-net-usershare persönliche Freigaben] einrichten möchte. Beim Einrichten der ersten Freigabe erfolgt hier automatisch ein Hinweis auf ggf. noch fehlende Pakete, die nach nach einer Bestätigung per Mausklick einfach nachinstalliert werden können. {{{#!vorlage Warnung Die Installation von Samba auf einem Rechner mit direktem Zugang zum Internet (ohne Router mit NAT) oder zu unsicheren Netzen kann ein Sicherheitsrisiko sein. Nötigenfalls sollte man dann die Zugriffsmöglichkeit über die Optionen `interfaces` und `bind interfaces only` in der Datei [:Samba_Server/smb.conf:/etc/samba/smb.conf] einschränken. }}} [[Bild(./persoenliche-Freigabe.png, 60, right)]] [[Bild(./Ordner_freigeben.png, 236, right)]] == Freigabe erstellen == Nach einem Rechtsklick auf ein Ordner-Symbol klickt man ''"Freigabeoptionen"'' an. Es öffnet sich das selbsterklärende nebenstehende Dialogfenster. Man trägt für die Freigabe einen Namen und optional einen Kommentar ein und hakt an, was gewünscht wird: überhaupt freigeben - Schreibrechte einräumen - Gastzugang (ohne Passwort) erlauben. Alternativ gelangt man auch über ''"Eigenschaften -> Ordner freigeben"'' zum gleichen Dialog. Persönliche Freigaben werden im Nautilus-Fenster durch das nebenstehend abgebildete Emblem (Doppelpfeil) gekennzeichnet. ===Schreibrechte=== Mit net usershare kann man Schreibrechte nur für alle oder für niemand einräumen. Insbesondere bedeutet dies, dass bei öffentlichen Freigaben mit Gastzugriff die (sinnvolle) Einstellung "Besitzer darf schreiben und Gäste nur lesen" nicht vorgesehen ist. ===Gastzugriff und Benutzerkonto=== Öffentliche Freigaben (mit Gastzugriff) können sofort ohne weitere Vorbereitung eingerichtet werden. Möchte man jedoch den Zugriff auf Benutzer mit einem Benutzerkonto (Benutzername und Passwort) beschränken, muss zuvor ein solches eingerichtet werden. Hierfür sind Root-Rechte nötig. Wie dies geschehen kann, ist [#Benutzerkonto weiter unten] beschrieben. [[Bild(./Add_permissions.png, 300, right)]] == Zugriffsrechte automatisch anpassen == Weil Samba nichts erlauben kann, was auf dem Server selbst verboten ist, müssen oftmals noch die Zugriffsrechte für die freigegebenen Dateien angepasst werden. Dafür erscheint dann ein neues Dialogfenster mit dem Vorschlag, diese Anpassung von Nautilus automatisch durchführen zu lassen. Leider erscheint dieses Dialogfenster auch dann, wenn eine solche Anpassung gar nicht möglich ist (z.B. FAT- oder NTFS-Partition). {{{#!vorlage Hinweis Die automatische Anpassung der Zugriffsrechte wird nur für die freigegebenen Dateien bzw. Ordner selbst durchgeführt; eventuell muss man zusätzlich noch die Zugriffsrechte übergeordneter Ordner von Hand anpassen. }}} == Dateien von Windows-Partitionen freigeben == Mittels GNOME/Nautilus lassen sich auch Ordner und Dateien freigeben, die sich auf einer Partition mit einem der Windows-Dateisysteme FAT oder NTFS befinden. Allerdings gibt es dabei einiges zu beachten: * Über net usershare kann ein Benutzer immer nur Dateien freigeben, die ihm selbst gehören. Da Windows-Partitionen bei der Installation von Ubuntu standardmäßig als Besitz von "Root" eingebunden werden, sind ggf. die Einträge in der Datei [:fstab:/etc/fstab] geeignet zu verändern (üblicherweise `uid=1000` statt `uid=0`). * Auch wenn ein entsprechendes Fenster erscheint, kann Nautilus die Zugriffsrechte auf Windows-Partitionen __nicht__ anpassen. Insbesondere ist ein Gast-Zugriff auf eine Freigabe auf einer Windows-Partition nur dann möglich, wenn dieser über die Option `umask` in '''fstab''' erlaubt wird. {{{#!vorlage Hinweis Für das Freigeben von Dateien und Ordnern auf FAT- oder [:NTFS:]-Partitionen lassen sich die Besitz- und Zugriffsrechte nicht nachträglich anpassen. Sie müssen vorher schon beim [:mount: Einbinden] der Partitionen geeignet festgelegt werden. Nähere Einzelheiten siehe [:Windows-Partitionen_einbinden:hier]. }}} == Zugriffsrechte und Sicherheit == Die automatische Änderung von Zugriffsrechten auf dem Server ohne detaillierte Rückmeldung kann bei unbedachter Anwendung leicht dazu führen, dass unbemerkt unerwünschte oder gar gefährliche Berechtigungen entstehen. Leicht wird vergessen, dass die veränderten Zugriffsrechte auf dem Server auch dann bestehen bleiben, wenn eine vorübergehende Freigabe wieder aufgehoben wird. {{{#!vorlage Warnung Zu großzügig gewährte Zugriffsrechte können vor allem in Netzwerken ein Sicherheitsrisiko darstellen! Auf Rechnern mit direkter Verbindung zum Internet (ohne Router) und Laptops, die sich gelegentlich auch mit fremden oder öffentlichen Netzen verbinden, sind öffentliche Freigaben (mit Gast-Zugang) grundsätzlich zu vermeiden. }}} ==Persönliche Freigaben im Terminal== Nicht alle Dateimanager bieten wie Nautilus die Möglichkeit, persönliche Freigaben einzurichten. In diesen Fällen lassen sich persönliche Freigaben über ein [:Terminal:] einrichten. Hierzu dient die Befehlszeile {{{#!vorlage Befehl net usershare add }}} Werden keine Parameter angegeben, so werden die Freigaben ohne Schreibrechte und ohne Gastzugang erstellt. Die allgemeine Syntax für die Befehlszeile ist {{{#!vorlage Befehl net usershare add sharename path [comment] [acl] [guest_ok=[y|n]] }}} Unter "acl" können für die einzelnen Benutzer die Zugriffsrechte festgelegt werden (f = voller Zugriff, r = nur lesen, d = kein Zugriff). Beispiel: {{{#!vorlage Befehl net usershare add Musik ~/Musik Everyone:f guest_ok=yes }}} Löschen lassen sich persönliche Freigaben mittels {{{#!vorlage Befehl net usershare delete }}} Eine ausführliche Beschreibung weiterer Möglichkeiten von net usershare findet sich [:Samba_Server#Persoenliche-Freigaben:hier]. =Allgemeine Freigaben und Einstellungen= == Installation== Um über GNOME auch [#Allgemeine-Freigaben allgemeine Freigaben] (mit Root-Rechten und '''smb.conf''') erstellen sowie [#Server-Einstellungen Server-Einstellungen] und [#Benutzerkonto Benutzerkonten] verwalten zu können, muss zusätzlich zum [:Metapakete:Metapaket] {{{#!vorlage Paketinstallation samba }}} noch das Paket {{{#!vorlage Paketinstallation system-config-samba }}} aus den [:Paketquellen:] installiert werden. Danach erscheint im Hauptmenü folgender Eintrag: * ''"System -> Systemverwaltung -> Samba"'' Zusätzlich kann die Installation eines der folgenden Pakete sinnvoll sein: {{{#!vorlage Paketinstallation samba-doc }}}(Samba Dokumentation) {{{#!vorlage Paketinstallation samba-doc-pdf }}}(das Selbe im pdf-Format) Fehlende Pakete (aus dem Metapaket '''samba''') werden beim Erstellen allgemeiner Freigaben nicht automatisch nachinstalliert. {{{#!vorlage Hinweis Das Tool ''system-config-samba'' lässt sich auch mit anderen grafischen Oberflächen, vor allem auch Xfce (Xubuntu), verwenden. Bei LXDE (Lubuntu) muss noch zusätzlich das Paket '''python-glade2''' installiert werden. }}} [[Bild(./system-config-samba.png, 360, right)]] == Allgemeine Freigaben == Mit "allgemein" oder "administrativ" werden solche Freigaben bezeichnet, die in die Datei '''/etc/samba/smb.conf''' eingetragen und damit unabhängig vom jeweils angemeldeten Benutzer verfügbar sind. Allgemeine Freigaben einzurichten, zu löschen oder zu verändern ist denjenigen Benutzern vorbehalten, die als Mitglieder der Gruppe ''admin'' berechtigt sind, über [:sudo:] Root-Rechte zu erlangen. Weil allgemeine Freigaben grundsätzlich mit Root-Rechten erstellt werden, entfällt bei ihnen auch die Einschränkung, dass jeder Benutzer nur seine eigenen Dateien freigeben kann. Nach einem Mausklick auf den Menü-Eintrag * ''"System -> Systemverwaltung -> Samba"'' muss der Benutzer durch Eingabe seines System-Passworts seine Berechtigung nachweisen, mit Root-Rechten zu arbeiten. Danach öffnet sich das Dialogfenster. Dort sind alle bestehenden allgemeinen Freigaben, nicht jedoch die persönlichen Freigaben des jeweiligen Benutzers aufgeführt. [[Bild(./Share-Zugang.png, 236, right)]] [[Bild(./Share-anlegen.png, 236, right)]] === Freigabe hinzufügen oder löschen === Die Angaben eines frei wählbaren Namens, unter dem die Freigabe im Netz erscheint, und des kompletten Pfads auf dem Server sind verpflichtend; fakultativ kann noch ein Kommentar hinzugefügt werden, der dann von manchen Browsern auf dem Client angezeigt wird. Außerdem muss angegeben werden, ob die Freigabe beschreibbar sein und von Browsern auf dem Client angezeigt werden soll. Unter "Zugang" kann für jeden Benutzer mit [#Benutzerkonto Samba-Benutzerkonto] einzeln der Zugriff gestattet oder verboten werden. Unter den Benutzern erscheint standardmäßig auch der User "nobody". Unter diesem Namen greifen sowohl Windows als auch Nautilus auf öffentliche Freigaben (mit erlaubtem Gastzugriff) zu. === Eigenschaften === Unter "Eigenschaften" lassen sich diese Angaben für bereits eingerichtete Freigaben nachträglich noch verändern. {{{#!vorlage Hinweis Die hier festgelegten Zugriffsrechte für Freigaben sind nur gültig im Rahmen der Dateirechte, die auf dem Server selbst gelten. Samba kann nichts erlauben, was auf dem Server verboten ist. Eine automatische Anpassung von Dateirechten, wie sie Nautilus bei persönlichen Freigaben mit ''net usershare'' vornimmt, findet beim Einrichten allgemeiner Freigaben nicht statt. }}} Nautilus kennzeichnet allgemeine Freigaben (im Gegensatz zu persönlichen Freigaben) __nicht__ durch ein besonderes Emblem (Doppelpfeil). Ihre Funktion wird dadurch jedoch nicht eingeschränkt. Auf keinen Fall sollte man sich aber durch das fehlende Emblem dazu verleiten lassen, eine allgemeine Freigabe zusätzlich noch über Nautilus persönlich freizugeben! {{{#!vorlage Hinweis Es ist durchaus möglich, auf dem gleichen Rechner persönliche und allgemeine Freigaben nebeneinander zu verwenden. Allerdings sollte man es vermeiden, die gleiche Datei oder den gleichen Ordner doppelt (einmal persönlich und einmal allgemein) freizugeben! }}} == Einstellungen == Die im Folgenden beschriebenen Einstellungen wirken sich sowohl auf persönliche Freigaben (über Nautilus mit net usershare erstellt) als auch auf allgemeine Freigaben (mit Eintrag in '''smb.conf''') aus. Sie können in GNOME in dem Dialogfenster vorgenommen werden, das man über den Menü-Eintrag * ''"System -> Systemverwaltung -> Samba"'' nach Eingabe des System-Passworts mit Root-Rechten öffnet. [[Bild(./Server-Sicherheit.png, 236, right)]] [[Bild(./Server-Einstellungen.png, 236, right)]] === Server-Einstellungen === Mit "Basis" wird die Arbeitsgruppe und die im Netzwerk gültige Beschreibung des Servers festgelegt. In kleinen Heimnetzwerken ist es zu empfehlen, dass alle Rechner der gleichen Arbeitsgruppe angehören. Bei "Sicherheit" ist im Regelfall der Authentifizierungsmodus "Benutzer" richtig. Die beiden nachfolgenden Felder sind nur bei der Authentifizierung über [:Kerberos:] von Bedeutung. Passwörter sollten grundsätzlich verschlüsselt werden (wird auch von Windows so verlangt). In dem Feld "Guest Account" wird festgelegt, wem Ordner und Dateien auf dem Server gehören sollen, die von Gästen über das Netzwerk angelegt werden. Wird hier nichts eingetragen, ist "nobody" Standard. Alternativ können die Server-Einstellungen auch über ein Terminal mit Root-Rechten (sudo) durch Einträge im Teil `[global]` der Datei '''/etc/samba/smb.conf''' vorgenommen werden. Dort sind für Sonderfälle auch noch differenziertere Einstellungen möglich (siehe auch [:Samba_Server/smb.conf:]). [[Bild(./neuer-Benutzer.png, 236, right)]] === Benutzerkonto === Samba führt auf dem Server eine eigene, von der System-Benutzerverwaltung getrennte Benutzer-Datenbank. Dort können aber grundsätzlich nur solche Benutzer eingetragen werden, die auf dem Server einen eigenen Account haben. Für jeden dort eingetragenen Benutzer kann man dann ein eigenes Samba-Passwort festlegen, über das er von einem beliebigen Client aus (auch von einem Windows-Rechner) auf geschützte Freigaben zugreifen darf. Dieses Samba-Passwort kann, muss aber nicht mit seinem System-Passwort übereinstimmen. Über den Eintrag ''"Einstellungen -> Samba-Benutzer"'' können Einträge in der Samba-Datenbank hinzugefügt, geändert oder gelöscht werden. Voreingestellt als Benutzer ist auch "nobody". Dieser sollte keinesfalls gelöscht und auch nicht mit einem Passwort versehen werden, da Windows und Nautilus diesen Namen standardmäßig für den anonymen Zugriff auf öffentliche Freigaben verwenden. Alternativ kann die Samba-Datenbank auch über ein Terminal mit Root-Rechten mit dem Befehl `smbpasswd` verwaltet werden. Siehe hierzu [:Samba_Server:] und die [:man:Manpage] zu '''smbpasswd'''. {{{#!vorlage Hinweis Obwohl persönliche und allgemeine Freigaben auf dem Server voneinander getrennt verwaltet werden, werden sie auf dem Client nicht unterschieden. Für beide bestehen dort genau die gleichen Zugriffsmöglichkeiten. }}} =Probleme und Lösungen= ==Der Server wird nicht erkannt== Zuerst sollte man immer überprüfen, ob der Name des Servers den Konventionen entspricht (maximal 15 Zeichen, keine unzulässigen Sonderzeichen usw.). Wenn der Server trotzdem von keinem Client aus (auch nicht von Windows-Clients) über seinen Netbios-Namen erkannt wird, aber über seine IP ansprechbar ist, dann kann es sein, dass auf dem Server der Service "nmbd" beim Booten nicht korrekt gestartet wurde. Nach Eingabe folgender Zeile im Terminal sollte die Erkennung über den Netbios-Namen dann funktionieren: {{{#!vorlage Befehl sudo service nmbd start }}} Mit folgendem Eintrag in '''/etc/rc.local''' (mit [:sudo:Root-Rechten] vorzunehmen) lässt sich dies automatisieren: {{{ sleep 20 service nmbd start exit 0 #(diese Zeile ist bereits vorhanden) }}} = Links = == Intern == * [:Heimnetzwerk:]: Verschiedene Möglichkeiten, ein kleines privates Netzwerk einzurichten * [:GNOME:]: Ausführliche Informationen zum gleichnamigen Desktop * [:Samba:]: Grundlegende Informationen; dort finden sich auch weitere Links * [:Samba Server:]: Weitere Informationen zum Einrichten eines Samba-Servers * [:Samba Server/smb.conf:]: Die Konfigurationsdatei eines Samba-Servers (mit Beispielen) == Extern == * [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} # tag: Netzwerk, GNOME, Samba, Server, Freigaben, Windows