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

168 lines
3.6 KiB
Markdown

# Dolphin SMB Share Tab
Ein KDE Dolphin Properties-Dialog Plugin zum Erstellen und Verwalten von Samba-Freigaben — direkt über die GUI.
Ersetzt das kaputte `kdenetwork-filesharing` Paket durch eine einfache, funktionierende Alternative.
![Share Tab](screenshot.png)
## Features
- **Share-Tab** in Dolphins Ordner-Eigenschaften (Rechtsklick → Eigenschaften)
- Freigabe per Checkbox aktivieren/deaktivieren
- Freigabename konfigurierbar (Standard = Ordnername)
- Gastzugang erlauben
- Berechtigungen pro Benutzer: Read Only / Full Access / Deny
- Nutzt `net usershare`**kein Root nötig!**
- Erkennt bestehende Freigaben und lädt deren Einstellungen
## Voraussetzungen
- Samba installiert (`net usershare` ist Teil des Samba-Pakets)
- `usershare` in `smb.conf` aktiviert (siehe unten)
- Benutzer muss in der Gruppe `sambashare` sein
- Build-Dependencies (siehe unten)
### Samba installieren
```bash
sudo apt install samba
```
### Benutzer zur Gruppe hinzufügen
```bash
sudo adduser $USER sambashare
```
Danach neu einloggen.
### Samba usershare aktivieren
In `/etc/samba/smb.conf` unter `[global]`:
```ini
usershare max shares = 100
usershare owner only = yes
```
Danach: `sudo systemctl restart smbd`
## 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:**
```bash
sudo apt install build-essential cmake extra-cmake-modules \
libkf5kio-dev libkf5coreaddons-dev libkf5i18n-dev \
qtbase5-dev
```
**Bauen:**
```bash
cd kf5
bash build.sh
```
**Installieren:**
```bash
sudo cp build/bin/smbshareplugin.so \
/usr/lib/x86_64-linux-gnu/qt5/plugins/kf5/propertiesdialog/
```
**Dolphin neustarten:**
```bash
killall dolphin; dolphin &
```
### Debian 13 Trixie (KF6)
**Build-Dependencies:**
```bash
sudo apt install build-essential cmake extra-cmake-modules \
libkf6kio-dev libkf6coreaddons-dev libkf6i18n-dev \
qt6-base-dev
```
**Bauen:**
```bash
cd kf6
bash build.sh
```
**Installieren:**
```bash
sudo cp build/bin/smbshareplugin.so \
/usr/lib/x86_64-linux-gnu/qt6/plugins/kf6/propertiesdialog/
```
**Dolphin neustarten:**
```bash
killall dolphin; dolphin &
```
## Deinstallation
```bash
# KF5
sudo rm /usr/lib/x86_64-linux-gnu/qt5/plugins/kf5/propertiesdialog/smbshareplugin.so
# KF6
sudo rm /usr/lib/x86_64-linux-gnu/qt6/plugins/kf6/propertiesdialog/smbshareplugin.so
```
## Projektstruktur
```
kde-dolphin-smb-sharing-tab/
├── README.md
├── kf5/ # Debian 12 (KDE Plasma 5)
│ ├── CMakeLists.txt
│ ├── build.sh
│ └── src/
│ ├── CMakeLists.txt
│ ├── smbshareplugin.json
│ ├── smbshareplugin.h
│ └── smbshareplugin.cpp
└── kf6/ # Debian 13 (KDE Plasma 6)
├── CMakeLists.txt
├── build.sh
└── src/
├── CMakeLists.txt
├── smbshareplugin.json
├── smbshareplugin.h
└── smbshareplugin.cpp
```
## Wie es funktioniert
Das Plugin nutzt die `net usershare` Befehle von Samba:
- `net usershare add <name> <path> <comment> <acl> <guest_ok>` — Freigabe erstellen
- `net usershare delete <name>` — Freigabe löschen
- `net usershare info --long` — bestehende Freigaben auflisten
Diese Befehle benötigen keine Root-Rechte, solange der Benutzer in der Gruppe `sambashare` ist und `usershare` in der `smb.conf` aktiviert ist.
## Lizenz
GPLv2+