ubuntuusers.de

25. Juni 2018

Mozilla hat heute sein neues Sicherheits-Tool Firefox Monitor angekündigt. Dabei handelt es sich um einen Dienst, welcher Nutzer überprüfen lässt, ob diese in der Vergangenheit von einem Datendiebstahl betroffen waren.

Nutzer haben häufig Benutzerkonten auf zahlreichen Webseiten. Die Zahl der Daten-Diebstähle, das heißt, dass jemand Unbefugtes Zugriff auf persönliche Daten und Passwörter erlangt, nimmt dabei immer mehr zu. Mozilla hat eine Partnerschaft mit HaveIBeenPwned.com abgeschlossen und wird in Kürze den Dienst Firefox Monitor starten. Durch die Eingabe der E-Mail-Adresse kann jeder überprüfen, ob seine E-Mail-Adresse und damit verbunden meist auch andere Daten Teil eines bekannten Datendiebstahls in der Vergangenheit ist. Firefox Monitor listet Details zu den betroffenen Diensten auf und spricht außerdem Empfehlungen aus, was im Falle eines Datendiebstahls unternommen werden sollte.

Firefox Monitor

Mozilla möchte dem Nutzer auch die Möglichkeit geben, informiert zu werden, wenn es in Zukunft zu einem Datendiebstahl kommt, von dem der Nutzer betroffen ist. Außerdem arbeitet Mozilla an einer Erweiterung für Firefox, welche den Nutzer warnt, wenn er eine Seite besucht, die in der Vergangenheit Opfer eines Datendiebstahls worden ist.

Firefox Monitor Add-on

Mozilla wird in der kommenden Woche damit starten, ca. 250.000 Nutzer, vor allem aus den USA, zu einem Test von Firefox Monitor einzuladen. Basierend auf dem Feedback wird Mozilla seinen Dienst weiter verbessern und schließlich allen Nutzern zugänglich machen.

Der Beitrag Mozilla kündigt neues Sicherheits-Tool Firefox Monitor an erschien zuerst auf soeren-hentzschel.at.

Anonymisierte Telemetrie-Daten sind eine wichtige Entscheidungsgrundlage für die Entwicklung und kein unmittelbarer Eingriff in die Privatsphäre der Anwender. Man sollte nicht zu vorschnell urteilen (siehe auch: Kommentar: Datenerhebung durch Linux-Distributionen) und vor allem nicht die Erhebung von anonymen Telemetrie-Daten mit der hemmungslosen personalisierten Datenauswertung vieler IT-Konzerne vermischen.

Eine erste Auswertung der Daten, die mittels der Erhebung in Ubuntu LTS 18.04 gesammelten wurden, illustriert die Notwendigkeit sehr deutlich.

Entwickler neigen beispielsweise immer dazu die Hardwareleistung zu überschätzen. Mutmaßlich weil viele Entwickler potentere und neuere Hardware ihr Eigen nennen. Die Datenerhebung zeigt sehr deutlich, dass der typische Linux-Nutzer Hardware verwendet, die kaum ein Entwickler noch berücksichtigt. Direkt nach einer Full-HD Auflösung kommt so die klassische Notebook-Auflösung mit 1366x768 Pixel. Die von den Desktopentwicklern gehypte HiDPI-Varianten spielen keine nennenswerte Rolle. So mancher Desktopentwickler sollte sich diese Daten mal genau anschauen. Das gleiche gilt für den vorhandenen Arbeitsspeicher. Hier dominieren 4 und 8 GB, aber auch 2 GB sind noch oft vorhanden.

Andere Probleme, die in Kommentarspalten und Supportforen viel Raum einnehmen, scheinen nur eine Minderheit der Anwender zu betreffen. So beispielsweise duale Grafikkarten-Lösungen wie NVIDIA Optimus.

Richtige Museumshardware mit weniger als 1 GB Arbeitsspeicher scheint jedoch keine größere Rolle mehr zu spielen. Die zukünftig geplante Aufschlüsselung nach CPU-Kernen dürfte hier noch interessant werden.

Es dürfte der Linux-Entwicklung gut tun, hier mal eine größere Datenbasis zu erhalten. Die schweigende Masse erhält hier indirekt eine Stimme über die nörgelnden Nutzer von Spezialhardware.

Schön wäre ein transparenter Zugriff auf die Daten für alle Interessenten und nicht nur ein gefilterter Bericht als Blogpost.


Bilder: 

Einleitungsbild und Beitragsbild von von geralt via pixabay / Lizenz: CC0 Public Domain

Es gibt zahlreiche Verschlüsselungslösungen für unterschiedliche Betriebssysteme. Manche sind nur für bestimmte Systeme verfügbar, andere haben sich auf spezielle Einsatzzwecke spezialisiert und wieder andere sind so genannte Universallösungen. Eine Übersicht gibt es hier: Verschlüsselung - Eine Übersicht

Einsteiger im Bereich der Verschlüsselung stehen aber bereits am Anfang vor dem fast unlösbaren Problem: Was soll man denn nun verwenden?

Im folgenden werden daher einige grundsätzliche Überlegungen angestellt, die bei der Auswahl der richtigen Lösungen helfen sollen.

Sicherheit

Die verbreiteten Lösungen gelten ausnahmslos als sicher, keine der Lösungen ist erwiesenermaßen gebrochen. Bisher gibt es aber lediglich zu TrueCrypt und VeraCrypt unabhängige Überprüfungen der Sicherheit. Solche Audits fehlen sowohl für die Open Source-Lösungen LUKS/dm-crypt und eCryptFS, als auch für die proprietären Lösungen FileFault von Apple und BitLocker von Microsoft.

Der ewige Konflikt um proprietär vs. quelloffen ist somit vollkommen irrelevant, da eine quelloffene Lösung ohne Überprüfung letztlich auch nicht transparenter ist, als nicht einsehbarer Quellcode. Vor allem bei so komplexen Bereichen wie Verschlüsselung dürfte kein Hobby-Entwickler den Quellcode von LUKS/dm-crypt vollumfänglich prüfen können.

Wenn man also eine nachvollziehbare Sicherheitsüberprüfung zur Entscheidungsgrundlage erklärt, bleibt nur VeraCrypt übrig.

Einsatzzwecke

Betriebssystemverschlüsselung

Die verbreitete Unterstützung von AES-NI-Erweiterungen in Intel- und AMD-Prozessoren hat die Vollverschlüsselung von Betriebssystemen extrem vereinfacht. Früher verschlüsselte man lediglich sensible Bereiche wie z. B. die Nutzerdaten, da eine Verschlüsselung das System erhebliche verlangsamen konnte. Dies ist nun nicht mehr der Fall, weshalb eine Vollverschlüsselung immer zu empfehlen ist. Man umgeht dadurch das Risiko, dass sensible Daten versehentlich in unverschlüsselten Bereichen abgelegt werden.

Bei der Verschlüsselung des gesamten Betriebssystems ist die Interoperabilität, d. h. die systemübergreifende Verfügbarkeit, von nachrangiger Bedeutung. Es empfiehlt sich daher in der Regel die native Verschlüsselungslösung zu verwenden. Diese ist meist am besten integriert und auf Fehler getestet, während unabhängige Lösungen wie VeraCrypt mit modernen Systemen wie UEFI und Secure Boot immer noch Probleme haben.

Dies bedeutet für Windows den Rückgriff auf BitLocker und macOS auf FileVault. Bei Linux eignet sich gegenwärtig vor allem ein LVM-Container mit LUKS/dm-crypt. Hier existieren zwar auch alternative Lösungen für die native Verschlüsselung von ext4 oder eCryptFS. Die Entwicklung von letzterem ist jedoch ungewiss und ersteres wird momentan von keiner Desktop-Distribution unterstützt.

Externe Speichermedien

Externe Speichermedien wie USB-Sticks oder externe Festplatten sind in ein vollumfängliches Verschlüsselungskonzept einzubeziehen. Je nach Betriebssystemlandschaft muss man hier unterschiedliche Kriterien beachten. Sofern man eine vollkommen homogenes Ökosystem, beispielsweise mit ausschließlich Linux-Systemen, einsetzt kann man auch die dafür verfügbare native Lösung verwenden. Sowohl LUKS/dm-crypt, als auch BitLocker und FileVault unterstützen die Verschlüsselung externer Speichermedien.

Die meisten Anwender besitzen jedoch heterogene Systemlandschaften, weshalb hier VeraCrypt seine Stärke ausspielen kann. Dieses ist nämlich für alle großen und nicht so großen Betriebssysteme verfügbar. Neben Windows, macOS und Linux eben auch FreeBSD. Dies ist ein unschlagbarer Vorteil, der insbesondere bei USB-Sticks, die ja oft dem Datenaustausch dienen, interessant ist.

Cloud

Nur sehr wenige Anbieter unterstützen clientseitige Verschlüsselung. Darunter versteht man ein Verschlüsselungsverfahren auf dem Endgerät, bei dem nur die verschlüsselten Dateien in die Cloud hochgeladen und auf anderen Endgeräten wieder entschlüsselt werden. Bei den meisten Anbietern ist lediglich der Transportweg verschlüsselt, während die Datei beim Cloud-Dienstleister unverschlüsselt und ungesichert liegt.

Container-basierte Verfahren wie die oben genannten Verschlüsselungsmechanismen sind für Cloud-Verschlüsselung meist ungeeignet. Nur wenige Anbieter unterstützen den so genannten Delta-Sync, bei dem lediglich die geänderten Teile einer Datei hochgeladen werden. Die meisten Anbieter laden den kompletten Container neu hoch, was unter Umständen mehrere GB sein können.

Daher benötigt man für die Cloud-Verschlüsselung eine Lösung, die dateibasiert arbeitet. EncFS gilt inzwischen als gebrochen, freie Alternativen wie CryFS sind noch nicht stabil genug. Bisher gibt es lediglich die komplett oder zumindest teilweise proprietären Lösungen Boxcryptor und Cryptomator. Nutzer mit einem reinen Apple-Ökosystem können zudem einen Blick auf SimpleumSafe werfen.

Sinnvolle Cloudverschlüsselung hängt vor allem vom konkreten Einsatzszenario und dem Betriebssystemumfeld ab. Fast keine Lösung funktioniert gleichermaßen mit allen Betriebssystemen und die Mechanismen der Verschlüsselung unterminieren einige Anwendungsfälle, weshalb hier individuell geprüft werden muss.

Einzelne Dateien

Manchmal möchte man auch nur einzelne Dateien verschlüsseln. Hier eignet sich sehr gut die OpenPGP-Implementierung GnuPG, sofern diese auf dem System eingerichtet ist. Hier lassen sich Dateien entweder mit dem eigenen öffentlichen Schlüssel sichern, wodurch bei der Entschlüsselung eine Passwortabfrage erfolgt. Ist das Ziel die Weitergabe an eine andere Person muss dessen öffentlicher Schlüssel vorliegen. LibreOffice unterstützt dieses Verfahren inzwischen auch direkt.

Verfügt man über keine GnuPG Installation oder kennt nicht den öffentlichen Schlüssel der Zielperson kann man auch ein passwortgeschütztes Archiv erstellen. Die meisten Lösungen untersützen AES-256 Verschlüsselung und sind somit lediglich sicher.

Zusammenfassung

Betriebssysteme sollten mit den nativen Verschlüsselungsmethoden gesichert werden. Keine von diesen ist gebrochen und VeraCrypt arbeitet auf UEFI-Systemen nicht zuverlässig genug.

Bei externen Speichermedien macht es jedoch - abhängig vom eigenen Nutzungsszenario - Sinn auf VeraCrypt zu setzen, da dieses für jedes Betriebssystem zur Verfügung steht und man sich nicht auf ein Ökosystem festlegt.

Cloudlösungen sind eine eigene Kategorie, da Container-basierte Verschlüsselung bei den meisten Anbietern nicht effizient genug arbeitet. Die Platzhirsche sind hier Cryptomator und Boxcryptor. Beide sind nicht komplett kostenlos, sondern der Preis hängt ab von der Nutzung auf mobilen Endgeräten und der Anzahl der Geräte. Sofern man experimentierfreudig ist kann man auch Individuellösungen wie CryFS/Plasma Vault oder SimpleumSafe ausprobieren.

Eine vollständige Datenverschlüsselung über unterschiedliche Geräte, Speichermedien und Netzspeicher hinweg, führt also meist zu einer vielfältigen Auswahl an Verschlüsselungslösungen.


Bilder:

Einleitungs- und Beitragsbild von Tumisu via pixabay / Lizenz: CC0 Creative Commons

"

24. Juni 2018

Die verbreitete Verschlüsselungslösung TrueCrypt wurde in einer aufsehenerregenden Aktion 2014 eingestellt. Infolgedessen etablierten sich eine Reihe von Forks, unter denen VeraCrypt heute die populärste Lösung sein dürfte. Sehr viele Anwender nutzen aber immer noch die originale TrueCrypt-Lösung in Version 7.1a.

Neben grundsätzlichen Bedenken gegen neue Lösungen in diesem sicherheitsensiblen Bereich, dürfte dies auch daran liegen, dass neue VeraCrypt Container inkompatibel mit der alten TrueCrypt-Lösung sind (VeraCrypt kann aber durchaus auch alte TrueCrypt Container verarbeiten) und ein Wechsel somit auf allen Systemen erfolgen muss, die auf den Container zugreifen können sollen. Man verweist in dem Zusammenhang gerne auf den Audit von 2015, bei dem keine schwerwiegenden Lücken gefunden wurden.

Das ist aber nicht mehr zeitgemäß, da seitdem zahlreiche Sicherheitslücken gefunden wurden. Googles Projekt Zero hatte bereits 2015 sicherheitsrelevante Lücken unter den Nummern CVE-2015-7358 und CVE-2015-7359 veröffentlicht. Beide sind in VeraCrypt bereits behoben, in der eingestellten letzten TrueCrypt-Version natugemäß nicht.

Bei einem Audit von VeraCrypt nahm nochmal den vorangegangenen Audit unter die Lupe und vor allem die neu hinzugefügten Bestandteile. Hier fand man einige Lücken, was zur Kritik an VeraCrypt führte und manche in ihrem Festhalten an TrueCrypt bestätigte. Diese Lücken können jedoch behoben werden, da VeraCrypt aktiv entwickelt wird. Problematisch sind hier insbesondere enthaltene Bibliotheken wie beispielsweise zlib, die in der Vergangenheit schwere Sicherheitslücken aufwiesen. TrueCrypt ist auf uralte Versionen oder sogar dubiose Forks festgenagelt, da die Macher die Software bereits in den Jahren vor der ihrer Einstellung nur noch schleppend entwickelten. Diese Bibliotheken von Dritten sind sowieso ein großes Problem, da hier faktisch separate Audits notwendig sind um die Sicherheit zu gewährleisten.

Teilweise konnte man bei VeraCrypt unproblematische Fehler nicht schließen, um die Kompatibilität zu TrueCrypt nicht zu verlieren. Hier wird die verbreitete Nutzung des originalen TrueCrypt zum Risiko für alle anderen Anwender.

Zusammengefasst: Ersetzt endlich TrueCrypt durch einen Nachfolger. VeraCrypt dürfte hier die Lösung der Wahl sein.


Bilder:

Einleitungs- und Beitragsbild von Tumisu via pixabay / Lizenz: CC0 Creative Commons

"

23. Juni 2018

Linux erfindet sich gerade neu. Nicht optisch oder durch große strukturelle Änderungen am Desktop, sondern unter der Oberfläche. Erst kam systemd, nun schränken viele Distributionen den Root-Zugriff massiv ein und setzen stattdessen auf PolicyKit und langsam aber sicher löst Wayland das alte X11 ab. Besonders sichtbar sind zudem die neuen Formate für Apps, die den klassischen Dualismus aus RPM und DEB durcheinander bringen.

Besonders chaotisch verläuft dieser Prozess bei Ubuntu. Nachdem Canonical letztes Jahr seine Eigenentwicklungen Unity 8 und MIR auf das Abstellgleis geschoben hat, ist sowieso unklar, wie genau der Plan auf dem Desktop aussieht und wie viele Ressourcen Canonical noch bereit ist zu investieren. Ein Blick auf die Homepage zeigt, dass der Desktop alles andere als im Fokus steht.

Zudem ist Ubuntu strukturell bedingt eine chaotische Distribution. Canonical entwickelt hinter verschlossenen Türen die Hauptvariante Ubuntu und die Derivate entwickeln ihre jeweilige Variante losgelöst von den anderen Projekten. Wenn man sich die Mailinglisten so anschaut, verläuft die Kommunikation da alles andere als optimal. Die einzelnen Projekte referenzieren sich auf den Internetauftritten nicht mal unbedingt gegenseitig.

Canonical scheint momentan mit den neuen Snaps auf dem Desktop zu experimentieren. Testweise lieferte man deshalb für die Hauptvariante mit GNOME einige Programme in 18.04 als Snap aus. Ein Experiment, das man bei den Ubuntu MATE-Entwicklern auch versucht. Sollten die Tests nicht vollkommen scheitern könnte dies die Zukunft der Programm-Installation aus dem Linux-Desktop liegen. Insbesondere Drittabieter wie Spotify haben diesen Weg bereits aufgegriffen.

Andere Projekte wie Kubuntu wissen noch nicht mal, ob sie eine LTS oder eine Rolling Release Distribution sein wollen. Wenn man sich diese Diskussion so anschaut, kann man erhebliche Zweifel daran entwickeln, dass die Kubuntu-Entwickler das Ubuntu-Entwicklungssystem noch unterstützen. Anstatt die bestehenden LTS-Varianten mit Elan zu pflegen und neue Bugfix-Versionen über das Updatesystem zu verteilen, beschäftigt man sich mit einem PPA-Monster, über das man zukünftig sogar das Toolkit aktualisieren will. Kubuntu bewegt sich damit eher in eine Richtung wie KDE neon und behandelt die Ubuntu Veröffentlichungen als Snapshots der eigenen Entwicklung.

Lubuntu und Xubuntu sind davon gar nicht betroffen. Ersteres versucht seit Jahren LXQT zu implementieren und letzteres braucht für jedes Release letztlich nur ein neues Wallpaper, da sich kaum was tut.

Wenn man sich diese Entwicklung so ansieht, fragt man sich, ob Ubuntu und die offiziellen Derivate überhaupt noch eine Distribution sind. Abgesehen von Ubuntu-Minimal und Standard als Unterbau teilt man nicht mehr viel und diesen Unterbau haben Mint oder KDE neon auch.

Im Grunde genommen ist diese Entwicklung nicht gänzlich neu. Ubuntu war durch die Einbeziehung von Derivaten schon immer ein unübersichtliches System. Andere Distributionen haben ihre Projekte aber zwischenzeitlich deutlich gestrafft und eine fokussierte Idee entwickelt, welche Zielgruppen ihre Distribution ansprechen möchte. Die Ubuntu-Familie möchte scheinbar alles gleichzeitig abdecken.


Bilder:

Einleitungs- und Beitragsbild von 3dman_eu via pixabay / Lizenz: CC0 Creative Commons

"

20. Juni 2018

Elasticsearch in Nextcloud 13 einbinden

Suchfunktionen im Allgemeinen sind manchmal mehr Schmerz als Hilfe (siehe Microsofts Bing 🤷‍♂️). Oft findet man Dinge die man sucht nicht, oder aber Dinge, die man gar nicht gesucht hat.
Wer viele Dateien in seiner Nextcloud nutzt, kann natürlich auch schnell den Überblick verlieren.

Mit Elasticsearch gibt es eine mächtige und trotzdem sehr schnelle auf Java basierende Suche, die sich mittels Erweiterungen auch in Nextcloud integrieren lässt.

Elasticsearch installieren

Elasticsearch benötigt zum ausführen eine Java-Umgebung. Folgende Anleitung beschreibt wie die Installation unter Debian aussieht.
Dort lässt sich ohne weiteres hinzufügen von Repositorys das OpenJDK installieren.

apt-get install openjdk-8-jre

Ein ausführen von java -version sollte anschließend wie folgt aussehen:

root@hive:/# java -version
openjdk version "1.8.0_171"
OpenJDK Runtime Environment (build 1.8.0_171-8u171-b11-1~deb9u1-b11)
OpenJDK 64-Bit Server VM (build 25.171-b11, mixed mode)

Anschließend richten wir das Repository für Elasticsearch ein und installieren die Suche. Dies geschieht mittels folgenden Befehlen.

wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | apt-key add -
apt-get install apt-transport-https
echo "deb https://artifacts.elastic.co/packages/6.x/apt stable main" | tee -a /etc/apt/sources.list.d/elastic-6.x.list
apt-get update && sudo apt-get install elasticsearch

systemctl enable elasticsearch
systemctl start elasticsearch

Sofern die Installation von Elasticsearch erfolgreich war, sollte ein curl -X GET "localhost:9200/" nun folgendes ausgeben:

root@hive:/# curl -X GET "localhost:9200/"
{
  "name" : "fhCp22D",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "LVEyx6SIREq5FPX1ee5TgA",
  "version" : {
    "number" : "6.3.0",
    "build_flavor" : "default",
    "build_type" : "deb",
    "build_hash" : "424e937",
    "build_date" : "2018-06-11T23:38:03.357887Z",
    "build_snapshot" : false,
    "lucene_version" : "7.3.1",
    "minimum_wire_compatibility_version" : "5.6.0",
    "minimum_index_compatibility_version" : "5.0.0"
  },
  "tagline" : "You Know, for Search"
}

Damit auch PDF, XML und weitere Dateien indexiert werden können, muss noch ein Plugin für Elasticsearch installiert werden:

/usr/share/elasticsearch/bin/elasticsearch-plugin install ingest-attachment

Öffnet nun die Konfiguration von Elasticsearch unter /etc/elasticsearch/elasticsearch.yml und setzt die Variable network.host auf 127.0.0.1

Anschließend Elasticsearch einmal neustarten und mittels netstat prüfen, ob Elasticsearch und Java auf den Ports 9200 und 9300 lauschen.

Nextcloud konfigurieren

Widmen wir uns nun der Nextcloud. Wir benötigen drei Erweiterungen aus dem Appstore.

Elasticsearch in Nextcloud 13 einbinden

Installiert werden müssen die folgenden drei:

Nach Aktivierung, wechselt in den Einstellungen in den Bereich der Volltextsuche.
Als Search Plattform wählt ihr Elasticsearch aus, die Address of the Servlet lautet http://localhost:9200/ und den Index könnt ihr frei benennen. Bei mehreren Nextcloud-Instanzen macht ein eindeutiger Index natürlich deutlich Sinn, bei mir lautet dieser beispielsweise nc_cloud1.

Abschließend muss die Indexierung einmalig mittels occ gestartet werden:

./occ fulltextsearch:index

Zudem ist es erforderlich, dass nach einer Aktualisierung der Erweiterung der Index einmal zurückgesetzt und neu indexiert wird:

./occ fulltextsearch:reset
./occ fulltextsearch:index

Suchfunktionen im Allgemeinen sind manchmal mehr Schmerz als Hilfe (siehe Microsofts Bing ?‍♂️). Oft findet man Dinge die man sucht nicht, oder aber Dinge, die man gar nicht gesucht hat.
Wer viele Dateien in seiner Nextcloud nutzt, kann natürlich auch schnell den Überblick verlieren.

Mit Elasticsearch gibt es eine mächtige und trotzdem sehr schnelle auf Java basierende Suche, die sich mittels Erweiterungen auch in Nextcloud integrieren lässt.

Elasticsearch installieren

Elasticsearch benötigt zum ausführen eine Java-Umgebung. Folgende Anleitung beschreibt wie die Installation unter Debian aussieht.
Dort lässt sich ohne weiteres hinzufügen von Repositorys das OpenJDK installieren.

apt-get install openjdk-8-jre

Ein ausführen von java -version sollte anschließend wie folgt aussehen:

root@hive:/# java -versionopenjdk version "1.8.0_171"OpenJDK Runtime Environment (build 1.8.0_171-8u171-b11-1~deb9u1-b11)OpenJDK 64-Bit Server VM (build 25.171-b11, mixed mode)

Anschließend richten wir das Repository für Elasticsearch ein und installieren die Suche. Dies geschieht mittels folgenden Befehlen.

wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | apt-key add -apt-get install apt-transport-httpsecho "deb https://artifacts.elastic.co/packages/6.x/apt stable main" | tee -a /etc/apt/sources.list.d/elastic-6.x.listapt-get update && sudo apt-get install elasticsearchsystemctl enable elasticsearchsystemctl start elasticsearch

Sofern die Installation von Elasticsearch erfolgreich war, sollte ein curl -X GET „localhost:9200/“ nun folgendes ausgeben:

root@hive:/# curl -X GET "localhost:9200/"{  "name" : "fhCp22D",  "cluster_name" : "elasticsearch",  "cluster_uuid" : "LVEyx6SIREq5FPX1ee5TgA",  "version" : {    "number" : "6.3.0",    "build_flavor" : "default",    "build_type" : "deb",    "build_hash" : "424e937",    "build_date" : "2018-06-11T23:38:03.357887Z",    "build_snapshot" : false,    "lucene_version" : "7.3.1",    "minimum_wire_compatibility_version" : "5.6.0",    "minimum_index_compatibility_version" : "5.0.0"  },  "tagline" : "You Know, for Search"}

Damit auch PDF, XML und weitere Dateien indexiert werden können, muss noch ein Plugin für Elasticsearch installiert werden:

/usr/share/elasticsearch/bin/elasticsearch-plugin install ingest-attachment

Öffnet nun die Konfiguration von Elasticsearch unter /etc/elasticsearch/elasticsearch.yml und setzt die Variable network.host auf 127.0.0.1

Anschließend Elasticsearch einmal neustarten und mittels netstat prüfen, ob Elasticsearch und Java auf den Ports 9200 und 9300 lauschen.

Nextcloud konfigurieren

Widmen wir uns nun der Nextcloud. Wir benötigen drei Erweiterungen aus dem Appstore.

alt

Installiert werden müssen die folgenden drei:

Nach Aktivierung, wechselt in den Einstellungen in den Bereich der Volltextsuche.
Als Search Plattform wählt ihr Elasticsearch aus, die Address of the Servlet lautet http://localhost:9200/ und den Index könnt ihr frei benennen. Bei mehreren Nextcloud-Instanzen macht ein eindeutiger Index natürlich deutlich Sinn, bei mir lautet dieser beispielsweise nc_cloud1.

Abschließend muss die Indexierung einmalig mittels occ gestartet werden:

./occ fulltextsearch:index

Zudem ist es erforderlich, dass nach einer Aktualisierung der Erweiterung der Index einmal zurückgesetzt und neu indexiert wird:

./occ fulltextsearch:reset./occ fulltextsearch:index
Elasticsearch in Nextcloud 13 einbinden

Suchfunktionen im Allgemeinen sind manchmal mehr Schmerz als Hilfe (siehe Microsofts Bing 🤷‍♂️). Oft findet man Dinge die man sucht nicht, oder aber Dinge, die man gar nicht gesucht hat.
Wer viele Dateien in seiner Nextcloud nutzt, kann natürlich auch schnell den Überblick verlieren.

Mit Elasticsearch gibt es eine mächtige und trotzdem sehr schnelle auf Java basierende Suche, die sich mittels Erweiterungen auch in Nextcloud integrieren lässt.

Elasticsearch installieren

Elasticsearch benötigt zum ausführen eine Java-Umgebung. Folgende Anleitung beschreibt wie die Installation unter Debian aussieht.
Dort lässt sich ohne weiteres hinzufügen von Repositorys das OpenJDK installieren.

apt-get install openjdk-8-jre

Ein ausführen von java -version sollte anschließend wie folgt aussehen:

root@hive:/# java -version
openjdk version "1.8.0_171"
OpenJDK Runtime Environment (build 1.8.0_171-8u171-b11-1~deb9u1-b11)
OpenJDK 64-Bit Server VM (build 25.171-b11, mixed mode)

Anschließend richten wir das Repository für Elasticsearch ein und installieren die Suche. Dies geschieht mittels folgenden Befehlen.

wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | apt-key add -
apt-get install apt-transport-https
echo "deb https://artifacts.elastic.co/packages/6.x/apt stable main" | tee -a /etc/apt/sources.list.d/elastic-6.x.list
apt-get update && sudo apt-get install elasticsearch

systemctl enable elasticsearch
systemctl start elasticsearch

Sofern die Installation von Elasticsearch erfolgreich war, sollte ein curl -X GET "localhost:9200/" nun folgendes ausgeben:

root@hive:/# curl -X GET "localhost:9200/"
{
  "name" : "fhCp22D",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "LVEyx6SIREq5FPX1ee5TgA",
  "version" : {
    "number" : "6.3.0",
    "build_flavor" : "default",
    "build_type" : "deb",
    "build_hash" : "424e937",
    "build_date" : "2018-06-11T23:38:03.357887Z",
    "build_snapshot" : false,
    "lucene_version" : "7.3.1",
    "minimum_wire_compatibility_version" : "5.6.0",
    "minimum_index_compatibility_version" : "5.0.0"
  },
  "tagline" : "You Know, for Search"
}

Damit auch PDF, XML und weitere Dateien indexiert werden können, muss noch ein Plugin für Elasticsearch installiert werden:

/usr/share/elasticsearch/bin/elasticsearch-plugin install ingest-attachment

Öffnet nun die Konfiguration von Elasticsearch unter /etc/elasticsearch/elasticsearch.yml und setzt die Variable network.host auf 127.0.0.1

Anschließend Elasticsearch einmal neustarten und mittels netstat prüfen, ob Elasticsearch und Java auf den Ports 9200 und 9300 lauschen.

Nextcloud konfigurieren

Widmen wir uns nun der Nextcloud. Wir benötigen drei Erweiterungen aus dem Appstore.

Elasticsearch in Nextcloud 13 einbinden

Installiert werden müssen die folgenden drei:

Nach Aktivierung, wechselt in den Einstellungen in den Bereich der Volltextsuche.
Als Search Plattform wählt ihr Elasticsearch aus, die Address of the Servlet lautet http://localhost:9200/ und den Index könnt ihr frei benennen. Bei mehreren Nextcloud-Instanzen macht ein eindeutiger Index natürlich deutlich Sinn, bei mir lautet dieser beispielsweise nc_cloud1.

Abschließend muss die Indexierung einmalig mittels occ gestartet werden:

./occ fulltextsearch:index

Zudem ist es erforderlich, dass nach einer Aktualisierung der Erweiterung der Index einmal zurückgesetzt und neu indexiert wird:

./occ fulltextsearch:reset
./occ fulltextsearch:index
Elasticsearch in Nextcloud 13 einbinden

Suchfunktionen im Allgemeinen sind manchmal mehr Schmerz als Hilfe (siehe Microsofts Bing 🤷‍♂️). Oft findet man Dinge die man sucht nicht, oder aber Dinge, die man gar nicht gesucht hat.
Wer viele Dateien in seiner Nextcloud nutzt, kann natürlich auch schnell den Überblick verlieren.

Mit Elasticsearch gibt es eine mächtige und trotzdem sehr schnelle auf Java basierende Suche, die sich mittels Erweiterungen auch in Nextcloud integrieren lässt.

Elasticsearch installieren

Elasticsearch benötigt zum ausführen eine Java-Umgebung. Folgende Anleitung beschreibt wie die Installation unter Debian aussieht.
Dort lässt sich ohne weiteres hinzufügen von Repositorys das OpenJDK installieren.

apt-get install openjdk-8-jre

Ein ausführen von java -version sollte anschließend wie folgt aussehen:

root@hive:/# java -version
openjdk version "1.8.0_171"
OpenJDK Runtime Environment (build 1.8.0_171-8u171-b11-1~deb9u1-b11)
OpenJDK 64-Bit Server VM (build 25.171-b11, mixed mode)

Anschließend richten wir das Repository für Elasticsearch ein und installieren die Suche. Dies geschieht mittels folgenden Befehlen.

wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | apt-key add -
apt-get install apt-transport-https
echo "deb https://artifacts.elastic.co/packages/6.x/apt stable main" | tee -a /etc/apt/sources.list.d/elastic-6.x.list
apt-get update && sudo apt-get install elasticsearch

systemctl enable elasticsearch
systemctl start elasticsearch

Sofern die Installation von Elasticsearch erfolgreich war, sollte ein curl -X GET "localhost:9200/" nun folgendes ausgeben:

root@hive:/# curl -X GET "localhost:9200/"
{
  "name" : "fhCp22D",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "LVEyx6SIREq5FPX1ee5TgA",
  "version" : {
    "number" : "6.3.0",
    "build_flavor" : "default",
    "build_type" : "deb",
    "build_hash" : "424e937",
    "build_date" : "2018-06-11T23:38:03.357887Z",
    "build_snapshot" : false,
    "lucene_version" : "7.3.1",
    "minimum_wire_compatibility_version" : "5.6.0",
    "minimum_index_compatibility_version" : "5.0.0"
  },
  "tagline" : "You Know, for Search"
}

Damit auch PDF, XML und weitere Dateien indexiert werden können, muss noch ein Plugin für Elasticsearch installiert werden:

/usr/share/elasticsearch/bin/elasticsearch-plugin install ingest-attachment

Öffnet nun die Konfiguration von Elasticsearch unter /etc/elasticsearch/elasticsearch.yml und setzt die Variable network.host auf 127.0.0.1

Anschließend Elasticsearch einmal neustarten und mittels netstat prüfen, ob Elasticsearch und Java auf den Ports 9200 und 9300 lauschen.

Nextcloud konfigurieren

Widmen wir uns nun der Nextcloud. Wir benötigen drei Erweiterungen aus dem Appstore.

Elasticsearch in Nextcloud 13 einbinden

Installiert werden müssen die folgenden drei:

Nach Aktivierung, wechselt in den Einstellungen in den Bereich der Volltextsuche.
Als Search Plattform wählt ihr Elasticsearch aus, die Address of the Servlet lautet http://localhost:9200/ und den Index könnt ihr frei benennen. Bei mehreren Nextcloud-Instanzen macht ein eindeutiger Index natürlich deutlich Sinn, bei mir lautet dieser beispielsweise nc_cloud1.

Abschließend muss die Indexierung einmalig mittels occ gestartet werden:

./occ fulltextsearch:index

Zudem ist es erforderlich, dass nach einer Aktualisierung der Erweiterung der Index einmal zurückgesetzt und neu indexiert wird:

./occ fulltextsearch:reset
./occ fulltextsearch:index
Elasticsearch in Nextcloud 13 einbinden

Suchfunktionen im Allgemeinen sind manchmal mehr Schmerz als Hilfe (siehe Microsofts Bing 🤷‍♂️). Oft findet man Dinge die man sucht nicht, oder aber Dinge, die man gar nicht gesucht hat.
Wer viele Dateien in seiner Nextcloud nutzt, kann natürlich auch schnell den Überblick verlieren.

Mit Elasticsearch gibt es eine mächtige und trotzdem sehr schnelle auf Java basierende Suche, die sich mittels Erweiterungen auch in Nextcloud integrieren lässt.

Elasticsearch installieren

Elasticsearch benötigt zum ausführen eine Java-Umgebung. Folgende Anleitung beschreibt wie die Installation unter Debian aussieht.
Dort lässt sich ohne weiteres hinzufügen von Repositorys das OpenJDK installieren.

apt-get install openjdk-8-jre

Ein ausführen von java -version sollte anschließend wie folgt aussehen:

root@hive:/# java -version
openjdk version "1.8.0_171"
OpenJDK Runtime Environment (build 1.8.0_171-8u171-b11-1~deb9u1-b11)
OpenJDK 64-Bit Server VM (build 25.171-b11, mixed mode)

Anschließend richten wir das Repository für Elasticsearch ein und installieren die Suche. Dies geschieht mittels folgenden Befehlen.

wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | apt-key add -
apt-get install apt-transport-https
echo "deb https://artifacts.elastic.co/packages/6.x/apt stable main" | tee -a /etc/apt/sources.list.d/elastic-6.x.list
apt-get update && sudo apt-get install elasticsearch

systemctl enable elasticsearch
systemctl start elasticsearch

Sofern die Installation von Elasticsearch erfolgreich war, sollte ein curl -X GET "localhost:9200/" nun folgendes ausgeben:

root@hive:/# curl -X GET "localhost:9200/"
{
  "name" : "fhCp22D",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "LVEyx6SIREq5FPX1ee5TgA",
  "version" : {
    "number" : "6.3.0",
    "build_flavor" : "default",
    "build_type" : "deb",
    "build_hash" : "424e937",
    "build_date" : "2018-06-11T23:38:03.357887Z",
    "build_snapshot" : false,
    "lucene_version" : "7.3.1",
    "minimum_wire_compatibility_version" : "5.6.0",
    "minimum_index_compatibility_version" : "5.0.0"
  },
  "tagline" : "You Know, for Search"
}

Damit auch PDF, XML und weitere Dateien indexiert werden können, muss noch ein Plugin für Elasticsearch installiert werden:

/usr/share/elasticsearch/bin/elasticsearch-plugin install ingest-attachment

Öffnet nun die Konfiguration von Elasticsearch unter /etc/elasticsearch/elasticsearch.yml und setzt die Variable network.host auf 127.0.0.1

Anschließend Elasticsearch einmal neustarten und mittels netstat prüfen, ob Elasticsearch und Java auf den Ports 9200 und 9300 lauschen.

Nextcloud konfigurieren

Widmen wir uns nun der Nextcloud. Wir benötigen drei Erweiterungen aus dem Appstore.

Elasticsearch in Nextcloud 13 einbinden

Installiert werden müssen die folgenden drei:

Nach Aktivierung, wechselt in den Einstellungen in den Bereich der Volltextsuche.
Als Search Plattform wählt ihr Elasticsearch aus, die Address of the Servlet lautet http://localhost:9200/ und den Index könnt ihr frei benennen. Bei mehreren Nextcloud-Instanzen macht ein eindeutiger Index natürlich deutlich Sinn, bei mir lautet dieser beispielsweise nc_cloud1.

Abschließend muss die Indexierung einmalig mittels occ gestartet werden:

./occ fulltextsearch:index

Zudem ist es erforderlich, dass nach einer Aktualisierung der Erweiterung der Index einmal zurückgesetzt und neu indexiert wird:

./occ fulltextsearch:reset
./occ fulltextsearch:index
Elasticsearch in Nextcloud 13 einbinden

Suchfunktionen im Allgemeinen sind manchmal mehr Schmerz als Hilfe (siehe Microsofts Bing 🤷‍♂️). Oft findet man Dinge die man sucht nicht, oder aber Dinge, die man gar nicht gesucht hat.
Wer viele Dateien in seiner Nextcloud nutzt, kann natürlich auch schnell den Überblick verlieren.

Mit Elasticsearch gibt es eine mächtige und trotzdem sehr schnelle auf Java basierende Suche, die sich mittels Erweiterungen auch in Nextcloud integrieren lässt.

Elasticsearch installieren

Elasticsearch benötigt zum ausführen eine Java-Umgebung. Folgende Anleitung beschreibt wie die Installation unter Debian aussieht.
Dort lässt sich ohne weiteres hinzufügen von Repositorys das OpenJDK installieren.

apt-get install openjdk-8-jre

Ein ausführen von java -version sollte anschließend wie folgt aussehen:

root@hive:/# java -version
openjdk version "1.8.0_171"
OpenJDK Runtime Environment (build 1.8.0_171-8u171-b11-1~deb9u1-b11)
OpenJDK 64-Bit Server VM (build 25.171-b11, mixed mode)

Anschließend richten wir das Repository für Elasticsearch ein und installieren die Suche. Dies geschieht mittels folgenden Befehlen.

wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | apt-key add -
apt-get install apt-transport-https
echo "deb https://artifacts.elastic.co/packages/6.x/apt stable main" | tee -a /etc/apt/sources.list.d/elastic-6.x.list
apt-get update && sudo apt-get install elasticsearch

systemctl enable elasticsearch
systemctl start elasticsearch

Sofern die Installation von Elasticsearch erfolgreich war, sollte ein curl -X GET "localhost:9200/" nun folgendes ausgeben:

root@hive:/# curl -X GET "localhost:9200/"
{
  "name" : "fhCp22D",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "LVEyx6SIREq5FPX1ee5TgA",
  "version" : {
    "number" : "6.3.0",
    "build_flavor" : "default",
    "build_type" : "deb",
    "build_hash" : "424e937",
    "build_date" : "2018-06-11T23:38:03.357887Z",
    "build_snapshot" : false,
    "lucene_version" : "7.3.1",
    "minimum_wire_compatibility_version" : "5.6.0",
    "minimum_index_compatibility_version" : "5.0.0"
  },
  "tagline" : "You Know, for Search"
}

Damit auch PDF, XML und weitere Dateien indexiert werden können, muss noch ein Plugin für Elasticsearch installiert werden:

/usr/share/elasticsearch/bin/elasticsearch-plugin install ingest-attachment

Öffnet nun die Konfiguration von Elasticsearch unter /etc/elasticsearch/elasticsearch.yml und setzt die Variable network.host auf 127.0.0.1

Anschließend Elasticsearch einmal neustarten und mittels netstat prüfen, ob Elasticsearch und Java auf den Ports 9200 und 9300 lauschen.

Nextcloud konfigurieren

Widmen wir uns nun der Nextcloud. Wir benötigen drei Erweiterungen aus dem Appstore.

Elasticsearch in Nextcloud 13 einbinden

Installiert werden müssen die folgenden drei:

Nach Aktivierung, wechselt in den Einstellungen in den Bereich der Volltextsuche.
Als Search Plattform wählt ihr Elasticsearch aus, die Address of the Servlet lautet http://localhost:9200/ und den Index könnt ihr frei benennen. Bei mehreren Nextcloud-Instanzen macht ein eindeutiger Index natürlich deutlich Sinn, bei mir lautet dieser beispielsweise nc_cloud1.

Abschließend muss die Indexierung einmalig mittels occ gestartet werden:

./occ fulltextsearch:index

Zudem ist es erforderlich, dass nach einer Aktualisierung der Erweiterung der Index einmal zurückgesetzt und neu indexiert wird:

./occ fulltextsearch:reset
./occ fulltextsearch:index

Suchfunktionen im Allgemeinen sind manchmal mehr Schmerz als Hilfe (siehe Microsofts Bing ?‍♂️). Oft findet man Dinge die man sucht nicht, oder aber Dinge, die man gar nicht gesucht hat.
Wer viele Dateien in seiner Nextcloud nutzt, kann natürlich auch schnell den Überblick verlieren.

Mit Elasticsearch gibt es eine mächtige und trotzdem sehr schnelle auf Java basierende Suche, die sich mittels Erweiterungen auch in Nextcloud integrieren lässt.

Elasticsearch installieren

Elasticsearch benötigt zum ausführen eine Java-Umgebung. Folgende Anleitung beschreibt wie die Installation unter Debian aussieht.
Dort lässt sich ohne weiteres hinzufügen von Repositorys das OpenJDK installieren.

apt-get install openjdk-8-jre

Ein ausführen von java -version sollte anschließend wie folgt aussehen:

root@hive:/# java -versionopenjdk version "1.8.0_171"OpenJDK Runtime Environment (build 1.8.0_171-8u171-b11-1~deb9u1-b11)OpenJDK 64-Bit Server VM (build 25.171-b11, mixed mode)

Anschließend richten wir das Repository für Elasticsearch ein und installieren die Suche. Dies geschieht mittels folgenden Befehlen.

wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | apt-key add -apt-get install apt-transport-httpsecho "deb https://artifacts.elastic.co/packages/6.x/apt stable main" | tee -a /etc/apt/sources.list.d/elastic-6.x.listapt-get update && sudo apt-get install elasticsearchsystemctl enable elasticsearchsystemctl start elasticsearch

Sofern die Installation von Elasticsearch erfolgreich war, sollte ein curl -X GET „localhost:9200/“ nun folgendes ausgeben:

root@hive:/# curl -X GET "localhost:9200/"{  "name" : "fhCp22D",  "cluster_name" : "elasticsearch",  "cluster_uuid" : "LVEyx6SIREq5FPX1ee5TgA",  "version" : {    "number" : "6.3.0",    "build_flavor" : "default",    "build_type" : "deb",    "build_hash" : "424e937",    "build_date" : "2018-06-11T23:38:03.357887Z",    "build_snapshot" : false,    "lucene_version" : "7.3.1",    "minimum_wire_compatibility_version" : "5.6.0",    "minimum_index_compatibility_version" : "5.0.0"  },  "tagline" : "You Know, for Search"}

Damit auch PDF, XML und weitere Dateien indexiert werden können, muss noch ein Plugin für Elasticsearch installiert werden:

/usr/share/elasticsearch/bin/elasticsearch-plugin install ingest-attachment

Öffnet nun die Konfiguration von Elasticsearch unter /etc/elasticsearch/elasticsearch.yml und setzt die Variable network.host auf 127.0.0.1

Anschließend Elasticsearch einmal neustarten und mittels netstat prüfen, ob Elasticsearch und Java auf den Ports 9200 und 9300 lauschen.

Nextcloud konfigurieren

Widmen wir uns nun der Nextcloud. Wir benötigen drei Erweiterungen aus dem Appstore.

alt

Installiert werden müssen die folgenden drei:

Nach Aktivierung, wechselt in den Einstellungen in den Bereich der Volltextsuche.
Als Search Plattform wählt ihr Elasticsearch aus, die Address of the Servlet lautet http://localhost:9200/ und den Index könnt ihr frei benennen. Bei mehreren Nextcloud-Instanzen macht ein eindeutiger Index natürlich deutlich Sinn, bei mir lautet dieser beispielsweise nc_cloud1.

Abschließend muss die Indexierung einmalig mittels occ gestartet werden:

./occ fulltextsearch:index

Zudem ist es erforderlich, dass nach einer Aktualisierung der Erweiterung der Index einmal zurückgesetzt und neu indexiert wird:

./occ fulltextsearch:reset./occ fulltextsearch:index
Elasticsearch in Nextcloud 13 einbinden

Suchfunktionen im Allgemeinen sind manchmal mehr Schmerz als Hilfe (siehe Microsofts Bing 🤷‍♂️). Oft findet man Dinge die man sucht nicht, oder aber Dinge, die man gar nicht gesucht hat.
Wer viele Dateien in seiner Nextcloud nutzt, kann natürlich auch schnell den Überblick verlieren.

Mit Elasticsearch gibt es eine mächtige und trotzdem sehr schnelle auf Java basierende Suche, die sich mittels Erweiterungen auch in Nextcloud integrieren lässt.

Elasticsearch installieren

Elasticsearch benötigt zum ausführen eine Java-Umgebung. Folgende Anleitung beschreibt wie die Installation unter Debian aussieht.
Dort lässt sich ohne weiteres hinzufügen von Repositorys das OpenJDK installieren.

apt-get install openjdk-8-jre

Ein ausführen von java -version sollte anschließend wie folgt aussehen:

root@hive:/# java -version
openjdk version "1.8.0_171"
OpenJDK Runtime Environment (build 1.8.0_171-8u171-b11-1~deb9u1-b11)
OpenJDK 64-Bit Server VM (build 25.171-b11, mixed mode)

Anschließend richten wir das Repository für Elasticsearch ein und installieren die Suche. Dies geschieht mittels folgenden Befehlen.

wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | apt-key add -
apt-get install apt-transport-https
echo "deb https://artifacts.elastic.co/packages/6.x/apt stable main" | tee -a /etc/apt/sources.list.d/elastic-6.x.list
apt-get update && sudo apt-get install elasticsearch

systemctl enable elasticsearch
systemctl start elasticsearch

Sofern die Installation von Elasticsearch erfolgreich war, sollte ein curl -X GET "localhost:9200/" nun folgendes ausgeben:

root@hive:/# curl -X GET "localhost:9200/"
{
  "name" : "fhCp22D",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "LVEyx6SIREq5FPX1ee5TgA",
  "version" : {
    "number" : "6.3.0",
    "build_flavor" : "default",
    "build_type" : "deb",
    "build_hash" : "424e937",
    "build_date" : "2018-06-11T23:38:03.357887Z",
    "build_snapshot" : false,
    "lucene_version" : "7.3.1",
    "minimum_wire_compatibility_version" : "5.6.0",
    "minimum_index_compatibility_version" : "5.0.0"
  },
  "tagline" : "You Know, for Search"
}

Damit auch PDF, XML und weitere Dateien indexiert werden können, muss noch ein Plugin für Elasticsearch installiert werden:

/usr/share/elasticsearch/bin/elasticsearch-plugin install ingest-attachment

Öffnet nun die Konfiguration von Elasticsearch unter /etc/elasticsearch/elasticsearch.yml und setzt die Variable network.host auf 127.0.0.1

Anschließend Elasticsearch einmal neustarten und mittels netstat prüfen, ob Elasticsearch und Java auf den Ports 9200 und 9300 lauschen.

Nextcloud konfigurieren

Widmen wir uns nun der Nextcloud. Wir benötigen drei Erweiterungen aus dem Appstore.

Elasticsearch in Nextcloud 13 einbinden

Installiert werden müssen die folgenden drei:

Nach Aktivierung, wechselt in den Einstellungen in den Bereich der Volltextsuche.
Als Search Plattform wählt ihr Elasticsearch aus, die Address of the Servlet lautet http://localhost:9200/ und den Index könnt ihr frei benennen. Bei mehreren Nextcloud-Instanzen macht ein eindeutiger Index natürlich deutlich Sinn, bei mir lautet dieser beispielsweise nc_cloud1.

Abschließend muss die Indexierung einmalig mittels occ gestartet werden:

./occ fulltextsearch:index

Zudem ist es erforderlich, dass nach einer Aktualisierung der Erweiterung der Index einmal zurückgesetzt und neu indexiert wird:

./occ fulltextsearch:reset
./occ fulltextsearch:index

Suchfunktionen im Allgemeinen sind manchmal mehr Schmerz als Hilfe (siehe Microsofts Bing ?‍♂️). Oft findet man Dinge die man sucht nicht, oder aber Dinge, die man gar nicht gesucht hat.
Wer viele Dateien in seiner Nextcloud nutzt, kann natürlich auch schnell den Überblick verlieren.

Mit Elasticsearch gibt es eine mächtige und trotzdem sehr schnelle auf Java basierende Suche, die sich mittels Erweiterungen auch in Nextcloud integrieren lässt.

Elasticsearch installieren

Elasticsearch benötigt zum ausführen eine Java-Umgebung. Folgende Anleitung beschreibt wie die Installation unter Debian aussieht.
Dort lässt sich ohne weiteres hinzufügen von Repositorys das OpenJDK installieren.

apt-get install openjdk-8-jre

Ein ausführen von java -version sollte anschließend wie folgt aussehen:

root@hive:/# java -versionopenjdk version "1.8.0_171"OpenJDK Runtime Environment (build 1.8.0_171-8u171-b11-1~deb9u1-b11)OpenJDK 64-Bit Server VM (build 25.171-b11, mixed mode)

Anschließend richten wir das Repository für Elasticsearch ein und installieren die Suche. Dies geschieht mittels folgenden Befehlen.

wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | apt-key add -apt-get install apt-transport-httpsecho "deb https://artifacts.elastic.co/packages/6.x/apt stable main" | tee -a /etc/apt/sources.list.d/elastic-6.x.listapt-get update && sudo apt-get install elasticsearchsystemctl enable elasticsearchsystemctl start elasticsearch

Sofern die Installation von Elasticsearch erfolgreich war, sollte ein curl -X GET „localhost:9200/“ nun folgendes ausgeben:

root@hive:/# curl -X GET "localhost:9200/"{  "name" : "fhCp22D",  "cluster_name" : "elasticsearch",  "cluster_uuid" : "LVEyx6SIREq5FPX1ee5TgA",  "version" : {    "number" : "6.3.0",    "build_flavor" : "default",    "build_type" : "deb",    "build_hash" : "424e937",    "build_date" : "2018-06-11T23:38:03.357887Z",    "build_snapshot" : false,    "lucene_version" : "7.3.1",    "minimum_wire_compatibility_version" : "5.6.0",    "minimum_index_compatibility_version" : "5.0.0"  },  "tagline" : "You Know, for Search"}

Damit auch PDF, XML und weitere Dateien indexiert werden können, muss noch ein Plugin für Elasticsearch installiert werden:

/usr/share/elasticsearch/bin/elasticsearch-plugin install ingest-attachment

Öffnet nun die Konfiguration von Elasticsearch unter /etc/elasticsearch/elasticsearch.yml und setzt die Variable network.host auf 127.0.0.1

Anschließend Elasticsearch einmal neustarten und mittels netstat prüfen, ob Elasticsearch und Java auf den Ports 9200 und 9300 lauschen.

Nextcloud konfigurieren

Widmen wir uns nun der Nextcloud. Wir benötigen drei Erweiterungen aus dem Appstore.

alt

Installiert werden müssen die folgenden drei:

Nach Aktivierung, wechselt in den Einstellungen in den Bereich der Volltextsuche.
Als Search Plattform wählt ihr Elasticsearch aus, die Address of the Servlet lautet http://localhost:9200/ und den Index könnt ihr frei benennen. Bei mehreren Nextcloud-Instanzen macht ein eindeutiger Index natürlich deutlich Sinn, bei mir lautet dieser beispielsweise nc_cloud1.

Abschließend muss die Indexierung einmalig mittels occ gestartet werden:

./occ fulltextsearch:index

Zudem ist es erforderlich, dass nach einer Aktualisierung der Erweiterung der Index einmal zurückgesetzt und neu indexiert wird:

./occ fulltextsearch:reset./occ fulltextsearch:index

Suchfunktionen im Allgemeinen sind manchmal mehr Schmerz als Hilfe (siehe Microsofts Bing ?‍♂). Oft findet man Dinge die man sucht nicht, oder aber Dinge, die man gar nicht gesucht hat.
Wer viele Dateien in seiner Nextcloud nutzt, kann natürlich auch schnell den Überblick verlieren.

Mit Elasticsearch gibt es eine mächtige und trotzdem sehr schnelle auf Java basierende Suche, die sich mittels Erweiterungen auch in Nextcloud integrieren lässt.

Elasticsearch installieren

Elasticsearch benötigt zum ausführen eine Java-Umgebung. Folgende Anleitung beschreibt wie die Installation unter Debian aussieht.
Dort lässt sich ohne weiteres hinzufügen von Repositorys das OpenJDK installieren.

apt-get install openjdk-8-jre

Ein ausführen von java -version sollte anschließend wie folgt aussehen:

root@hive:/# java -versionopenjdk version "1.8.0_171"OpenJDK Runtime Environment (build 1.8.0_171-8u171-b11-1~deb9u1-b11)OpenJDK 64-Bit Server VM (build 25.171-b11, mixed mode)

Anschließend richten wir das Repository für Elasticsearch ein und installieren die Suche. Dies geschieht mittels folgenden Befehlen.

wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | apt-key add -apt-get install apt-transport-httpsecho "deb https://artifacts.elastic.co/packages/6.x/apt stable main" | tee -a /etc/apt/sources.list.d/elastic-6.x.listapt-get update && sudo apt-get install elasticsearchsystemctl enable elasticsearchsystemctl start elasticsearch

Sofern die Installation von Elasticsearch erfolgreich war, sollte ein curl -X GET „localhost:9200/“ nun folgendes ausgeben:

root@hive:/# curl -X GET "localhost:9200/"{  "name" : "fhCp22D",  "cluster_name" : "elasticsearch",  "cluster_uuid" : "LVEyx6SIREq5FPX1ee5TgA",  "version" : {    "number" : "6.3.0",    "build_flavor" : "default",    "build_type" : "deb",    "build_hash" : "424e937",    "build_date" : "2018-06-11T23:38:03.357887Z",    "build_snapshot" : false,    "lucene_version" : "7.3.1",    "minimum_wire_compatibility_version" : "5.6.0",    "minimum_index_compatibility_version" : "5.0.0"  },  "tagline" : "You Know, for Search"}

Damit auch PDF, XML und weitere Dateien indexiert werden können, muss noch ein Plugin für Elasticsearch installiert werden:

/usr/share/elasticsearch/bin/elasticsearch-plugin install ingest-attachment

Öffnet nun die Konfiguration von Elasticsearch unter /etc/elasticsearch/elasticsearch.yml und setzt die Variable network.host auf 127.0.0.1

Anschließend Elasticsearch einmal neustarten und mittels netstat prüfen, ob Elasticsearch und Java auf den Ports 9200 und 9300 lauschen.

Nextcloud konfigurieren

Widmen wir uns nun der Nextcloud. Wir benötigen drei Erweiterungen aus dem Appstore.

Installiert werden müssen die folgenden drei:

Nach Aktivierung, wechselt in den Einstellungen in den Bereich der Volltextsuche.
Als Search Plattform wählt ihr Elasticsearch aus, die Address of the Servlet lautet http://localhost:9200/ und den Index könnt ihr frei benennen. Bei mehreren Nextcloud-Instanzen macht ein eindeutiger Index natürlich deutlich Sinn, bei mir lautet dieser beispielsweise nc_cloud1.

Abschließend muss die Indexierung einmalig mittels occ gestartet werden:

./occ fulltextsearch:index

Zudem ist es erforderlich, dass nach einer Aktualisierung der Erweiterung der Index einmal zurückgesetzt und neu indexiert wird:

./occ fulltextsearch:reset./occ fulltextsearch:index

Der Beitrag Elasticsearch in Nextcloud 13 einbinden erschien zuerst auf timscha.io.

19. Juni 2018

Mozilla hat die geplanten Termine für die Veröffentlichung der Firefox-Versionen des kommenden Jahres 2019 festgelegt. Damit wurde auch der Lebenszyklus von Firefox ESR 60 festgesetzt.

Neue Major-Versionen von Firefox erscheinen in unregelmäßigen, aber geplanten Abständen. Für das aktuelle Jahr 2018 bedeutet dies neue Firefox-Versionen alle sieben bis zehn Wochen. Die Release-Termine für das Jahr 2018 lassen sich hier nachlesen. Nun stehen auch die Release-Termine für das kommende Jahr 2019 fest. Für notwendige Verschiebungen bleibt Mozilla natürlich weiterhin flexibel.

Firefox Release-Termine 2019

Firefox 65
29. Januar 2019 (7 Wochen nach Firefox 64)

Firefox 66
19. März 2019 (7 Wochen nach Firefox 65)

Firefox 67
14. Mai 2019 (8 Wochen nach Firefox 66)

Firefox 68, neue Basis für Firefox ESR
9. Juli 2019 (8 Wochen nach Firefox 67)

Firefox 69
3. September 2019 (8 Wochen nach Firefox 68)

Firefox 70
22. Oktober 2019 (7 Wochen nach Firefox 69)

Firefox 71
10. Dezember 2019 (7 Wochen nach Firefox 70)

Firefox ESR 60 bekommt längere Lebensdauer

Mit Firefox 10 hat Mozilla parallel zur Mainstream-Version von Firefox eine Version mit Langzeitunterstützung eingeführt, auch Firefox ESR genannt. Bislang wurde eine ESR-Version immer sieben Major-Releases später abgelöst, d.h. nach Firefox ESR 10 kam Firefox ESR 17 mit neuen Features, dann Firefox ESR 24 usw. Eine Ausnahme gab es nach Firefox ESR 52: diese Version wurde nicht etwa durch eine Version Firefox ESR 59 abgelöst, sondern erst acht Major-Releases später durch Firefox ESR 60, um die neue ESR-Version mit der neuen Enterprise Policy Engine für Unternehmen ausliefern zu können.

Nun hätte man erwarten können, dass Mozilla zu den sieben Major-Releases zurückkehrt und auf Firefox ESR 60 die Version Firefox ESR 67 folgen lassen wird. Mozilla behält jedoch die acht Major-Releases bei und wird Firefox ESR 60 erst durch Firefox ESR 68 ablösen. Einschließlich der zwei Versionen Überlappung, die es bei jedem ESR-Wechsel gibt, wird Firefox ESR 60 damit bis zum 23. Oktober 2019 und dem Erscheinen von Firefox 70 sowie Firefox ESR 68.2 unterstützt.

Der Beitrag Firefox: Release-Termine 2019, längere ESR 60-Lebensdauer erschien zuerst auf soeren-hentzschel.at.

17. Juni 2018

Die Gerüchteküche brodelt derzeit aufgrund einer Vortragsbeschreibung im Rahmen eines halbjährlichen Zusammenkommens der Mozilla-Mitarbeiter aus aller Welt: arbeitet Mozilla unter dem Projektnamen Scout an einem Browser, der sich nur mit Sprache bedienen lässt?

Alle sechs Monate kommen die Mitarbeiter von Mozilla aus der ganzen Welt für mehrere Tage zu einem sogenannten All Hands-Meeting zusammen. Beim All Hands in der vergangenen Woche wurde intern ein Projekt vorgestellt, dessen öffentliche Beschreibung Raum zur Spekulation bietet.

Dort ist von einer „Scout“-App die Rede, welche das Browsing und das Konsumieren von Inhalten über die Stimme ermöglichen soll. Eingeleitet wird die Beschreibung mit folgender Frage, welche an die Alexas und Siris dieser Welt erinnert: „Hey Scout, lies mir den Artikel über Polarbären vor“. In dem Vortrag sollte es darum gehen, die Architektur und Schlüsselkomponenten zu diskutieren, welche für eine solche Sprachplattform benötigt werden.

Dass Sprachsteuerung für Mozilla ein Thema ist, das ist bereits bekannt. Mit Deep Speech arbeitet Mozilla an einer Open Source Sprache-zu-Text-Engine, vor wenigen Tagen hat man Common Voice in weiteren Sprachen gestartet, unter anderem Deutsch. Mit Common Voice versucht Mozilla, im Bereich der Sprachdatenbanken eine freie Alternative zu kommerziellen Anbietern wie Amazon und Google zu etablieren, damit Sprachsteuerung für jeden zugänglich und nicht den großen Anbietern vorbehalten ist.

Insofern erscheint es alles andere als abwegig, dass Mozilla an einem Produkt mit Spracherkennung arbeitet. Produkte wie Firefox Klar als spezialisierter Privatsphäre-Browser, Firefox Rocket als Browser, der speziell für den indonesischen Markt konzipiert ist, oder Firefox Reality als kommender VR-Browser zeigen außerdem, dass Mozilla mobil eine Mehr-Produkt-Strategie verfolgt und nicht nur mit Firefox als Browser für alle Zwecke plant.

In jedem Fall befindet sich ein solches Produkt wie „Scout“, wenn es denn in Arbeit ist, noch in einer ganz frühen Phase. Dementsprechend liegen auch noch keine weiteren Informationen darüber vor – auch ob es überhaupt Marktreife erreichen wird. Mozilla experimentiert häufiger mit Ideen, unter anderem im letzten Jahr mit Prox, einer App zum Entdecken neuer Orte und Events in der Nähe. Die Arbeiten daran wurden zwischenzeitlich eingestellt.

Der Beitrag Scout: Arbeitet Mozilla an einem Browser mit Sprachsteuerung? erschien zuerst auf soeren-hentzschel.at.

Wie heise online in diesem Bericht verkündet, will das Land Schleswig-Holstein die Abhängigkeit von Microsoft-Produkten verringern und die Verwaltung zukünftig komplett auf freie Software umrüsten.

Mir persönlich gefällt an dem Antrag der Fraktionen von
CDU, Bündnis`90/Die Grünen und FDP, dass diesmal nicht die Kostenreduzierung als oberstes Ziel formuliert wurde. Denn dass man mit freier Software durch den Wegfall von Lizenzgebühren IT-Kosten drastisch senken kann, ist ein häufiger Irrglaube.

Statt dessen formuliert der Antrag eindeutig die Absicht, die Abhängigkeit zu einzelnen Herstellern und deren Lizenzmodellen soweit wie möglich zu reduzieren. Dabei handelt es sich jedoch nicht um eine Umstellung um jeden Preis. Es soll nun nicht damit begonnen werden, alle etablierten Verfahren ohne besonderen Anlass auf freie Software umzustellen. Jedoch soll dies stets dann geprüft werden, wenn Neubeschaffungen anstehen, oder wesentliche Änderungen an bestehenden Verfahren/Programmen vorgenommen werden müssen.

Damit die Anwender nicht (wie so oft) auf der Strecke bleiben, sollen diese laut Antrag von Beginn an mit einbezogen werden. Frühzeitige Anwenderschulungen und eine Kommunikation von Sinn und Zweck einer Umstellung sollen die Akzeptanz bei den Mitarbeitern und Mitarbeiterinnen fördern.

Für mich klingt dieser Antrag durchdacht und schlüssig. Mir gefällt daran besonders, dass er die Punkte in den Mittelpunkt stellt, an denen bereits viele Open Source Projekte gescheitert sind. Dies sind in meinen Augen:

  • Keine Umstellung um jeden Preis, sondern sukzessive dort, wo dies sinnvoll und nachhaltig erscheint
  • Einbeziehung und Schulung der Mitarbeiterinnen und Mitarbeiter von Beginn an
  • Kein Versprechen, das mit einer Umstellung eine drastische Kostenreduzierung einhergeht

Ob es wirklich so kommt, bleibt natürlich abzuwarten. Es besteht jedoch Hoffnung, dass hier mit Verstand und Augenmaß gehandelt wird und freie Software Schritt für Schritt Einzug in die Verwaltung des Landes Schleswig-Holstein erhält. Auf jeden Fall klingt es nach einem spannenden Unterfangen, welches sich im Auge zu behalten lohnt.

Wer Linux nutzt wird früher oder später auf den Befehl find stoßen. Mit diesem lassen sich, wie der Name schon vermuten lässt, Sachen wie Dateien finden. Vor ein paar Wochen bin ich nun auf die Alternative fd gestoßen, welche gar nicht mal so schlecht ist.

Nehmen wir mal an, wir haben den Ordner “Projekt” auf der Festplatte. In diesem befindet sich eine Datei die wir dringend brauchen und von der wir nur wissen, dass sie den Namen README hat. Aber nicht ob .md, .doc. oder .txt. Mit find würde man wohl in das Projekt-Verzeichnis wechseln und dort find . -iname ‘README*’ ausführen. Bei fd reicht schon in das Verzeichnis zu wechseln und fd README auszuführen (wer will kann natürlich auch das Verzeichnis angeben. Zum Beispiel find README /home/nutzer/Projekt). Fd sucht hier automatisch rekursiv alles in dem irgenwie README vorkommt. Somit wird zum Beispiel README.md oder README.gz gefunden. Aber auch Verzeichnisse wie ./README/Anleitung.doc. Wer nur nach Dateien suchen will, kann den Parameter -tf verwenden. Wenn nur Verzeichnisse gesucht werden sollen -td.

Nehmen wir als nächstes Beispiel einmal an, wir suchen nach einer Datei von der wir nur wissen, dass Sie die Endung .md hat. Mit find würde mal wohl find . -type f -name ‘*.md’ nutzen. Mit fd reicht fd *.md.

Das sind jetzt nur einmal zwei Beispiele in denen ich fd find vorziehen würde. Ist fd nun ein vollwertiger Ersatz für find? Definitiv nicht. Denn Sachen wie find -inum 123456789 sind unter fd nicht möglich. Aber für das allgemeine Suchen von Dateien reicht fd locker aus. Zudem ist fd auch deutlich schneller beim Liefern der Suchergebnisse als find. Hat fd auch Nachteile? Kommt wohl auf die eigene Sichtweise an. Fd sollte zum einen in keiner Standardinstallation zu finden sein. Zum anderen wird als Abhängigkeit zum Erstellen von fd Rust benötigt. Die schlägt, zumindest unter Arch, mit etwa mehr als 240 MB zu buche. Rust kann man allerdings hinterher gefahrlos wieder entfernen.

Die leicht erregbare Internetöffentlichkeit hat mal wieder ihr nächstes Thema gefunden: Auch Linux ist böse! Konkret geht es um die Erhebung von Telemetriedaten durch Ubuntu seit Version 18.04 und - wie nun bekannt wurde - auch openSUSE. Bei genauerer Betrachtung sieht man, dass das gar kein Problem ist. Aber was nützen schon Fakten und Recherche, wenn paranoide Wutkommentatoren in die Tasten hauen.

Zu den Fakten: Ubuntu hat im Verlauf der Entwicklung von 18.04 beschlossen, dass man ein System einführen möchte, über das einige Telemetriedaten gesammelt werden können. Bei Installation und Upgrade wird der Anwender gefragt, ob er dieser Datensammlung zustimmt. Sofern der Anwender zustimmt, erhebt Ubuntu folgende Daten:

  • Ubuntu-Version
  • OEM/Manufacturer
  • Device model number
  • BIOS Info
  • CPU Details
  • GPU Details
  • Arbeitsspeicher
  • Partitionierungsinformationen
  • Displaydetails
  • Auto-login
  • Live Patching Status
  • Desktopumgebung
  • Displayserver
  • Zeitzone

Siehe dazu auch entsprechenden Bericht auf OMG!Ubuntu.

Passend zur Veröffentlichung von openSUSE Leap 15 kam nun heraus: Auch openSUSE sammelt Daten. Das kommt jetzt nicht sonderlich überraschend, da bekannte Vorträge zu openSUSE in Zahlen (Beispiel 2016) logischerweise eine Grundlage haben mussten. Dazu vergibt openSUSE eine eindeutige System-ID (UUID), die im Verzeichnis /var/lib/zypp gespeichert ist. Hinzu kommen Informationen über die bei der Basisinstallation gewählten Pakete, die Installationsmethode (z. B. FTP) und die gewählte Locale (z. B. de-DE).

Die openSUSE Entwickler können dadurch nachvollziehen, wie viele Benutzer Systemaktualisierungen von einer Version auf die nächste machen und wie viele aktive Installationen es gibt, auch getrennt nach Leap und Tumbleweed.

Eine ausgewogene Analyse kann man beispielsweise in diesem Youtube-Video anhören. Relevant ist der Teil bis Minute 8.57.

Der dortigen Bewertung ist wenig hinzuzufügen. Beide Beispiele, openSUSE und Ubuntu, zeigen einfach, dass hier Linux-Distributionen versuchen zu ermitteln, wie relevant sie in welchen Märkten sind. Hinzu kommen einige Hardwaredaten, die durchaus nachvollziehbar wichtig sind. Da geht es immerhin um Fragen, welche Treiber für die Anwender wichtig sind, wie viel Leistung ihre Systeme haben etc. pp.

In beiden Fällen täten die üblichen gleichermaßen ahnungslosen, wie lautstarken Wutkommentatoren gut daran ein bisschen vom Gaspedal zu gehen. Beide Distributionen erheben erst einmal keine personenbezogenen Daten (die IP-Erhebung bei openSUSE ist dafür zu unklar). Grundsätzlich ist es eine Binsenweisheit, dass auch Linux-Systeme Verbindungen nach außen aufnehmen und dabei zwangsläufig Informationen wie die IP-Adresse teilen. Aufnahme zu Updateserver, NTP etc. sind gar nicht anders möglich.

Bei Ubuntu wäre natürlich eine Opt-in Vorauswahl wünschenswert, bei openSUSE überhaupt eine grafische Wahlmöglichkeit für den Anwender. Das sind aber Feinheiten, die schon alleine deshalb irrelevant sind, weil die grafische Wahlmöglichkeit bei Ubuntu die üblichen Wutbürger nicht besänftigt hat.

Außerdem ist nicht jede Datenerhebung von vornherein bösartig. Entwickler brauchen Feedback um sinnvolle, datengestützte Entscheidungen treffen zu können. Problematisch wird es erst, wenn diese Daten zu großen Datenpools verbunden werden (Stichwort Weitergabe an Dritte), die dann umfassende Aussagen über ihre Verursacher zulassen. Beides ist bei den kleinen Linux-Distributoren weder aktuell der Fall, noch unmittelbar zu befürchten.

Mit solchen emotionsgeleiteten Debatten leitet man nur Wasser auf die Mühlen der großen IT-Giganten, die immer behaupten, was sie machen wäre nicht schlimm bzw. würden alle anderen sowieso auch tun. Wenn Microsoft mit Windows 10 viel umfassendere Telemetriedaten erhebt (Stichwort Suchbegriff, Browserverlauf etc. pp.), kann es diese Daten mit vielen anderen Datenquellen (z. B. Skype, Bing) zusammenführen und dies ist daher wesentlich problematischer. Der einordnende Vergleich ist somit notwendig und nicht relativierend.

Ganz im Gegenteil, es wäre wünschenswert, wenn viel mehr Linux-Distributionen das machen. Eventuell würde so manchem Entwickler dann mal klar werden, dass er sein einziger Anwender ist. Aber das nur am Rande.


Bilder: 

Einleitungsbild und Beitragsbild von von geralt via pixabay / Lizenz: CC0 Public Domain

"

14. Juni 2018

Die Klassifizierung Apples Betriebssystems als "Goldener Käfig" ist eine geläufige Formulierung und insbesondere im Linux-Umfeld weit verbreitet. Apples macOS wird als unfreies System dargestellt, das aber durch seine schöne Optik und reibungslose Funktionsweise dem Anwender Freiheit suggeriert. Dem gegenüber ist Linux vermeintlich wirklich frei.

Entgegen landläufiger Meinungen ist dieses Bild älter als das iPhone-Betriebssystem iOS und kommt noch aus der klassischen Mac OS X-Zeit. Den ältesten Verweis auf diese Darstellung konnte ich bisher in einem Vortrag von James Bottomley auf dem Linux Kongress 2008 finden. Pro-Linux berichtete damals:

"An dieser Stelle gab Bottomley eine Gefängnis-Analogie der Betriebssysteme wieder. Bei Microsoft-Systemen sind die Benutzer in einem Gefängnis eingesperrt, und diese Tatsache ist für alle Insassen offensichtlich. Bei Apples Mac OS X sind die Benutzer ebenso weggesperrt, das Gefängnis ist aber so luxuriös, dass man nicht merkt, dass man gefangen ist. Bei freien Systemen hingegen gibt es keine Gefängnisse, und das System lässt sich in jeder Hinsicht anpassen und ändern."

Quelle: Pro-Linux - Der Wert von Open Source

Vermutlich lassen sich noch deutlich ältere Passagen dieser Art finden. Gerne wird dieses Bild zudem ergänzt mit dem Verweis, dass Apples Produkte gut funktionieren, so lange man im Apple-Ökosystem bleibt, aber sobald man es verlässt, funktioniert es nicht mehr. Der Käfig ist halt nur so lange luxuriös, bis man versucht auszubrechen.

Doch warum soll dem so sein?

macOS vs. Linux 

Schnittstellen

MacOS unterstützt standardmäßig sehr viele Protokolle und Schnittstellen zum Informations- und Datenaustausch. PIM-Informationen kann man für die hauseigenene Programme Mail, Kalender und Kontakte über die folgenden Protokolle abgleichen:

  • Apple
  • MS Exchange
  • IMAP/POP
  • CalDAV
  • CardDAV
  • LDAP

Sowie zusätzlich eine Reihe von sozialen Netzwerken, was aber laut jüngsten Presseberichten mit der kommenden Version macOS 10.14 eingeschränkt wird und daher hier nicht berücksichtigt werden soll. MacOS unterstützt damit alle verbreiteten proprietären und freien Protokolle.

Ein ähnliches Bild gibt es beim Dateiaustausch. Neben den abgekündigten Protokollen wie AFS (Apple File System) unterstützt das System standardmäßig folgende Protokolle:

  • SMB/CIFS
  • WebDAV
  • NFS
  • FTP (lesend)

Zusammengefasst ist es somit einfach möglich macOS in ein heterogenes Umfeld einzubinden und Datei- und PIM-Daten zu synchronisieren. Einen Vor- oder Nachteil gegenüber Linux gibt es nicht.

Programme und Dateien

Neben den macOS-Basisprogrammen liefert das Betriebssystem von Haus aus ein umfangreiches BSD-Basissystem aus. Bekannte Editoren wie nano oder vim stehen ebenso zur Verfügung wie SSH, die Bash und zig weitere Lösungen. Mittels bekannter Lösungen wie Homebrew oder MacPorts lässt sich dieses Repertoire beliebig ergänzen.

Die meisten bekannten Open Source Programme wie Firefox, Thunderbird, GIMP, LibreOffice etc. pp. gibt es selbstredend auch für macOS. Allerdings auch proprietäre Alternativen, sowie bekannte Standardsoftware wie Microsoft Office oder die Adobe Suite.

Gegenwärtig ist es auch immer noch möglich und mitunter erforderlich Programme mittels einer herkömmlichen Installationsroutine zu installieren. Sicherheitsfunktionen wie eine Signaturprüfung sind zwar von Haus aus aktiv, lassen sich aber abschalten. Man kommt sogar gänzlich ohne App Store und Apple ID aus.

Linux-Distributionen schränken ihre Programmauswahl ebenfalls ein. Problemlos lassen sich lediglich die Inhalte der Paketquellen installieren, ansonsten ist man auf passende Fremdquellen angewiesen. Proprietäre Drittprogramme sind nur in geringer Anzahl verfügbar und liegen teilweise nicht für jede Distribution vor. Jedoch meist in den beiden verbreiteten Formaten DEB und RPM.

Beide Systeme setzen in hohem Maße auf standardisierte Dateiformate. Proprietäres Vendor-LockIn gibt es eigentlich nur bei der iWork-Suite, dessen Dateiformate durch kein Drittprogramm unterstützt wird. 

Sowohl Linux, als auch macOS schneiden oft alte Zöpfe ab, weshalb Programme meist nicht zuverlässig über viele Versionen hinweg funktionieren, ohne das Anpassungen vorgenommen werden. Die Freiheit wirklich alte Programme zu nutzen haben Anwender also meist nur unter Windows.

Eingriffe in das System

Apple beschränkt den Zugriff auf das Basissystem durch eine Integritätsprüfung (SIP). Das ist durchaus sinnvoll, da hierdurch ungewollte Veränderungen durch z. B. Schadprogramme verhindert werden. Diese lässt sich aber abschalten und anschließend hat man alle gewohnten Freiheiten und kann bei Bedarf sein System sogar irreparabel beschädigen.

Im Gegensatz zu Linux sind zentrale Bestandteile wie das Initsystem, der Desktop und ähnliches bei macOS nicht austauschbar. Hier ist bei Linux - abgesehen vom Desktop - aber auch viel Illusion. Wenn man mal einen Blick über den Tellerrand zu FreeBSD wirft (siehe: FreeBSD 11 mit Plasma 5 installieren) merkt man, wie homogen die zahllosen Linux-Distributionen eigentlich sind. In den letzten Jahren haben sich um Linux-Umfeld immer mehr zentrale Bestandteile entwickelt, die sich nicht mehr ohne weiteres austauschen lassen oder deren Entfernung zumindest erhebliche Folgen hat. Beispiele hierfür sind systemd, udev und PolicyKit.

Peripherie-Schnittstellen

Einen regelmäßigen Aufschrei lösen die Veränderungen an den Hardware-Schnittstellen aus. Zuletzt der USB-C Anschluss in der jüngsten MacBook Pro-Serie. Diese Brüche sind für Anwender nervig, weil sie Adapter oder neue Peripherie erforderlich machen. Bis auf wenige Alleingänge wie beispielsweise Lightning sind das aber standardisierte Lösungen oder zumindest mit etablierten Standards kompatible Verfahren wie z. B. Thunderbolt.

Apple schreitet hier schneller voran als andere Hersteller, möglicherweise weil die Kundschaft treuer ist oder weil man weniger Kompromisse beim Design machen möchte. Die meisten radikalen Brüche bei den Schnittstellen haben aber die anderen Hardwarehersteller mit etwas zeitlichem Abstand ebenfalls vollzogen.

Propietär vs. Open Source

Die Lizenzfrage ist der Klassiker im Vergleich. Linux-Distributionen bestehen in der Regel fast nur aus quelloffener Software. Ausnahmen sind meist nur Firmware-Pakete und individuell zusätzlich installierte proprietäre Programme. MacOS ist eine Mischung aus proprietären und quelloffenen Bestandteilen. Der Betriebssystemkern Darwin ist quelloffen aber nicht eigenständig lauffähig. Das Userland stammt von FreeBSD und unterliegt den dortigen Lizenzen.

Die FSF nimmt für die GPL zwar in Anspruch Freiheit zu schützen, die GPL wird aber im Gegenzug zur MIT-Lizenz oder BSD-Lizenz nicht unter den freizügigen Lizenzen geführt. Es ist also ein sehr eingeschränkter Freiheitsbegriff, der hier zu Grunde liegt.

Zusammengefasst

MacOS ist in einigen Bereichen standardmäßig restriktiv, aber lässt erfahrenen Benutzern auch sehr viele Freiheiten. Es ist nicht so modular aufgebaut wie die meisten Linux-Distributionen, was einige Einschränkungen mit sich bringt. Linux ist hier durch vielfältige Interdependenzen aber auch nicht mehr so flexibel, wie noch vor einigen Jahren.

Bei den Schnittstellen zum Informations- und Datenaustausch gibt es es kaum Unterschiede, weshalb es vollkommen problemlos möglich ist von einem System zum anderen zu wechseln oder beide gleichzeitig zu nutzen. Beide Systeme setzen in hohem Maße auf standardisierte Dateiformate. Insellösungen sind einfach nicht mehr zeitgemäß.

Große Teile von macOS sind propietäre Software und nicht einsehbar, das schränkt die Freiheit theoretisch ein. Faktisch ist die GPL aber auch keine freiheitliche Lizenz. Die Freiheitlichkeit wird hier oft mit der Freiheit den Code zu lesen, zu verändern und weiterzugeben gleichgesetzt. Ein Privileg, das die meisten Anwender mangels entsprechender Kenntnisse faktisch nicht haben dürften.

Wenn macOS also der goldene Käfig ist, dann ist Linux der GPL-Käfig.

Wirklich geschlossen sind hingegen die Mobilsysteme und hier allen voran iOS, wobei viele Hardwarehersteller von Android-Smartphones momentan einige Anstrengung unternehmen um dieses Ideal auch zu erreichen.


Bilder:

Beitragsbild Käfig: Bild von Gellinger via pixabay / Lizenz: CC0 Creative Commons

Einleitungsbild Waage: Bild von Mediamodifier via pixabay / Lizenz: CC0 Creative Commons

"

13. Juni 2018

Das Adventure Layers of Fear ist z.Z. kostenlos bei Steam erhältlich. Linux und ein Steam-Account sind nötig, um das Spiel zu installieren. Das Spiel bleibt dauerhaft im Account.

Wikipedia schreibt:

Die Entwickler beschreiben das Horrorspiel als „psychedelische Reise in eine bröckelnde Psyche, die von den tragischen Ereignissen der Vergangenheit zerrissen wurde“. Als Spieler steuert man einen allmählich dem Wahnsinn verfallenden Künstler aus der Egoperspektive durch ein großes Herrenhaus, erkundet „die Trümmer eines einst beneidenswerten Lebens“ und ergründet die tragische Familiengeschichte, „die der wahnhafte Perfektionsdrang des Künstlers nach sich gezogen hat“.

Siehe auch: https://store.steampowered.com/news/41044/, https://store.steampowered.com/app/391720/

Vor gut 90 Tagen schrieb ich bereits über die neue Funktion der Wildcard-Zertifikat bei Let’s Encrypt. Nun steht – wie auch bisher – der renew an.

Hier nur zwei Anmerkungen: wer die Prozedur zur Erstellung genau nach meiner Anleitung durchgeführt hat, wird (wie ich vor einigen Wochen) merken, dass der Renew nicht geht. Grund: ein renew kann nur durchgeführt werden, wenn das Verfahren unattended läuft – und das ist bei manueller Erstellung nicht möglich. Es gibt aber zwei Lösungen:

Lösung 1: nochmal das exakt gleiche Kommando ausführen. Überraschend: so wie ich das probiert habe, verzichtet certbot auf ein -0001-Verzeichnis. Wäre gut, wenn mir ein Dritter das evtl. bestätigen kann (info@v-gar.de you know :))

Lösung 2: DNS-Plugin einsetzen. Das ist etwas komplizierter und hängt auch wirklich vom Anbieter ab. Kurz zusammengefasst: hiermit ist es möglich, dass die TXT-Records für die Challenge per Provider-API gesetzt werden und der Prozess somit keinem manuellen Eingriff bedarf. Wie genau das funktioniert werde ich evtl. gesondert behandeln. Für den Moment kann ich aber nur einen Verweis auf die Dokumentation geben.

Vor gut 90 Tagen schrieb ich bereits über die neue Funktion der Wildcard-Zertifikat bei Let's Encrypt. Nun steht - wie auch bisher - der renew an.

Hier nur zwei Anmerkungen: wer die Prozedur zur Erstellung genau nach meiner Anleitung durchgeführt hat, wird (wie ich vor einigen Wochen) merken, dass der Renew nicht geht. Grund: ein renew kann nur durchgeführt werden, wenn das Verfahren unattended läuft - und das ist bei manueller Erstellung nicht möglich. Es gibt aber zwei Lösungen:

Lösung 1: nochmal das exakt gleiche Kommando ausführen. Überraschend: so wie ich das probiert habe, verzichtet certbot auf ein -0001-Verzeichnis. Wäre gut, wenn mir ein Dritter das evtl. bestätigen kann (info@v-gar.de you know :))

Lösung 2: DNS-Plugin einsetzen. Das ist etwas komplizierter und hängt auch wirklich vom Anbieter ab. Kurz zusammengefasst: hiermit ist es möglich, dass die TXT-Records für die Challenge per Provider-API gesetzt werden und der Prozess somit keinem manuellen Eingriff bedarf. Wie genau das funktioniert werde ich evtl. gesondert behandeln. Für den Moment kann ich aber nur einen Verweis auf die Dokumentation geben.