Go to file
duffyduck 326d8e97ac Umbau auf Pure-FTPd mit PureDB Virtual Users und Passwort-Dialog
- Komplett auf Pure-FTPd umgestellt (weg von vsftpd)
- PureDB virtuelle Benutzer: jeder User sieht nur seine Freigaben
- Per-User Bind-Mounts mit Read-Only/Read-Write Durchsetzung
- Passwort-Dialog beim Anlegen neuer FTP-Benutzer
- Change-Password UI: Dropdown + Button zum Passwort ändern
- Setup-Kommando für automatische Pure-FTPd Einrichtung
- Anonymous-Checkbox entfernt (nur authentifizierte User)
- sudoers-Fix: $SUDO_USER statt $USER bei sudo-Ausführung
- openssl passwd statt pure-pw stdin für GUI-Kompatibilität

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-04 19:29:36 +02:00
kf5 Umbau auf Pure-FTPd mit PureDB Virtual Users und Passwort-Dialog 2026-04-04 19:29:36 +02:00
kf6 Umbau auf Pure-FTPd mit PureDB Virtual Users und Passwort-Dialog 2026-04-04 19:29:36 +02:00
scripts Umbau auf Pure-FTPd mit PureDB Virtual Users und Passwort-Dialog 2026-04-04 19:29:36 +02:00
README.md Umbau auf Pure-FTPd mit PureDB Virtual Users und Passwort-Dialog 2026-04-04 19:29:36 +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)
  • 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+