Go to file
duffyduck 456d0873d3 README und Helper-Script aktualisieren: Logging, aktiver Modus, Bind-Mounts
- 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>
2026-04-04 18:20:17 +02:00
kf5 first commit 2026-03-22 21:25:09 +01:00
kf6 first commit 2026-03-22 21:25:09 +01:00
scripts first commit 2026-03-22 21:25:09 +01:00
README.md README und Helper-Script aktualisieren: Logging, aktiver Modus, Bind-Mounts 2026-04-04 18:20:17 +02:00
screenshot.png first commit 2026-03-22 21:25:09 +01:00

README.md

Dolphin FTP Share Tab

Ein KDE Dolphin Properties-Dialog Plugin zum Erstellen und Verwalten von FTP-Freigaben — direkt über die GUI.

Share Tab

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-sharekein Root nötig!
  • Erkennt bestehende Freigaben und lädt deren Einstellungen

Voraussetzungen

  • Ein FTP-Server (z.B. vsftpd)
  • Das Helper-Script dolphin-ftp-share im 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 erstellen
  • dolphin-ftp-share delete <name> — Freigabe löschen
  • dolphin-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+