Um im lokalen Netzwerk Dateien von A nach B zu befördern, gibt es viele Methoden. Der Artikel stellt die wichtigsten vor und erläutert deren Konfiguration und Nutzung.
Im eigenen Netzwerk ist Samba der kleinste gemeinsame Nenner. Samba ist die Open-Source-Variante der Microsoft Datei- und Druckerdienste (SMB/CIFS-Protokoll). Das Protokoll wird von Linux, Windows und Mac-OS unterstützt. iOS kann über die Dateien-App ebenfalls standardmäßig auf Samba-Freigaben zugreifen, Android-Geräte benötigen eine zusätzliche App.
Ein Webserver mit Apache bietet sich an, wenn es nur um den Download von Dateien geht. Die Konfiguration ist unkompliziert und der Zugriff kann von jedem Gerät aus erfolgen, auf dem ein Browser installiert ist. Mit etwas mehr Konfiguration und der HTTP-Erweiterung Webdav ist über einen Dateimanager auch der Schreibzugriff möglich. Beim Datenaustausch mit Android-Geräten sorgen Webdienste und Apps für besonderen Komfort. Wer das automatisieren möchte, etwa für den Upload von Bilddateien auf den eigenen Server, findet ab Seite 54 eine Lösung.
Der Artikel bezieht sich auf Ubuntu 22.04/24.04 (Gnome) und Linux Mint 21/22 (Cinnamon), bei anderen Systemen und Desktops ist die Konfiguration ähnlich.
Service: Die Befehlszeilen aus diesem Artikel und weitere Infos zum Thema können Sie über https://m6u.de/SHARE abrufen.
Persönliche Samba-Freigaben
Ordner im eigenen Home-Verzeichnis kann jeder Benutzer selbst im Netzwerk freigeben. Zuvor installiert man den Samba-Server im Terminal mit
sudo apt install samba
Für persönliche Freigaben muss ein Benutzer zur Gruppe „sambashare“ gehören. Lassen Sie sich mit
groups
anzeigen, ob das aktuelle Benutzerkonto bereits dazugehört. Andernfalls erledigt das dieser Befehl
sudo usermod -aG sambashare [User]
Da Samba eine eigene Passwortverwaltung besitzt, muss man außerdem ein Passwort mittels
sudo smbpasswd -a [User]
vergeben. Den Platzhalter „[User]“ ersetzen Sie jeweils durch die Bezeichnung des Benutzerkontos oder mit der Variable „$USER“, die das aktuelle Konto einträgt. Nutzer von Ubuntu 24.04 installieren außerdem mit
sudo apt install nautilus-share
eine praktische Erweiterung, damit der Dateimanager Nautilus „Freigabeoption“ im Kontextmenü anzeigt. Nach diesen Änderungen starten Sie Linux neu.

Benutzerfreigaben einrichten: Klicken Sie den Ordner, den Sie freigeben möchten, im Dateimanager mit der rechten Maustaste an und wählen Sie „Freigabeoptionen“ (Ubuntu 22.04: „Freigabe im lokalen Netzwerk“). Aktivieren Sie nur „Diesen Ordner freigeben“, wenn nur Sie selbst auf die Freigabe zugreifen wollen. Setzen Sie ein Häkchen vor „Gastzugriff (für Personen ohne Benutzerkonto)“, wenn Sie anderen PCs im Netzwerk Lesezugriff auf den freigegebenen Ordner ohne Anmeldung einräumen wollen. Aktivieren Sie „Anderen erlauben, Dateien in diesem Ordner zu erstellen und zu löschen“, wenn andere Personen mit einem Konto auf dem PC einen Zugang erhalten sollen. Nach einem Klick auf „Freigabe erstellen“ setzt der Dateimanager die nötigen Zugriffsrechte für den freigegebenen Order. Das allein genügt aber nicht, wenn die Zugriffsrechte auf das Home-Verzeichnis restriktiv gesetzt sind. Erlauben Sie Gästen und anderen Benutzern mit
chmod 751 /home/[User]
den Zugriff auf das Home-Verzeichnis. Linux Mint weist auf das Problem der fehlenden Berechtigungen im Freigabedialog hin, Ubuntu nicht.
Globale Samba-Freigaben
Samba kann pauschal alle Home-Verzeichnisse und/oder beliebige Ordner freigeben. Diese (administrativen) Freigaben sind in der Datei „/etc/samba/smb.conf“ untergebracht, Kommentare in englischer Sprache erläutern die Bedeutung der einzelnen Optionen. Der Hauptabschnitt wird mit „[global]“ eingeleitet, alle folgenden Abschnitte in eckigen Klammern sind Freigabedefinitionen.
Um alle Home-Verzeichnisse freizugeben, entfernen Sie im Anschnitt „;[homes]“ alle Kommentarzeichen („;“). Soll auch der Schreibzugriff erlaubt sein, ändern Sie „read only = yes“ auf „read only = no“. Wenn ein authentifizierter Benutzer auf den Server zugreift, sieht er nur sein eigenes Home-Verzeichnis als Freigabe.
Eine neue Freigabe lässt sich beispielsweise über diese drei Zeilen erstellen, die Sie am Ende der Datei „smb.conf“ einfügen:
[data1]
path = /data1
writeable = no
Damit wird das Verzeichnis „/data1“ unter der Bezeichnung „data1“ freigegeben. Der Ordner „/data1“ muss existieren und die Benutzer müssen auf der Ebene des Dateisystems wenigstens Leserechte besitzen. Das ist standardmäßig der Fall, wenn Sie das Verzeichnis mit „sudo mkdir /data1“ erstellen.

Wenn Sie auch Benutzern ohne Konto den Zugriff auf die Freigabe erlauben wollen, ergänzen Sie die Freigabedefinition um folgende Zeile:
guest ok = yes
Samba berücksichtigt Konfigurationsänderungen zwar nach einiger Zeit automatisch, der Neustart des Dienstes mit
sudo systemctl restart smbd
kann das aber beschleunigen.
Schreibrechte aktivieren: Damit Benutzer Dateien neu erstellen oder ändern können, genügt aus der Sicht von Samba die Änderung von „writeable = no“ auf „writeable = yes“. Die Rechte im Dateisystem verhindern jedoch den Schreibzugriff, was sich über die folgenden drei Befehlszeilen ändern lässt:
sudo chown -R root:sambashare /data1
sudo find /data1 -type d -exec
chmod 775 {} +
sudo find /data1 -type f -exec
chmod 664 {} +
Die drei Befehlszeilen arbeiten rekursiv, berücksichtigen also auch unter „/data1“ bereits vorhandene Ordner beziehungsweise Dateien. Die Gruppe „sambashare“ erhält Vollzugriff, andere Benutzer inklusive Gäste dürfen weiterhin nur lesen.

Schreibzugriff für mehrere Nutzer: Erstellt ein Benutzer Dateien neu oder ändert er deren Inhalt, wird er zum Eigentümer. Andere Benutzer haben dann nur noch Leserechte. Um das zu ändern, erstellen Sie eine Freigabedefinition wie in der Abbildung (neun Zeilen).
„write list = @sambashare“ gewährt der Gruppe Schreibzugriff. Für alle anderen Benutzer und Gruppen bleibt es durch „writeable = no“ bei der Berechtigung „Nur lesen“. Die weiteren Optionen sorgen dafür, dass neu erstellte Elemente dem Besitzer des darüberliegenden Ordners („inherit owner“) sowie der Gruppe „sambashare“ gehören und beide Vollzugriff erhalten.
Apache-Freigaben ohne und mit Schreibzugriff
Auch ein Webserver kann Dateien im lokalen Netzwerk bereitstellen. Der Vorteil: Dateien lassen sich auf allen Geräten einfach per Webbrowser herunterladen oder öffnen.
Schritt 1: Die Installation ist mit
sudo apt install apache2
schnell geschehen. Der Apache-Webserver liefert in der Standardkonfiguration Dateien aus, die im Ordner „/var/www/html“ liegen.
Schritt 2: Wenn etwa ein Ordner „/data1“ vorliegt, den Sie im Netzwerk verfügbar machen wollen, binden Sie diesen mit
sudo mkdir /var/www/html/data
mount --bind /data1 /var/www/html/data
in das Datenverzeichnis des Webservers ein.
Schritt 3: Damit Linux diesen Ordner nach einem Neustart automatisch einbindet, ergänzen Sie in der Datei „/etc/fstab“ diese Zeile (eine Zeile!):
/data1 /var/www/html/data
none bind 0 0
Wenn Sie jetzt in einem Browser die Adresse
http://[MeinServer]/data
öffnen, liefert Apache den Verzeichnisindex mit einer Ansicht von Ordner und Dateien aus. Der Klick auf eine Datei öffnet diese dann im Browser oder bietet den Download an.

Webserver-Freigaben mit Schreibzugriff: Webdav (Web-Distributed Authoring and Versioning) ist eine Erweiterung des HTTP-Protokolls. Sie erhalten darüber auch Schreibzugriff auf den Webserver, sodass Sie dort Dateien ablegen, ändern und löschen können.
Schritt 1: Aktivieren das Webdav-Protokoll im Terminal mit den folgenden zwei Zeilen:
sudo a2enmod dav
sudo a2enmod dav_fs
Schritt 2: Erstellen Sie einen Ordner, den Sie für den Datenaustausch nutzen wollen, beispielsweise mit
sudo mkdir /var/www/webdav
Kopieren Sie dann die gewünschten Dateien in diesen Ordner „/var/www/webdav“ oder binden Sie ein vorhandenes Datenverzeichnis an dieser Stelle ein:
mount --bind /data1 /var/www/webdav
Setzen Sie die Zugriffsrechte für den Webserver:
sudo chown -R www-data:www-data /var/www/webdav
Schritt 3: Öffnen Sie die Apache-Konfiguration mit
sudo nano /etc/apache2/sites-enabled/000-default.conf
Bauen Sie oberhalb von „</VirtualHost>“ die folgenden vier Zeilen ein:
Alias /webdav /var/www/webdav
<Directory /var/www/webdav>
DAV On
</Directory>
Danach starten Sie den Webserver neu:
sudo systemctl restart apache2
Achtung: Jeder Rechner im lokalen Netzwerk hat bei dieser Konfiguration Lese- und Schreibzugriff auf den Webdav-Ordner. Den Schreibzugriff können Sie einfach mit
sudo chown -R root:root /var/www/webdav
unterbinden. Wenn mehr Sicherheit erforderlich ist, konfigurieren Sie Benutzername und Passwort für den Zugriff. Wie das geht, erfahren Sie unter https://m6u.de/SHARE.

SFTP für den Datenaustausch nutzen
SFTP ist Datenprotokoll des Open-SSH-Servers, der sich mit
sudo apt install openssh-server
installieren lässt. Standardmäßig kann jedes Linux-Benutzerkonto (des Servers) einen Fernzugang über SSH verwenden. Der SSH-Client ist bei allen Linux-Distributionen standardmäßig installiert. Mit
ssh [User]@[Server-IP]
testen Sie die Verbindung im Terminal auf einem anderen Linux-PC oder unter Windows 10/11. Dabei müssen Sie einmalig den SSH-Schlüssel des Servers akzeptieren. Mit „exit“ beenden Sie die Verbindung wieder. Die wichtigsten Zugriffsoptionen auf SFTP werden unten genannt. Wer SFTP ohne den SSH-Fernzugriff einsetzen möchte, kann auch das konfigurieren. Eine Anleitung dazu finden Sie über https://m6u.de/SHARE.
Auf Netzwerkfreigaben zugreifen
Der Samba-Zugriffsclient ist bei fast allen Linux-Distributionen Standard. Im Dateimanager von Ubuntu (Gnome) sind Netzwerkfreigaben unter „Andere Orte“, bei Linux Mint unterhalb von „Netzwerk“ zu finden. Allerdings sind hier nur Samba-Freigaben von Linux-Rechnern sichtbar, nicht jene von Windows-PCs (siehe dazu Kasten „Freigabedienste im Netz bekannt machen“). Nur der KDE-Dateimanager Dolphin zeigt auch Windows-Freigaben unter „Netzwerk –› Freigegebene Ordner (SMB)“ an.
Die Verbindung zu einer Freigabe funktioniert trotzdem immer über die Adresszeile des Dateimanagers, die Sie mit Strg-L einblenden. Geben Sie eine URL in der Form
smb://[IP-Adresse]
ein, um die freigegebenen Ordner eines Servers zu sehen. Sind Benutzername und Passwort erforderlich, fordert sie der Dateimanager entweder gleich an oder beim Öffnen einer Freigabe.
Mit anderen Netzwerkprotokollen funktioniert das entsprechend. Verwenden Sie das Präfix „sftp://“ für den Zugriff auf einen SSH/SFTP-Server oder „dav://“ für Webdav-Freigaben. Alternativ nutzen Sie unter Linux Mint den Dialog „Datei –› Mit Server verbinden“ oder unter Ubuntu die Zeile „Serveradresse eingeben“ bei „Andere Orte“. Ein Klick auf das Fragezeichen zeigt Beispiele für die verwendbaren Protokollpräfixe.
Windows-Nutzer klicken im Windows-Explorer mit der rechten Maustaste auf „Dieser PC“ und wählen „Netzwerklaufwerk verbinden“. Stellen Sie einen Laufwerksbuchstaben ein und tragen Sie hinter „Ordner“ die Adresse in dieser Form ein:
http://[Name oder IP]/[Webdav-Ordner]
Auch SSH/SFTP lässt sich unter Windows nutzen – entweder im Terminal oder mit einer kostenlosen Clientsoftware wie Filezilla (https://filezilla-project.org) oder Winscp (https://winscp.net).
Datenaustausch mit Android-Geräten
Auf Android-Geräten installieren Sie eine kostenlose App wie Cx Datei Explorer
(https://m6u.de/CXFX). Im Punkt „Netzwerk“ fügen Sie dann den Server über das „+“-Symbol und „Remote“ hinzu. „Lokales Netzwerk“ zeigt Samba/Windows-Freigaben automatisch an. Für andere Protokolle gehen Sie auf „SFTP“ oder „WebDAV“.
Pairdrop eignet sich für den bidirektionalen Dateitransfer zwischen Linux und Android, aber auch zwischen Linux-PCs. Software benötigen Sie dafür nicht – Sie verwenden einfach im Browser https://pairdrop.net. Der Datenaustausch erfolgt per Web RTC direkt zwischen Sender und Empfänger und läuft nicht über einen Webserver. Die Webseite zeigt alle Geräte im lokalen Netzwerk an, auf denen sie geöffnet ist. Auf einem Android-Gerät tippen Sie das Icon des Zielrechners an, dann auf „Medien-Auswahl“ und wählen die Datei aus, die Sie senden möchten. Auf dem Zielrechner klicken Sie auf „Akzeptieren“ und speichern die Datei dann. Unter Linux klicken Sie das Icon an und wählen eine Datei zum Versenden.
Mit KDE Connect lassen sich Dateien und der Inhalt der Zwischenablage komfortabel austauschen. Das funktioniert mit mobilen Geräten, aber auch zwischen Linux-PCs. Zur Installation verwenden Ubuntu-Nutzer (Gnome) den Befehl
sudo apt install gnome-shell-extension-gsconnect gnome-shell-extension-prefs
und starten Linux neu. Über den Erweiterungsmanager („Aktivitäten –› Erweiterungen“) aktivieren Sie „Erweiterungen“ und „Gsconnect“. Unter Linux Mint installieren Sie das KDE-Paket so:
sudo apt install kdeconnect --no-install-recommends
Auf dem Android-Gerät installieren Sie die App KDE-Connect über Google Play (https://m6u.de/KDECON).

Local Send ist ein übersichtliches Programm, über das sich Daten auf andere Geräte im Netzwerk übertragen lassen. Für Linux stehen im Downloadbereich DEB- und Appimage-Pakete bereit. Android-Nutzer installieren die App über https://m6u.de/LOCSE. Unter „Senden“ zeigt das Programm Geräte in der Nähe an. Über „Datei“ oder „Ordner“ wählt man Elemente im Dateisystem und klickt auf das Zielgerät, auf dem man den Empfang bestätigt. Die Schaltfläche „Text“ ermöglicht es, Textnachrichten zu senden, während „Ablage“ den Inhalt der Zwischenablage übergibt.
Zusätzliche Info: Freigabedienste im Netz bekanntmachen
Damit Dateimanager Netzwerkfreigaben finden und anzeigen, kommt unter Linux der Dienst Avahi zum Einsatz.
Für den Samba-Server ist er bereits standardmäßig konfiguriert, weshalb Linux-Freigaben im Dateimanager zu sehen sind. Für weitere Serverdienste erstellen Sie Konfigurationsdateien im Ordner „/etc/avahi/services“. Für SFTP beispielsweise die Datei „sftp.service“ mit diesem Inhalt (neun Zeilen):
<?xml version="1.0" standalone='no'?>
<!DOCTYPE service-group SYSTEM "avahi-service.dtd">
<service-group>
<name replace-wildcards="yes">%h (SFTP)</name>
<service>
<type>_sftp-ssh._tcp</type>
<port>22</port>
</service>
</service-group>
Diese und eine zusätzliche Konfigurationsdatei für Webdav finden Sie über https://m6u.de/SHARE.
Wer unter Windows Samba-Freigaben sehen möchte, installiert auf dem Linux-System mit den Freigaben den WS-Discovery-Service:
sudo apt install wsdd2
Eine zusätzliche Konfiguration ist nicht erforderlich: Der Linux-Server taucht sofort im Windows-Explorer unter „Netzwerk“ auf.

