2399744

Samba-Freigaben: Alle Varianten im Überblick

01.06.2019 | 10:22 Uhr | Hermann Apfelböck

Bei Samba-Freigaben gibt es zwei Methoden: die „persönliche“ Freigabe aus dem Benutzerkonto und die klassische „administrative“ Freigabe. Der Unterschied an sich und die sich daraus ergebenden Besonderheiten sollten Linux-Nutzern bewusst sein.

Bei Samba-Freigaben gibt es zwei Methoden: die „persönliche“ Freigabe aus dem Benutzerkonto und die klassische „administrative“ Freigabe. Der Unterschied an sich und die sich daraus ergebenden Besonderheiten sollten Linux-Nutzern bewusst sein.

Beide nachfolgend erklärten Freigabemethoden basieren auf Samba, das sich in gemischten Netzwerken als einfachster gemeinsamer Nenner für Linux, Windows, Android und Mac-OS bewährt. Die Samba-Serverkomponente ist in jedem Fall Voraussetzung und muss für beide Methoden installiert sein ( sudo apt install samba ). Zugreifende Benutzer müssen jeweils als System- und als Samba-Konto auf dem Server eingerichtet sein.

Administrative Freigaben werden durch manuelle Einträge in der Datei „/etc/samba/smb.conf“ mit root-Recht erstellt. Als vereinfachende grafische Hilfe kann das Tool system-config-samba dienen.

Persönliche Freigaben bietet Samba mit dem Werkzeug net usershare , das mit normalen Benutzerrechten die Freigabe für eigene (!) Dateien und Ordner ermöglicht. Das Tool ist im Metapaket „samba“ enthalten und im Prinzip ein Kommandozeilenprogramm. Allerdings wird es unter der Haube auch von grafischen Dateimanagern zur Freigabe verwendet. Persönliche Freigaben erscheinen nicht in der Samba-Hauptdatei „/etc/samba/smb.conf“, sondern werden unter „/var/lib/samba/usershares“ verwaltet – als je eine Datei pro Freigabe.

Tipp: Apache-Webserver auf Linux installieren - so geht's

Persönliche Freigaben in Dateimanager und Terminal

Persönliche Freigabe im Dateimanager.
Vergrößern Persönliche Freigabe im Dateimanager.

Die Dateimanager Nautilus, Nemo, Caja und Dolphin haben net usershare integriert. Nach Rechtsklick auf einen Ordner und Klick auf „Freigabeoptionen“ ist nur ein Freigabename zu vergeben. Standardmäßig hat dann das freigebende Konto via Netzwerk Lese- und Schreibzugriff auf den Ordner. Weitere Optionen sind Schreibrechte für „Andere“ oder sogar offener „Gastzugriff“. Wenn Sie diese großzügigeren Optionen aktivieren, bestätigen Sie anschließend mit „Die Zugriffsrechte automatisch setzen“ die dafür notwendige Änderung der Dateirechte. Eine frühere Freigabe ist auf demselben Weg auch wieder schnell deaktiviert.

Einschränkungen der persönlichen Freigabe

1. Freigaben auf Benutzerebene sind nur dort erfolgreich, wo der Benutzer das Besitzrecht über diese Ordner und Dateien hat. Das ist standardmäßig nur im eigenen Home-Verzeichnis der Fall. In allen anderen Fällen müsste das Besitzrecht über den Dateimanager oder mit chown im Terminal vorab geändert werden.

2. Externe NTFS- oder FAT-Partitionen sind für persönliche Freigaben nicht oder nur unter Klimmzügen zu verarbeiten, weil mit Standardeinstellungen die notwendigen Rechteänderungen nicht möglich sind.

3. Eine differenzierte Rechtevergabe ist über die grafischen Dateimanager nicht möglich. Außerdem werden Rechte nicht zurückgesetzt, sobald Sie eine Freigabe ändern oder beenden. Wird etwa zuerst nur der Gastzugriff aktiviert, gibt es nur Lesezugriff auf den Ordner. Wenn Sie danach aber den Lese- und Schreibzugriff für „Andere“ erlauben, gilt dieser dann auch für Gäste. Bei Bedarf müssen Sie die Rechte im Dateimanager unter „Zugriffsrechte“ wieder manuell korrigieren.

Persönliche Freigaben im Terminal: Die zuletzt genannte Einschränkung (Punkt 4) lässt sich durch den manuellen Einsatz von  net usershare verringern. Diese manuelle Methode ist unumgänglich, wenn Dateimanager (etwa Thunar unter XFCE, Pcmanfm unter LXDE) das Tool nicht integriert haben. Die allgemeine Syntax lautet so

net usershare add [freigabename] [pfad] "[Kommentar"] [Rechte] [guest_ok=y|n]  

und ein konkretes Beispiel so:

net usershare add Bilder /home/ sepp/Bilder "" sepp:F,ha:R 

In diesem Fall wird „/home/sepp/Bilder“ als „Bilder“ für ein Konto mit Vollzugriff, für ein weiteres mit Lesezugriff freigegeben („F“ für „full“, „R“ für „read“). Das weitere Beispiel

net usershare add Musik ~/Musik "" Everyone:F guest_ok=y 

erlaubt allen Systembenutzern Vollzugriff, außerdem Gastzugriff ohne Anmeldung. Für Änderungen am Freigabestatus überschreiben Sie mit einem neuen  net usershare add einfach die bisherigen Regeln und mit

net usershare delete Musik  

ist eine bestehende Freigabe schnell wieder gelöscht.

Kontrolle über alle persönlichen Freigaben bietet der Befehl net usershare info.

Fazit und Bewertung: Persönliche Freigaben aus dem Benutzerkonto haben diverse Einschränkungen, sind aber komfortabel für schnelle Ad-hoc-Freigaben auf Desktopsystemen. Einfachste Variante ist eine Netzfreigabe nur für das eigene Konto, denn hier ist auf Dateisystemebene keine Änderung der Dateirechte nötig. Da solche Freigaben nur im Home-Verzeichnis umstandslos funktionieren, ist diese Freigabevariante für Server ungeeignet.

Tipp: Kleines ABC der Linux-Systemwartung

Administrative Freigaben

Administrative Freigaben in der „smb.conf“.
Vergrößern Administrative Freigaben in der „smb.conf“.

Maßgeblich für administrative Freigaben ist die Konfigurationsdatei „/etc/samba/smb.conf“, deren Bearbeitung root-Recht erfordert. Wer manuelles Editieren scheut, kann sich das schlichte, aber sehr hilfreiche grafische Front-End system-config-samba nachinstallieren, das Sie im Aufmacherbild dieses Artikels sehen. Freigaben werden in der „smb.conf“ am Ende unter „Share Definitions“ eingetragen. Beachten Sie, dass manuelle Änderungen immer erst wirksam werden, wenn Sie den Samba-Dienst mit

sudo service smbd restart  

neu gestartet haben. Eine neue Freigabe lässt sich im Minimalfall mit drei Zeilen erstellen:

[Daten]
path = /media/daten
writeable = yes  

Dieses Beispiel gibt das Verzeichnis „/media/ daten“ unter der Bezeichnung „Daten“ frei. Der Ordner muss existieren und zugreifende Benutzer müssen ein Samba-Konto und im freigegebenen Ordner mindestens lokale Leserechte besitzen. Sollen auch Benutzer ohne Konto die Freigabe verwenden, so ergänzen Sie die Zeile „guest ok = yes“. Umgekehrt kann die Anweisung

valid users = ha sepp fritz  

die zugriffsberechtigten Konten einschränken. Weiterhin lassen sich Lese- und Schreibrechte nach

read list = sepp fritz
write list = ha  

für die gewünschten Konten differenzieren. Wenn ein Konto neben „write list=“ eingetragen ist, sind für dieses Konto automatisch die Leserechte inklusive. Genau wie bei persönlichen Freigaben ergeben sich kaum je Zugriffsprobleme wegen mangelnder Netzwerkrechte. Heikler ist die Tatsache, dass ein aus dem Netzwerk zugreifendes Konto auch die lokalen Dateirechte besitzen muss. Dies erfordert im Freigabepfad oft eine großzügige Ausweitung der Zugriffsrechte für alle Systemkonten:

find [Pfad]/ -type d -exec chmod 777 {} +
find [Pfad]/ -type f -exec chmod 666 {} +  

Die gesonderte Behandlung von „Directories“ („-type d“) und „Files“ („-type -f“) ist notwendig, weil mit der Bitmaske „777“ alle Dateien zusätzlich das „Ausführen“-Bit erhalten würden.

Fazit und Bewertung: Adminstrative Freigaben sind für dauerhafte Netzwerkfreigaben auf Datenservern unverzichtbar, da sie ohne Beschränkung auch jenseits des Home-Verzeichnisses auf internen und externen Festplatten eingerichtet werden können. Anders als bei persönlichen Freigaben müssen die lokalen Dateirechte fast regelmäßig manuell geändert werden.

2399744