kde-dolphin-ftp-sharing-tab/README.md

5.2 KiB

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)
  • Per-User Berechtigungen: Read Only / Read-Write pro Benutzer
  • Jeder Benutzer sieht nur seine freigegebenen Ordner per FTP
  • Read-Only wird direkt am Dateisystem durchgesetzt (read-only Bind-Mount)
  • Automatische Einrichtung mit dolphin-ftp-share setup

Voraussetzungen

  • Pure-FTPd als FTP-Server
  • Das Helper-Script dolphin-ftp-share im PATH
  • Build-Dependencies (siehe unten)

Einrichtung

1. Pure-FTPd installieren

sudo apt install pure-ftpd

2. Helper-Script installieren

sudo cp scripts/dolphin-ftp-share /usr/local/bin/
sudo chmod +x /usr/local/bin/dolphin-ftp-share

3. Automatisches Setup

Das Setup konfiguriert Pure-FTPd komplett und erstellt die sudoers-Regel:

sudo dolphin-ftp-share setup

Das macht automatisch:

  • Aktiviert PureDB-Authentifizierung (virtuelle FTP-Benutzer)
  • Deaktiviert System-Login und anonymen Zugang
  • Aktiviert Chroot (jeder sieht nur seine Ordner)
  • Erstellt sudoers-Regel für mount/umount/pure-pw
  • Aktiviert Logging
  • Startet Pure-FTPd neu

4. FTP-Passwörter setzen

FTP-Benutzer werden beim ersten Freigeben automatisch erstellt (Standard-Passwort = Benutzername). Passwort ändern:

dolphin-ftp-share passwd <benutzername> <neues-passwort>

Logging

Pure-FTPd loggt über syslog:

# Logs live verfolgen:
sudo tail -f /var/log/syslog | grep pure-ftpd

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 & sudoers
sudo rm /usr/local/bin/dolphin-ftp-share
sudo rm /etc/sudoers.d/dolphin-ftp-share

# Pure-FTPd (optional)
sudo apt remove pure-ftpd

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

  1. Rechtsklick auf Ordner → Eigenschaften → FTP-Tab
  2. Freigabe aktivieren, Berechtigungen pro Benutzer setzen (Read Only / Read-Write)
  3. Beim Anwenden ruft das Plugin dolphin-ftp-share add auf
  4. Das Helper-Script:
    • Erstellt für jeden Benutzer ein persönliches FTP-Root (~/.local/share/dolphin-ftp-root/users/<name>/)
    • Bind-mounted den freigegebenen Ordner dorthin
    • Read-Only Freigaben werden als read-only Bind-Mount gemountet
    • Erstellt automatisch virtuelle Pure-FTPd-Benutzer (PureDB)
  5. Jeder FTP-Benutzer sieht nur seine freigegebenen Ordner — durch Chroot auf sein persönliches FTP-Root

Kommandos

Kommando Beschreibung
dolphin-ftp-share setup Einmalige Pure-FTPd Einrichtung
dolphin-ftp-share add <name> <path> <acl> Freigabe erstellen
dolphin-ftp-share delete <name> Freigabe löschen
dolphin-ftp-share info Bestehende Freigaben auflisten
dolphin-ftp-share passwd <user> <pass> FTP-Passwort ändern

Berechtigungen

Level Beschreibung
--- Kein Zugriff — Ordner ist für diesen Benutzer nicht sichtbar
ro Read Only — nur Download
rw Read-Write — Upload und Download

Lizenz

GPLv2+