- vsftpd-Logging in README dokumentiert (/var/log/vsftpd.log) - Passiv-Modus durch aktiven Modus mit Port 20 ersetzt - Helper-Script: Symlinks durch Bind-Mounts ersetzt (vsftpd chroot-kompatibel) - sudoers-Anleitung für passwortlose Bind-Mounts hinzugefügt - Symlinks-Referenz in README auf Bind-Mounts korrigiert Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> |
||
|---|---|---|
| kf5 | ||
| kf6 | ||
| scripts | ||
| README.md | ||
| screenshot.png | ||
README.md
Dolphin FTP Share Tab
Ein KDE Dolphin Properties-Dialog Plugin zum Erstellen und Verwalten von FTP-Freigaben — direkt über die GUI.
Features
- FTP-Tab in Dolphins Ordner-Eigenschaften (Rechtsklick → Eigenschaften)
- Freigabe per Checkbox aktivieren/deaktivieren
- Freigabename konfigurierbar (Standard = Ordnername)
- Anonymen Zugang erlauben
- Berechtigungen pro Benutzer: Read Only / Read-Write
- Nutzt das Helper-Script
dolphin-ftp-share— kein Root nötig! - Erkennt bestehende Freigaben und lädt deren Einstellungen
Voraussetzungen
- Ein FTP-Server (z.B.
vsftpd) - Das Helper-Script
dolphin-ftp-shareim PATH - Build-Dependencies (siehe unten)
FTP-Server installieren (vsftpd)
sudo apt install vsftpd
vsftpd konfigurieren
In /etc/vsftpd.conf:
listen=YES
anonymous_enable=YES
local_enable=YES
write_enable=YES
anon_root=/home/DEIN_USER/.local/share/dolphin-ftp-root
local_root=/home/DEIN_USER/.local/share/dolphin-ftp-root
chroot_local_user=YES
allow_writeable_chroot=YES
pasv_enable=NO
connect_from_port_20=YES
# Logging
xferlog_enable=YES
xferlog_std_format=NO
log_ftp_protocol=YES
vsftpd_log_file=/var/log/vsftpd.log
Danach: sudo systemctl restart vsftpd
Logdatei
vsftpd schreibt alle FTP-Aktivitäten (Logins, Uploads, Downloads, Fehler) in /var/log/vsftpd.log.
# Logs live verfolgen:
sudo tail -f /var/log/vsftpd.log
Helper-Script installieren
sudo cp scripts/dolphin-ftp-share /usr/local/bin/
sudo chmod +x /usr/local/bin/dolphin-ftp-share
sudo für Bind-Mounts erlauben
Das Helper-Script nutzt sudo mount --bind und sudo umount, um Ordner in das FTP-Root einzubinden (Symlinks funktionieren nicht in vsftpd's chroot-Umgebung).
Damit das ohne Passwort-Eingabe funktioniert:
sudo visudo -f /etc/sudoers.d/dolphin-ftp-share
Folgendes eintragen (DEIN_USER ersetzen):
DEIN_USER ALL=(root) NOPASSWD: /usr/bin/mount --bind *
DEIN_USER ALL=(root) NOPASSWD: /usr/bin/umount /home/DEIN_USER/.local/share/dolphin-ftp-root/*
Versionen
| Verzeichnis | Zielplattform | KDE Frameworks | Qt |
|---|---|---|---|
kf5/ |
Debian 12 Bookworm | KF5 | Qt5 |
kf6/ |
Debian 13 Trixie | KF6 | Qt6 |
Der C++ Quellcode ist identisch — nur die CMake-Konfiguration unterscheidet sich.
Build & Installation
Debian 12 (KF5)
Build-Dependencies:
sudo apt install build-essential cmake extra-cmake-modules \
libkf5kio-dev libkf5coreaddons-dev libkf5i18n-dev \
qtbase5-dev
Bauen:
cd kf5
bash build.sh
Installieren:
sudo cp build/bin/ftpshareplugin.so \
/usr/lib/x86_64-linux-gnu/qt5/plugins/kf5/propertiesdialog/
Dolphin neustarten:
killall dolphin; dolphin &
Debian 13 Trixie (KF6)
Build-Dependencies:
sudo apt install build-essential cmake extra-cmake-modules \
libkf6kio-dev libkf6coreaddons-dev libkf6i18n-dev \
qt6-base-dev
Bauen:
cd kf6
bash build.sh
Installieren:
sudo cp build/bin/ftpshareplugin.so \
/usr/lib/x86_64-linux-gnu/qt6/plugins/kf6/propertiesdialog/
Dolphin neustarten:
killall dolphin; dolphin &
Deinstallation
# KF5
sudo rm /usr/lib/x86_64-linux-gnu/qt5/plugins/kf5/propertiesdialog/ftpshareplugin.so
# KF6
sudo rm /usr/lib/x86_64-linux-gnu/qt6/plugins/kf6/propertiesdialog/ftpshareplugin.so
# Helper-Script
sudo rm /usr/local/bin/dolphin-ftp-share
Projektstruktur
kde-dolphin-ftp-sharing-tab/
├── README.md
├── scripts/
│ └── dolphin-ftp-share # Helper-Script für Share-Verwaltung
├── kf5/ # Debian 12 (KDE Plasma 5)
│ ├── CMakeLists.txt
│ ├── build.sh
│ └── src/
│ ├── CMakeLists.txt
│ ├── ftpshareplugin.json
│ ├── ftpshareplugin.h
│ └── ftpshareplugin.cpp
└── kf6/ # Debian 13 (KDE Plasma 6)
├── CMakeLists.txt
├── build.sh
└── src/
├── CMakeLists.txt
├── ftpshareplugin.json
├── ftpshareplugin.h
└── ftpshareplugin.cpp
Wie es funktioniert
Das Plugin nutzt das Helper-Script dolphin-ftp-share:
dolphin-ftp-share add <name> <path> <anonymous> <acl>— Freigabe erstellendolphin-ftp-share delete <name>— Freigabe löschendolphin-ftp-share info— bestehende Freigaben auflisten
Das Script speichert Freigabe-Konfigurationen in ~/.local/share/dolphin-ftp-shares/ und erstellt Bind-Mounts in ~/.local/share/dolphin-ftp-root/. Der FTP-Server (z.B. vsftpd) dient dieses Root-Verzeichnis aus.
Konfigurationsformat
Jede Freigabe wird als .conf-Datei gespeichert:
path=/pfad/zum/ordner
anonymous=y
user_acl=user1:rw,user2:ro
Berechtigungen
| Level | Beschreibung |
|---|---|
ro |
Read Only — nur Download |
rw |
Read-Write — Upload und Download |
Lizenz
GPLv2+
