Tips & Tricks

Diese Seite ist eine lose Sammlung von Tips und Tricks die mir im Lauf der Jahre bei der Einrichtung meiner EDV Landschaft geholfen haben - eine Liste gegen das Vergessen, sozusagen - sie erhebt keinen Anspruch auf Vollständigkeit oder Richtigkeit, und ist auch nicht sortiert - use at your own risk.

Dokumente in der OwnCloud

Neben dem Blog-Artikel hierzu (der natürlich mit der Zeit in der Liste nach hinten wandert) hier nun auch der Link zum Artikel

zuluCrypt

Im Verlauf der Reanimation eines älteren Laptops (Sony Vaio VPCCB) habe ich mich entschlossen, mich etwas mehr mit Filesystem Verschlüsselung zu beschäftigen. Unter linux ist ja LUKS das Werkzeug der Wahl für diese Aufgabe, und es wird natürlich auch von debian gleich bei der Installation sozusagen out-of-the-box unterstützt, aber nur zusammen mit LVM.
Dies ist nun nicht gerade das was ich bevorzuge, und so kam dieser einfache Weg vorerst nicht infrage. Im Zuge der Beschäftigung mit der nachträglichen, händischen Einrichtung einer verschlüsselten Partition bin ich dann auf zuluCrypt gestossen (das auch im debian Paketsystem enthalten ist, mir aber bisher unbekannt war), und fand das sehr praktisch, da man damit erstmal mit leicht verständlichen GUI-Tools (zuluCrypt-gui und zuluMount-gui) alles einrichten und testen, und nachher für den produktiven Einsatz die entsprechenden CLI Versionen verwenden kann.
Wenn das dann alles klappt, kann man die neue verschlüsselte Partition automatisch beim Systemstart einbinden, wie ab hier beschrieben.

Vncserver & Client Setup

An sich super einfach, ABER einfach mal vnc-server installiert und auf dem Client krdc (oder vncviewer) geht erstmal gar nicht:
Hierzu muss

  1. im Client der richtige Port (5901) angegeben werden
  2. die richtigen Desktop Einstellungen in der Datei ~/.vnc/xstartup vorgenommen werden:
    #!/bin/sh
    # Uncomment the following two lines for normal desktop:
    unset SESSION_MANAGER
    exec /etc/X11/xinit/xinitrc
    # ^^^ genau das ist wichtig, sonst nur grauer Bildschirm :) 
    ....

    siehe hierzu auch diesen Artikel

OwnCloud auf Netcup Hosting 04/2020

Nachdem ich schon vor mehr als einem Jahr von Dropbox die Nase voll hatte (immer mehr Restriktionen, wie nur noch 3 Clients, nur noch ext4 Filesystem...) bin ich dann recht schnell bei OwnCloud gelandet.
OwnCloud deswegen, weil Nextcloud sich schlicht und ergreifend nicht unter den Restriktionen meines Netcup Webhostings installieren liess.
Nichts gegen dieses Hosting Paket - dieses bietet VIEL mehr als alle anderen vergleichbaren Hosting Pakete die ich kenne !
Und, wie gesagt: OwnCloud herunterladen, auspacken und im Web-Frontend den Installer laufen lassen - fertig - ein Klacks. Dann noch die entsprechenden Desktop und Mobile Clients installiert und Dropbox vergessen .
So weit so gut.
Aber auch OwnCloud ist nicht ohne Haken und Ösen - das zeigte sich jetzt beim (versuchten) Update, das zwar ganz gut dokumentiert ist, aber beim Webhosting nicht so einfach funktioniert.
Das liegt daran, dass das dazu benötigte Hilfsprogramm occ, das in der shell aufgerufen wird, andere Pfade sieht (die stehen in der config.php) als der Webserver, weil die shell in einer beschränkten chroot Umgebung läuft.
Ich habe mir dann so geholfen, dass ich 2 Versionen der config.php angelegt habe, eine mit Webserver-Pfaden und eine mit chroot-Pfaden, und dann je nach Anwendung (Live oder Wartungsmodus) die config.php als Symlink auf die jeweils passende Version angelegt.
So ging das dann einigermassen, wobei ich bisher nicht herausgefunden habe, warum man das Datenverzeichnis (data) nicht ausserhalb des Installationsverzeichnis legen (und dann natürlich in der Konfig ändern) kann (Das hat zwar augenscheinlich erstmal funktioniert, man konnte im Web-Frontend durch die Verzeichnisse navigieren, aber jeder Versuch, eine Datei zu öffnen oder herunterzuladen ergab ein 'Not Found').
Naja, ich lasse es jetzt erstmal so - Hauptsache es funktioniert .
Update (07/2020):
Die App updater ist nicht im apps Ordner unterhalb der OC Installation, sondern direkt im OC root - Verzeichnis. Einrichtung siehe Doku.
Und noch eine Anmerkung zum zuvor angemerkten Problem des data Ordners ausserhalb der OC root: dies hängt damit zusammen, dass die Pfade zu den Files wohl (zumindest bei sqlite) absolut in der Datenbank gespeichert sind, das funktioniert natürlich nicht mehr wenn das Verzeichnis nachträglich verschoben wird !
Siehe hierzu auch diese Anleitung.
Am besten macht man das aber wohl zusammen mit der Migration von sqlite nach mysql.
Und genauso ist es (ein Tag später...)

KDE 5.18 für Debian 03/2020

Debian hat ja traditionell selbst im Entwicklungszweig (SID) ein relativ altes KDE, das zwar gepflegt wird (also Bugfixes aus dem Projekt erhält) aber eben: es ist einfach alt.
Und gerade weil KDE ja neben Bugfixes ständig viel neues bringt und Funktionen verbessert, ist das ein recht unbefriedigender Zustand.
Natürlich kann jeder der will, sich selbst ein aktuelles KDE bauen, z.B. mit KDE Build SRC - aber ganz so einfach stellt sich das auch nicht dar.
Zum Glück hat sich nun der Norbert Preining dieser unbefriedigenden Situation angenommen, siehe seinen Blog Post dazu.
Und inzwischen wurde das mit Hilfe des Suse OBS auch weitgehend automatisiert - eine echt coole Sache !

Aufbau/Neuinstallation eines Debian Systems anhand einer Vorlage (Referenz-System) 03/2020

  1. Grundinstallation des Zielsystems, z.B. aus Netinst Image, nur Basis-System + openssh-server + rsync
  2. Benutzer anlegen, Passwörter vergeben, sudo einrichten (Benutzer in /etc/group bei sudo: eintragen)
  3. /etc/apt/sources.list und ggf. Dateien aus /etc/apt/sources.list.d vom Referenzsystem auf das Zielsystem kopieren, apt-get update
  4. Paketliste des Referenzsystems erzeugen: dpkg -l | awk '{print $2}' > pkg.list
  5. Paketliste auf Zielsystem kopieren und dort mit install.sh (s.u.) installieren
  6. angepasste Konfiguration(en) vom Referenzsystem auf das Zielsystem kopieren (siehe Anmerkungen Konfiguration)
  7. eigene SW (z.B. in /usr/local oder $HOME) vom Referenzsystem auf das Zielsystem kopieren

Anmerkungen Konfiguration:

  • Systemkonfigurationsdateien finden sich praktisch alle unter /etc
  • die meisten davon werden automatisch bei der Installation erzeugt bzw. angepasst
  • wichtig sind die nachträglich von Hand veränderten Dateien bzw. die durch interaktive Konfiguration z.B. mit dpkg-reconfigure veränderten Dateien, diese werden am besten in ein tar File archiviert und auf dem Zielsystem ausgepackt
  • weitere Informationen finden sich im Debian Wiki - darin auch ein Hinweis auf das Tool changetrack

install.sh:

#!/bin/bash
#   Install all Packages from Listfile ($1)

Listfile=$1
if [ -f $Listfile ]; then
    while IFS= read -r pkg
    do
        echo "installing $pkg"
        sudo apt-get -y install $pkg
    done < "$Listfile"
else
    echo "$Listfile not found, abort"
fi

Zeitsynchronisierung Debian 10

Zuletzt hatte ich Probleme mit der Zeitsynchronisierung an meinem neu aufgesetzten Arbeitsplatz. ntpdate wollte nicht mehr richtig funktionieren (meine Uhr war sets um ca. 20 Minuten der echten Zeit voraus) und ein genauerer Blick darauf ergab dass das in Debian 10 deprecated markiert ist. Ein wenig Suchen ergab dann das hier - wobei auch der dort beschriebene Weg via ntpd nicht zum Ziel führte, wohl aber die systemd Methode.
Nachtrag: auch das brachte nicht den wirklichen Erfolg. Wie sich herausstellte, lag das Problem daran, dass die Zeitsynchronisation über den Home Router lief, und der hatte die falsche Zeit .
Also nochmal suchen und dann eben laut diesem Tip den Timeserver für systemd timesyncd auf pool.ntp.org eingestellt, und nun gehts...

Apache Virtualhosts einrichten

https://www.matthias-zeis.com/ressourcen/zfstde/zfbook.creating.a.local.domain.using.apache.virtual.hosts.html
Kein Hexenwerk, aber man muss auch daran denken, die Virtual Hosts in die /etc/hosts Tabelle einzutragen...


Request Client Hostname from DHCP Server

Im lokalen Netzwerk werden Clients bevorzugt via DHCP Server eingerichtet - dies ist heutzutage bewährter Standard.
Probleme treten dabei aber dann auf, wenn einer dieser Clients Dienste anbieten soll - in dem Fall müssen die anderen erst einmal die (dynamische) IP Adresse des Dienste-Anbieters ermitteln.
Doch es geht auch einfacher, und ganz automatisch:
https://askubuntu.com/questions/104918/how-to-get-the-hostname-from-a-dhcp-server
Broadcast Hostname via Zeroconf/Avahi:
https://learn.adafruit.com/bonjour-zeroconf-networking-for-windows-and-linux/overview
Anmerkung: Das alles passiert auch automatisch, wenn man auf dem Client Samba installiert, aber wer braucht bzw. will schon Samba ??


Docker auf Debian installieren

Docker ist das Tool der Wahl für alle Webentwickler - mit dem passenden Image stellt es genau die gerade benötigte Umgebung zur Verfügung, schlank und schnell.
Kein Vergleich zur Einrichtung eines kompletten LAMP Stack, oder gar XAMPP.
https://computingforgeeks.com/install-docker-and-docker-compose-on-debian-10-buster/


Fix "Start Job is running for raise network interfaces..." Boot Meldung

Dies kommt vor (und nervt, weil man dann erst den Timeout abwarten muss) wenn ein Rechner der vorher per Kabel ans Netzwerk angeschlossen war, nun ohne LAN Kabel gestartet wird (und z.B. erst später via Network-Manager/WLAN verbunden wird).
https://www.computerbase.de/forum/threads/meldung-waehrend-boot-debian-start-job-is-running-for-raise-network-interfaces.1733184/


Vi(m) Copy/Paste mit Maus einrichten

Seit Debian 8 (so habe ich es zumindest in Erinnerung) funktioniert Copy/Paste in einem Terminal nicht mehr out-of-the-box.
Abhilfe:
set mouse=r
in ~/.vimrc.
Siehe auch https://unix.stackexchange.com/questions/318824/vim-cutpaste-not-working-in-stretch-debian-9


Clonezilla - ein Tool zum Sichern und Wiederherstellen von Partitionen/Festplatten

https://www.linux-community.de/ausgaben/linuxuser/2013/04/partitionen-sichern-mit-clonezilla/
Und ja, dd ist einfacher, ABER: clonezilla sichert nur 'echte' Daten, keinen Leer-Raum, und packt das Ganze auch noch - sehr effektiv !


SSH Copy-Id

Remote Login ohne Username und/oder Passwort:
https://www.ssh.com/ssh/copy-id
funktioniert auch für rsync und scp !


rsync - das Schweizer Taschenmesser der Daten-Synchronisierung

ist immer mal wieder einen genaueren Blick wert (und klar kann man auch jedesmal vorher den Manual Eintrag lesen, wenn man nicht mehr weiss, ob man den trailing slash braucht oder nicht) - aber eingängiger finde ich das hier.


Zerotier - standortübergreifende Datensicherung

Link zum Blogpost


Bulkmail.py - ein Python Massenmailer (oder auch SPAM-Schleuder)

Link zum Blogpost


Image Resize mit Imagemagick convert

Link zum Blogpost


Baikal - privater Ersatz für Google Kalender und Adressbuch

Link zum Blogpost


Serverwartung via Serial Port

Das war schon die (vor-)letzte Rettung als ich meinen Router (fli4l auf einem alix Board - natürlich ohne Tastatur/Monitor) vermurkst hatte !
Link zum Blogpost


Courier Imap - Einrichten eines lokalen IMAP Servers mit SPAM-Filter

Diese Beschreibung ist schon etwas älter, insbesondere bezüglich SPAM, aber die Einrichtung des Courier Servers funktioniert im Prinzip immernoch genauso.
Link zum Blogpost