ubuntuusers.de

18. April 2018

Gestern ist meine neue externe Festplatte angekommen, diese sollte natürlich wie meine anderen Festplatten auch verschlüsselt werden. Zusätzlich dazu formatiere ich alle meine Festplatten mit dem btrfs Dateisystem.

Installation

Zuerst installieren wir das benötigte Paket

apt install cryptsetup

Festplatte verschlüsseln

Als nächstes werden wir ein Luks Container erstellen und unsere Festplatte verschlüsseln. Wenn die Festplatte neu ist, entfällt auch das nervige Überschreiben mit NULL Daten.

cryptsetup -v --cipher aes-xts-plain64 --key-size 512 --hash sha512 --iter-time 5000 --use-random --verify-passphrase luksFormat /dev/sdb

Achtung: Achtet drauf, das richtige Laufwerk anzugeben

  • -v => Verbose Mode
  • –cipher => Cipher den wir verwenden wollen, wobei aes-xts-plain64 default ist
  • –key-size => Wir verwenden einen 512Bit Schlüssel, damit wir AES-256Bit nutzen können
  • –hash => sha512 als Hash Algoritmus
  • –iter-time 5000 => Milisekunden die das Passwort durch PBKDF2 geschickt wird
  • –use-random => wir wollen sichere Schlüssel generieren (RPI empfiehlt sich stattdessen urandom zu nutzen)

Im folgenden werdet ihr gefragt, ob ihr wirklich die Festplatte löschen wollt, bestätigt die Frage mit YES. Dann könnt ihr euch ein sicheres Passwort ausdenken. Mein Passwort wurde von Keepass erstellt und hat 64 Zeichen.

Formatieren

Nachdem die Festplatte verschlüsselt wurde, muss diese noch formatiert werden. Dazu öffnen wir als erstes den Container:

cryptsetup luksOpen /dev/sdb EncryptedHDD

Im folgenden ist der Mapping-Name der Festplatte EncryptedHDD. Jetzt formatieren wir die Festplatte.

mkfs.btrfs /dev/mapper/EncryptedHDD -L Festplatte
  • -L => Label (Name der Festplatte in Nautilus,Thunar usw.)

Jetzt schließen wir den Container wieder.

cryptsetup luksClose EncryptedHDD

Nutzung

Zieht die Festplatte ab vom Rechner, und schließt sie wieder an, jetzt fragt euch Nautilus bzw. Thunar (erst beim drauf klicken) nach eurem Passwort. Fertig.

Gestern ist meine neue externe Festplatte angekommen, diese sollte natürlich wie meine anderen Festplatten auch verschlüsselt werden. Zusätzlich dazu formatiere ich alle meine Festplatten mit dem btrfs Dateisystem.

Installation

Zuerst installieren wir das benötigte Paket

apt install cryptsetup

Festplatte verschlüsseln

Als nächstes werden wir ein Luks Container erstellen und unsere Festplatte verschlüsseln. Wenn die Festplatte neu ist, entfällt auch das nervige Überschreiben mit NULL Daten.

cryptsetup -v --cipher aes-xts-plain64 --key-size 512 --hash sha512 --iter-time 5000 --use-random --verify-passphrase luksFormat /dev/sdb

Achtung: Achtet drauf, das richtige Laufwerk anzugeben

  • -v => Verbose Mode
  • --cipher => Cipher den wir verwenden wollen, wobei aes-xts-plain64 default ist
  • --key-size => Wir verwenden einen 512Bit Schlüssel, damit wir AES-256Bit nutzen können
  • --hash => sha512 als Hash Algoritmus
  • --iter-time 5000 => Milisekunden die das Passwort durch PBKDF2 geschickt wird
  • --use-random => wir wollen sichere Schlüssel generieren (RPI empfiehlt sich stattdessen urandom zu nutzen)

Im folgenden werdet ihr gefragt, ob ihr wirklich die Festplatte löschen wollt, bestätigt die Frage mit YES. Dann könnt ihr euch ein sicheres Passwort ausdenken. Mein Passwort wurde von Keepass erstellt und hat 64 Zeichen.

Formatieren

Nachdem die Festplatte verschlüsselt wurde, muss diese noch formatiert werden. Dazu öffnen wir als erstes den Container:

cryptsetup luksOpen /dev/sdb EncryptedHDD

Im folgenden ist der Mapping-Name der Festplatte EncryptedHDD. Jetzt formatieren wir die Festplatte.

mkfs.btrfs /dev/mapper/EncryptedHDD -L Festplatte
  • -L => Label (Name der Festplatte in Nautilus,Thunar usw.)

Jetzt schließen wir den Container wieder.

cryptsetup luksClose EncryptedHDD

Nutzung

Zieht die Festplatte ab vom Rechner, und schließt sie wieder an, jetzt fragt euch Nautilus bzw. Thunar (erst beim drauf klicken) nach eurem Passwort. Fertig.

Gestern ist meine neue externe Festplatte angekommen, diese sollte natürlich wie meine anderen Festplatten auch verschlüsselt werden. Zusätzlich dazu formatiere ich alle meine Festplatten mit dem btrfs Dateisystem.

Installation

Zuerst installieren wir das benötigte Paket

apt install cryptsetup

Festplatte verschlüsseln

Als nächstes werden wir ein Luks Container erstellen und unsere Festplatte verschlüsseln. Wenn die Festplatte neu ist, entfällt auch das nervige Überschreiben mit NULL Daten.

cryptsetup -v --cipher aes-xts-plain64 --key-size 512 --hash sha512 --iter-time 5000 --use-random --verify-passphrase luksFormat /dev/sdb

Achtung: Achtet drauf, das richtige Laufwerk anzugeben

  • -v => Verbose Mode
  • --cipher => Cipher den wir verwenden wollen, wobei aes-xts-plain64 default ist
  • --key-size => Wir verwenden einen 512Bit Schlüssel, damit wir AES-256Bit nutzen können
  • --hash => sha512 als Hash Algoritmus
  • --iter-time 5000 => Milisekunden die das Passwort durch PBKDF2 geschickt wird
  • --use-random => wir wollen sichere Schlüssel generieren (RPI empfiehlt sich stattdessen urandom zu nutzen)

Im folgenden werdet ihr gefragt, ob ihr wirklich die Festplatte löschen wollt, bestätigt die Frage mit YES. Dann könnt ihr euch ein sicheres Passwort ausdenken. Mein Passwort wurde von Keepass erstellt und hat 64 Zeichen.

Formatieren

Nachdem die Festplatte verschlüsselt wurde, muss diese noch formatiert werden. Dazu öffnen wir als erstes den Container:

cryptsetup luksOpen /dev/sdb EncryptedHDD

Im folgenden ist der Mapping-Name der Festplatte EncryptedHDD. Jetzt formatieren wir die Festplatte.

mkfs.btrfs /dev/mapper/EncryptedHDD -L Festplatte
  • -L => Label (Name der Festplatte in Nautilus,Thunar usw.)

Jetzt schließen wir den Container wieder.

cryptsetup luksClose EncryptedHDD

Nutzung

Zieht die Festplatte ab vom Rechner, und schließt sie wieder an, jetzt fragt euch Nautilus bzw. Thunar (erst beim drauf klicken) nach eurem Passwort. Fertig.

17. April 2018

Foto: © CrazyCloud / Fotolia.com

Diese Bundesverwaltung wird zum Aufbau einer privaten Cloudlösung auf Nextcloud setzen. Eine entsprechende Ausschreibung gewann das Unternehmen Computacenter, das wiederum auf die deutsche Nextcloud GmbH zurückgreift. Betrieben wird das ganze jedoch vom ITZBund selbst.

Entsprechende Newsmeldungen:

Nextcloud wird laut SPIEGEL ONLINE damit wohl eine siebenstellige Summe über die nächsten drei Jahre einnehmen und dafür Support und Dienstleistungen erbringen. Insgesamt soll Nextcloud dann potenziell den 300 000 Beschäftigten in den Einrichtungen des Bundes zur Verfügung stehen.

Es ist schön zu sehen, dass man beim Bund auf eine deutsches Projekt setzt und Open Source fördert. Die eindeutige Absage an eine Public Cloud-Lösung ist begrüßenswert. Alles andere wäre aber auch eine Überraschung gewesen, denn die Bundesbehörden gehen nicht so lax mit der Sicherheit um, wie dies gerne suggeriert wird. Spektakuläre Angriffe auf das Regierungsnetz oder den Bundestag sprechen nicht unbedingt für fehlende Vorkehrungen, sondern auch für die Qualität der Angriffe. So manches Unternehmen hätte da vermutlich auch erhebliche Datenabflüsse hinnehmen müssen.

Zwei kleine Bemerkungen kann ich mir aber dennoch nicht verkneifen. Erstens jammert nun niemand über den Millionenbetrag für eine eigentlich kostenlose Software, nachdem vor ein paar Tagen eine Millionensumme an Microsoft noch hohe Wellen schlug (siehe: Linux in der öffentlichen Verwaltung). Zweitens liegt der verbreitete Einsatz von Microsoft-Produkten auf den Rechnern des Bundes vielleicht doch nicht an Korruption oder Idiotie der Bundesregierung, wie gerne in den Technik und/oder Open Source-Medien suggeriert wird, sondern daran, dass Linux auf dem Desktop nicht konkurrenzfähig ist.

Ich habe mal wieder ein wenig meine Mutt Konfiguration angepasst. Der Grund war, dass ich immer mal wieder Probleme bekommen habe, die unterschiedlichen Accounts richtig verwaltet zu bekommen. Aufgrund dessen, muss die Konfiguration in der muttrc wie folgt angepasst werden:

source "~/.mutt/account.exmaple2"
folder-hook $folder 'source ~/.mutt/example2'
source "~/.mutt/account.example1"
folder-hook $folder 'source ~/.mutt/example1'

macro index <f3> '<sync-mailbox><enter-command>source ~/.mutt/account.example1<enter><change-folder>!<enter>'
macro index <f4> '<sync-mailbox><enter-command>source ~/.mutt/account.example2<enter><change-folder>!<enter>'

Das führt dazu, dass die Accounts wieder richtig aufgerufen werden können.

Bild von TheDigitalWay via pixabay / Lizenz: CC0 Creative Commons

Im Internet erfolgt bereits seit längerem ein Wettrüsten zwischen Anwendern und den großen Werbenetzwerken, die mit immer perfideren Methoden die Anwender auf Schritt und Tritt überwachen. Relativ simple Werbeblocker waren nur ein erster Schritt, heutige Werkzeuge sind zu mächtigen Inhaltsblockern geworden. Hinzu kommt eine immer striktere Kontrolle abgelegter Dateien, wie z. B. Cookies.

Die Anwender werden in dieser Abwehr der großen Datenkraken nicht alleine gelassen. Im Herbst 2017 implementierte Apple in der neuen Version von Safari einen zumindest rudimentären Tracking-Schutz. Bereits diese verhältnismäßig kleine Maßnahme traf die Werbeindustrie hart. Apple steht da nicht alleine, denn auch Mozilla hat mit Firefox Quantum ein interessantes Konzept implementiert, da einer breiteren Öffentlichkeit erstmals mit dem so genannten Facebook Container bekannt gemacht wurde.

Vereinfacht gesagt möchte Mozilla hier die Informationen, die unterschiedliche Webseiten auf dem System hinterlassen (Cookies, s. g. Super-Cookies etc.) voneinander isolieren und damit seitenübergreifendes Tracking unterbinden. Mike Kuketz hat die Funktionsweise in seinem Blog sehr anschaulich dargelegt.

Momentan ist die Funktion nicht standardmäßig aktiviert. Wer sich die manuelle Konfiguration in about:config ersparen möchte kann sich einfach das Addon First Party Isolation von freddyb installieren. Das Addon ist sehr einfach gehalten und ermöglicht lediglich das an- und abschalten der Funktion - allgemein und für einzelne Webseiten.

Firefox erschwert es damit erheblich euer Surfverhalten seitenübergreifend während einer Session zu verfolgen. Trotzdem sollte man natürlich weiterhin Schutzmaßnahmen - die auch bisher schon empfehlenswert waren - anwenden. Dazu gehört das Verweigern der Annahme von Dritt-Anbieter Cookies, sowie das automatische Entfernen von Cookies nach dem beenden einer Browser Session. Beides kann man ohne Addons in den Datenschutz-Einstellungen von Firefox konfigurieren.

Insgesamt ist es schön zu sehen, dass Mozilla hier Firefox wieder mehr in Richtung Datenschutz positioniert. Zwischenzeitlich konnte man hier erhebliche Zweifel entwickeln. Nachdem Apple nun auch zaghafte Bestrebungen erkennen lässt die Privatsphäre der Kunden zu schützen, wird Google als größter Werbeanbieter natürlich noch bestrebter sein, den eigenen Browser mit größeren Marktanteilen auszustatten. Denn nichts ist schädlicher für Googles Geschäftsmodell, als eine stärkere Regulierung bzw. Eindämmung der Möglichkeiten der Werbebranche. Darum gilt - Open Source hin oder her - Finger weg von Chromium und Chrome!

"

Ich habe mal wieder ein wenig meine Mutt Konfiguration angepasst. Der Grund war, dass ich immer mal wieder Probleme bekommen habe, die unterschiedlichen Accounts richtig verwaltet zu bekommen. Aufgrund dessen, muss die Konfiguration in der muttrc wie folgt angepasst werden:

source "~/.mutt/account.exmaple2"
folder-hook $folder 'source ~/.mutt/example2'
source "~/.mutt/account.example1"
folder-hook $folder 'source ~/.mutt/example1'

macro index <f3> '<sync-mailbox><enter-command>source ~/.mutt/account.example1<enter><change-folder>!<enter>'
macro index <f4> '<sync-mailbox><enter-command>source ~/.mutt/account.example2<enter><change-folder>!<enter>'

Das führt dazu, dass die Accounts wieder richtig aufgerufen werden können.

16. April 2018

Bild von andries48 via pixabay / Lizenz: CC0 Creative Commons

Viele Lobby-Organisationen im Linuxumfeld würden es gerne sehen, wenn der Staat vermehrt auf freie Software zurückgreifen würden. Euphorische Anwender unterstützen dieses Anliegen in unzähligen Blogs und Kommentaren im Internet. Kaum eine Technik-Gemeinschaft widmet diesem Thema so viel medialen Raum.

Diese Woche waren das zwei vollkommen unterschiedliche, aber dennoch zusammen hängende Meldungen:

  1. Die Stadt Dortmund untersucht das Potenzial von Freier Software/Linux
  2. Bundesbehörden zahlen Millionen für Lizenzebühren an Microsoft

Natürlich wäre es absolut wünschenswert, wenn sich die öffentliche Verwaltung von Microsoft emanzipieren würde. Gar nicht so sehr aus monetären Gründen, sondern weil sich Windows 10 bei bestehendem Onlinezugang möglicherweise nicht an europäische Anforderungen in Sachen Datenschutz anpassen lässt. Schadsoftwaredruck etc. mal ganz außen vor gelassen.

Leider haben viele immer noch keine Konsequenzen aus dem LiMux-Debakel (siehe: Kommentar: Das Ende von LiMux - eine Nachbetrachtung) gezogen und blasen weiter in das gleiche Horn. Erstes und wichtigstes Argument ist das Geld.

Das sieht man sowohl in Dortmund, wo eine defizitäre Gemeinde nun krampfhaft nach sparpotenzial sucht, als auch in der Berichterstattung zu den Zahlungen an Microsoft.

Daher möchte ich hier zwei simple Tatsachen betonen: Erstens: Staatsverwaltung braucht Geld, zweitens: Linux ist nicht kostenlos.

Ein leistungsfähiger Staat benötigt finanzielle Mittel. Eine simple Feststellung, die nach Jahrzehnten neoliberaler Propaganda teilweise pseudowissenschaftlich argumentierterender so genannter "Experten" leider nicht mehr selbstverständlich ist. Zu einem funktionsfähigen Staat gehört eine funktionsfähige IT. Hat der Staat kein Geld und kann rein organisatorisch seine Aufgaben nicht mehr wahrnehmen, landen wir in dysfunktionalen Systemen wie im angloamerikanischen Raum, wo der Staat erwiesenermaßen für seine Bürger nicht mehr da ist. Zwei populistische Abstimmungsergebnisse - Brexit und Trump - in den letzten Jahren sollten da Lehre genug gewesen sein.

Natürlich kann man sich fragen, ob der Staat zur Funktionsfähigkeit Windows braucht. Ohne Insiderwissen lässt sich diese Frage wohl nicht sicher beantworten. Nachdem man aber jahrzehntelang auf Microsoft-Produkte gesetzt hat, dürfte zumindest momentan eine gewisse Abhängigkeit von Microsoft-Produkten bestehen.

Diese ließe sich natürlich in einem Kraftakt beenden. Am besten in größerem Maßstab, also in einer Kooperation von Kommunen, Ländern und/oder des Bundes. Dieser Kraftakt würde jedoch zweifelsohne Geld kosten. Erstens weil man während der Umstellung auch weiterhin auf Microsoft-Produkte angewiesen ist und somit doppelt bezahlt. Zweitens weil man entweder eigene Entwicklungsabteilungen aufbauen muss oder externe Dienstleister bezahlen muss, die entsprechende Produkte entwickeln. Drittens, weil auch Linux nicht kostenlos ist. Man konnte in München sehr gut sehen, wie schwierig es ist eine eigene Linux-Distribution zu kreieren und auf Business-Niveau über viele Jahre zu pflegen, also das wofür man bisher Microsoft bezahlt. Dieses Niveau kann man auch bei Linux einkaufen, z. B. bei Red Hat oder SUSE, aber deren Lizenzmodelle sind auch nicht kostenlos. Im Fall von Red Hat würde man noch nicht mal die Abhängigkeit von US-amerikanischen Unternehmen beenden.

Ob man unterm Strich dann überhaupt Geld spart kann niemand seriös vorhersagen. Lobbyorganisationen, Medien und auch Kommentatoren täten also gut daran, endlich auf dieses Geld-Argument zu verzichten. Damit werden Erwartungen geweckt, die nicht zu halten sind und dann - siehe LiMux - zu einer Rückabwicklung mit erheblichem Flurschaden führen.

"

15. April 2018

Motivation

Meine Motivation für die Erstellung der Bewerbungsvorlage war ursprünglich nur, dass Anschreiben, Lebenslauf und alle weiteren Seiten zusammengehörig aussehen sollten. Sehr viele der vorhandenen Lebenslauf-Pakete auf CTAN lieferten oft nur den Lebenslauf-Teil. Für das Anschreiben in der gleichen Schriftart und -größe sowie Anpassung der Kopf- und Fußzeile musste weitere Arbeit investiert werden. Zusätzlich enthält meine Vorlage noch eine eigene „Meine Seite“ und eine „Motivationsseite”. Ob diese nach heutigem Bewerbungsstandard noch notwendig oder gewünscht sind, soll hier nicht diskutiert werden.

Im Laufe der Jahre kam noch eine zweite Motivation dazu: Weil andere Benutzer die Vorlage rege nutzten, sollte sie so einfach wie möglich gestaltet sein. Insbesondere wollte ich auch Leute ansprechen, die nicht so viel TeX-Erfahrung haben. Aus diesem Grund besteht die Vorlage nur aus einer einzigen Datei, die der Schreiber editieren muss. Über entsprechende Kommentare wird im Dokument genau erklärt, an welchen Stellen ein Bewerber Daten anpassen muss. Da das Zielpublikum dabei immer deutschsprachige Anwender waren, sind alle Makros und Befehle ebenfalls deutschsprachig verfasst.

Aufbau der Dateien

Die Bewerbungsvorlage stelle ich auf GitHub zur Verfügung. Darüber hinaus biete ich den Archiv-Download auf meiner Webseite an. Die Vorlage unterliegt der Creative-Commons-Lizenz CC-BY-SA 4.0 und darf damit geändert und verteilt werden, solange man den Urheber nennt und die Lizenz beibehält. Das aus der Vorlage erstellte PDF unterliegt natürlich keinerlei Lizenzbeschränkungen.

Das Archiv der Bewerbungsvorlage enthält vier Dateien (neben CHANGELOG, README und LICENSE):

  • bewerbung.tex – Die eigentliche Bewerbungsvorlage. Nur hierin werden Daten geändert.
  • bewerbung-latex.sty – Die Style-Datei mit den benötigten Befehlen und Paketen. Diese Datei nicht anfassen!
  • foto-bewerber.png – Das (optionales) Bewerberfoto.
  • signatur-bewerber.png – Die (optionale) eingescannte Unterschrift.

Aufbau der Bewerbung

Die Bewerbung gliedert sich in fünf Teile:

  • Anschreiben
  • Seite mit persönlichen Daten
  • Lebenslauf
  • Motivationsseite
  • Anlagenverzeichnis

Im Folgenden erkläre ich den Aufbau der Vorlage anhand dieser Teile und des zugehörigen LaTeX-Codes. Die Beschreibung ist dabei meistens der Kommentierung in der Vorlage selbst entnommen.

Präambel

In der Präambel (also alles vor der Umgebung document) sind vor allem die persönlichen Daten und die Daten des Adressaten festgelegt, die dann später im Anschreiben und der persönlichen Seite benutzt werden.

Schrift festlegen

Das Makro \SetzeSchrift legt die Schrift fest, was man nur ändern sollte, wenn man die korrekten Namen kennt:

\SetzeSchrift{tgpagella}{TeX Gyre Pagella}

Das erste Argument ist der Paketname für pdfTeX, das zweite Argument der Schriftname für XeTeX und LuaTeX. Als Standardschrift wird TeX Gyre Pagella benutzt, die mir optisch gut gefällt. Hierfür ist das Paket tex-gyre notwendig.

Persönliche Daten

Der nächste Block legt die einzelnen persönlichen Daten fest:

\VollerName{Eva Mustermann}
\AbsenderStrasse{Musterstraße 42}
\AbsenderPLZOrt{12345 Berlin}
\Telefon{Tel.: 0172 567890}
\EMail{eva.mustermann@musterstadt.de}
\OrtDatum{Berlin, \HeutigerTag}
\Geburtstag{1. Januar 1985}
\Geburtsort{Berlin}
\Details{ledig, ortsungebunden}
\Ausbildungsgrad{Promovierte Veterinärmedizinerin}

Bis auf den Ausbildungsgrad und die Details sind alle Angaben zwingend notwendig, damit Anschreiben und die persönliche Seite korrekt dargestellt werden.

Bei der E-Mail ist es möglich, optional eine Farbe anzugeben, mit der die E-Mailadresse dargestellt werden soll. Als Standard ist schwarz eingestellt.

\EMail[orange]{eva.mustermann@musterstadt.de} 
Unterschrift und Foto

Die Unterschrift ist optional und sollte als Bilddatei oder PDF vorliegen. Als Option kann man die Breite der Unterschrift angeben, wobei 5 cm der Standard ist.

\UnterschriftenDatei[5cm]{signatur-bewerber.png}

Auch das Bewerberfoto ist optional. Über die Dateiangabe wird auf der persönlichen Seite das Foto dargestellt. Ein optionales Argument steuert die Höhe des Bildes. Größere Werte als 10,5 cm sind nicht sinnvoll, da das Bild sonst nicht mehr auf die Seite passt.

\BewerberFoto[6cm]{foto-bewerber.jpg}
Adressat

Bei der Angabe der Daten des Adressaten gibt es einige Variationsmöglichkeiten:

\Firma{Hell AG}
\Abteilung{Personalabteilung}
\AdressatVorname{Christina}
\AdressatNachname{Funkel}
\AnschriftStrasse{Route 66}
\AnschriftPLZOrt{00000 Havenfürst}
\AdressatTitel[Prof. Dr.]{Professorin}
\Anrede{Frau}

Bis auf die Firma sowie Straße und Ort sind alle Angaben optional. Wird beispielsweise kein Adressat angegeben bzw. die Anrede weggelassen, wird das Anschreiben automatisch mit „Sehr geehrte Damen und Herren” eingeleitet. Valide Anreden sind „Frau“, „Herr“ oder ein leerer Eintrag. Das Makro \AdressatTitel besitzt zusätzlich ein optionales Argument, welches nur im Briefkopf benutzt wird.

Auch ein zweiter Adressat ist möglich, die Angaben sind alle optional:

\ZweiterAdressatVorname{Pitti}
\ZweiterAdressatNachname{Platsch}
\ZweiterAdressatTitel[Dr.]{Doktor}
\ZweiterAdressatAnrede{Herr}
Bewerberstelle

Nicht zu vergessen ist natürlich die Stelle, auf die man sich bewerben möchte:

\Bewerberstelle{Veterinär-Mediziner (m/w)}

Hier endet die Präambel und der eigentliche Inhalt folgt.

Anschreiben

Abstandsreglung

Für das Anschreiben gibt es zahlreiche Abstandsparameter, die verändert werden können, wenn es erforderlich ist. Somit kann man je nach Menge des Anschreibentextes die Position der einzelnen Elemente (Absender, Adressat, Anschreibentext) steuern, auch wenn man damit gegebenenfalls gegen die Geschäftsbriefnorm DIN 5008 verstößt.

\AbstandZwischenAdressen{0}

Dies ist der Abstand zwischen dem Absender und dem Adressat im Anschreiben. Gemessen wird in Zeilen, d.\,h. der Wert 1.5 steht für anderthalb Zeilen. Der Standard-Wert ist 0.

\AbstandVorAnschreiben{3}

Dies ist der Abstand vor dem eigentlichen Anschreiben (inklusive Ort und Datum). Gemessen wird in Zeilen, d.\,h. der Wert 1.5 steht für anderthalb Zeilen. Der Standard-Wert ist 1.

\AnschreibenSeiteVergroessern{0}

Hierüber kann man die Anschreibenseite vergrößern, d.\,h. es ist damit möglich, über den eigentlichen unteren Rand zu schreiben, falls das Anschreiben etwas länger geworden ist. Gemessen wird in Zeilen, d.\,h. der Wert 1.5 steht für anderthalb Zeilen. Der Standard-Wert ist 0. Als Maximalwert sollte man 3 einstellen, ansonsten wirkt das Anschreiben vom Aufbau sehr unausgeglichen und unschön.

\AbstandVorAnlagen{2}

Die letzte Angabe regelt den Abstand zwischen Unterschrift und den Anlagen im Anschreiben. Gemessen wird in Zeilen, d.\,h. der Wert 1.5 steht für anderthalb Zeilen. Der Standard-Wert ist 1.

Anlagen

Im Anschreiben kann ein optionaler Hinweis auf die Anlagen erscheinen:

\AnschreibenAnlage{Anlagen}

Die Anlagen selbst werden im Anlagenverzeichnis am Ende näher aufgeschlüsselt.

Anschreiben

Die Umgebung Anschreiben enthält den eigentlichen Bewerbungstext.

\begin{Anschreiben}
hier steht mein Bewerbungstext. [...]
\end{Anschreiben}
Anschreiben

Anschreiben

Persönliche Seite

Für die persönliche Seite hat man alle Angaben bereits in der Präambel getätigt, sodass nur das Makro

\MeineSeite

angegeben werden muss.

Darstellung der persönlichen Seite

Darstellung der persönlichen Seite

Lebenslauf

Überschrift einstellen

Die Überschriften des Lebenslaufs und der weiteren Kapitel wie Motivationsseite und Anlagenverzeichnis können über unterschiedliche Makros eingestellt werden. Prinzipiell kann man die Einstellung vor jedem Kapitel ändern. Einheitlicher ist es, wenn die Definition nur einmal am Anfang des Lebenslaufes geschieht.

Die Ausrichtung gibt an, wo die Überschrift steht:

\UeberschriftAusrichtung{links}

Mögliche Angaben sind: links, rechts und mittig. Per Standard ist rechts eingestellt.

\UeberschriftGroesse{\LARGE}

stellt die Schriftgröße der Überschrift ein. Erlaubt sind alle bekannten LaTeX-Schriftgrößenangaben. Sinnvoll sind LARGE, huge oder Huge. Standard ist LARGE.

Zum Schluss kann man noch den Überschrifttext verändern – aber nur für den Lebenslauf. Per Standard wird „Lebenslauf“ ausgegeben. Beispielsweise ist auch ein „Curriculum Vitae“ möglich.

\UeberschriftLebenslauf{Lebenslauf}
Lebenslauf und Abschnitte

Der Lebenslauf beginnt mit der Umgebung Lebenslauf:

\begin{Lebenslauf}
...
\end{Lebenslauf}

Das Makro \EinschubCV definiert den Einschub, wie weit die einzelnen Einträge am linken Rand eingerückt werden. Standard ist 8 pt.

\EinschubCV[buendig]{8pt}

Das optionale Argument buendig gibt an, dass die Abschnittsüberschrift zusätzlich noch bündig zur Tabelle sein soll und nicht linksbündig per Standard.

Der Lebenslauf ist in Abschnitte AbschnittCV unterteilt. Jeder Abschnitt hat dabei einen Titel. Innerhalb des Abschnitts legt \EintragCV einen neuen Eintrag an. In der Textgestaltung ist man ansonsten frei.

\begin{AbschnittCV}{Promotion}
\EintragCV{Mai 2015}{Doktor der Veterinärmedizin \newline
                     Doktorarbeit an der Uni Berlin}
}
\end{AbschnittCV}

Wichtig ist, dass mehreren Zeilen über \newline umgebrochen werden und nicht mit \\, weil intern eine Tabelle benutzt wird und zwei Backslashes das Ende der Tabellenzeile bedeuten.

Abschnitte im Lebenslauf

Abschnitte im Lebenslauf

AbschnittCV und \EintragCV haben beide noch ein optionales Argument, über das man den Abstand unter dem jeweiligen Abschnitt/Eintrag regeln kann. Angegeben wird der Wert in Zeilen, per Standard wird ein Abstand von 0,5 Zeilen benutzt. Beispiel:

\begin{AbschnittCV}[0]{Studium}%
\EintragCV[1]{September 2012}{Abschluss als Diplom-Veterinärmedizinerin}
\EintragCV{2006 – 2012}{Studium Diplom-Veterinärmedizin}
\end{AbschnittCV}

Über die Angabe

\NeueSeiteAbschnittCV

ist ein expliziter Umbruch des Lebenslaufs möglich, sodass mit dem nächsten Eintrag eine neue Seite begonnen wird. Das ist zum Beispiel dann sinnvoll, wenn ein Abschnitt nicht mehr ganz auf die Seite passt und unschön umgebrochen wird.

Die Farbe der Abschnitte und der darunter befindlichen Linien lassen sich über

\AbschnittFarbe{Blue}
\AbschnittLinienFarbe{Blue}

am Anfang des Lebenslaufs ändern, wenn man will. Als Farbnamen werden die herkömmlichen klein geschriebenen LaTeX-Namen verstanden als auch die dvips-Namen.

Über \UnterabschnittCV sind noch feinere Gliederungen möglich:

\begin{AbschnittCV}{Praktische Tätigkeiten}%
\EintragCV{2006 – 2012}{Tierarzt-Praxis Dr. Hauser, Berlin}
\UnterabschnittCV{Kernarbeitsgebiete}{%
    \punkt Hunden die Pfötchen halten
    \punkt Katzen kraulen
}
\UnterabschnittCV{Weitere Aufgaben}{%
    \punkt Wasser besorgen
}
\end{AbschnittCV}

Die Unterabschnitte haben dabei auch Überschriften und danach eine simple Auflistung mit den einzelnen Punkten.

Lebenslauf mit Unterabschnitten

Lebenslauf mit Unterabschnitten

Motivationsseite

Die Motivationsseite ist optional. Wer sie nicht benötigt, kommentiert die Umgebung Motivation einfach aus. Ansonsten kann man dort ein bisschen was über sich selbst erzählen und wieso man zu der beworbenen Stelle
passt.

\begin{Motivation}
Hier steht mein Motivationstext. [...]
\end{Motivation}
Motivationsseite

Motivationsseite

Anlagenverzeichnis

Das Anlagenverzeichnis startet über die gleichnamige Umgebung:

\begin{Anlagenverzeichnis}
    \AbschnittAnlage{Arbeitszeugnisse}
    \begin{Auflistung}
        \Anlage{Tierarzt-Praxis Dr. Hauser}
        \Anlage{FSJ, Malteser-Krankenhaus Berlin}
    \end{Auflistung}

    \AbschnittAnlage{Zeugnisse}
    \begin{Auflistung}
        \Anlage{Doktorurkunde}
        \Anlage[diplomurkunde.pdf]{Diplomurkunde}
        \Anlage{Diplomzeugnis}
        \Anlage{Abiturzeugnis}
    \end{Auflistung}
\end{Anlagenverzeichnis}

\AbschnittAnlage leitet jeweils eine neue Anlage ein. Die Auflistung-Umgebung enthält dann die eigentlichen Anlagen. \Anlage besitzt ein optionales Argument, über welches man einen Dateinamen mit angeben kann. Geschieht das, wird die Seite im Verzeichnis entsprechend verlinkt und der Eintrag unterstrichen.

Anlagenverzeichnis

Anlagenverzeichnis

\AnlageEinfuegen ermöglicht das direkte Einbinden von PDF-Dokumenten:

\AnlageEinfuegen{diplomurkunde.pdf}
\AnlageEinfuegen[quer]{doktorurkunde.pdf}

Das optionale Argument quer gibt an, dass die Anlage im Querformat eingebunden wird. Wenn der Dateiname der Anlage identisch zum optionalen Dateinamen oben bei \Anlage ist, wird die Anlage auch korrekt im PDF verlinkt.

Fazit

In dem Artikel habe ich meine Bewerbungsvorlage vorgestellt, indem ich in den einzelnen Kapiteln die unterschiedlichen Makros und Umgebungen erklärt habe. Die Vorlage wird bei Kommentaren in meinem Blog regelmäßig gepflegt, wie man am CHANGELOG der vergangenen Jahre sieht. Auch durch die Vorstellungen auf der DANTE-Frühjahrstagung 2015 im wunderschönen Stralsund und der DANTE-Frühjahrstagung 2016 in Wuppertal gab es wertvolle Rückmeldungen, die in die Vorlage eingeflossen sind.

Derzeit (März 2018) liegt die Bewerbungsvorlage nur in GitHub und in meinem Blog zum Download bereit und ist nicht auf CTAN verfügbar. Vielleicht findet sich nach dem Lesen des Artikels jemand, der sich an die Paketierung wagt.

Motivation

Meine Motivation für die Erstellung der Bewerbungsvorlage war ursprünglich nur, dass Anschreiben, Lebenslauf und alle weiteren Seiten zusammengehörig aussehen sollten. Sehr viele der vorhandenen Lebenslauf-Pakete auf CTAN lieferten oft nur den Lebenslauf-Teil. Für das Anschreiben in der gleichen Schriftart und -größe sowie Anpassung der Kopf- und Fußzeile musste weitere Arbeit investiert werden. Zusätzlich enthält meine Vorlage noch eine eigene „Meine Seite“ und eine „Motivationsseite”. Ob diese nach heutigem Bewerbungsstandard noch notwendig oder gewünscht sind, soll hier nicht diskutiert werden.

Im Laufe der Jahre kam noch eine zweite Motivation dazu: Weil andere Benutzer die Vorlage rege nutzten, sollte sie so einfach wie möglich gestaltet sein. Insbesondere wollte ich auch Leute ansprechen, die nicht so viel TeX-Erfahrung haben. Aus diesem Grund besteht die Vorlage nur aus einer einzigen Datei, die der Schreiber editieren muss. Über entsprechende Kommentare wird im Dokument genau erklärt, an welchen Stellen ein Bewerber Daten anpassen muss. Da das Zielpublikum dabei immer deutschsprachige Anwender waren, sind alle Makros und Befehle ebenfalls deutschsprachig verfasst.

Aufbau der Dateien

Die Bewerbungsvorlage stelle ich auf GitHub zur Verfügung. Darüber hinaus biete ich den Archiv-Download auf meiner Webseite an. Die Vorlage unterliegt der Creative-Commons-Lizenz CC-BY-SA 4.0 und darf damit geändert und verteilt werden, solange man den Urheber nennt und die Lizenz beibehält. Das aus der Vorlage erstellte PDF unterliegt natürlich keinerlei Lizenzbeschränkungen.

Das Archiv der Bewerbungsvorlage enthält vier Dateien (neben CHANGELOG, README und LICENSE):

  • bewerbung.tex – Die eigentliche Bewerbungsvorlage. Nur hierin werden Daten geändert.
  • bewerbung-latex.sty – Die Style-Datei mit den benötigten Befehlen und Paketen. Diese Datei nicht anfassen!
  • foto-bewerber.png – Das (optionales) Bewerberfoto.
  • signatur-bewerber.png – Die (optionale) eingescannte Unterschrift.

Aufbau der Bewerbung

Die Bewerbung gliedert sich in fünf Teile:

  • Anschreiben
  • Seite mit persönlichen Daten
  • Lebenslauf
  • Motivationsseite
  • Anlagenverzeichnis

Im Folgenden erkläre ich den Aufbau der Vorlage anhand dieser Teile und des zugehörigen LaTeX-Codes. Die Beschreibung ist dabei meistens der Kommentierung in der Vorlage selbst entnommen.

Präambel

In der Präambel (also alles vor der Umgebung document) sind vor allem die persönlichen Daten und die Daten des Adressaten festgelegt, die dann später im Anschreiben und der persönlichen Seite benutzt werden.

Schrift festlegen

Das Makro \SetzeSchrift legt die Schrift fest, was man nur ändern sollte, wenn man die korrekten Namen kennt:

\SetzeSchrift{tgpagella}{TeX Gyre Pagella}

Das erste Argument ist der Paketname für pdfTeX, das zweite Argument der Schriftname für XeTeX und LuaTeX. Als Standardschrift wird TeX Gyre Pagella benutzt, die mir optisch gut gefällt. Hierfür ist das Paket tex-gyre notwendig.

Persönliche Daten

Der nächste Block legt die einzelnen persönlichen Daten fest:

\VollerName{Eva Mustermann}
\AbsenderStrasse{Musterstraße 42}
\AbsenderPLZOrt{12345 Berlin}
\Telefon{Tel.: 0172 567890}
\EMail{eva.mustermann@musterstadt.de}
\OrtDatum{Berlin, \HeutigerTag}
\Geburtstag{1. Januar 1985}
\Geburtsort{Berlin}
\Details{ledig, ortsungebunden}
\Ausbildungsgrad{Promovierte Veterinärmedizinerin}

Bis auf den Ausbildungsgrad und die Details sind alle Angaben zwingend notwendig, damit Anschreiben und die persönliche Seite korrekt dargestellt werden.

Bei der E-Mail ist es möglich, optional eine Farbe anzugeben, mit der die E-Mailadresse dargestellt werden soll. Als Standard ist schwarz eingestellt.

\EMail[orange]{eva.mustermann@musterstadt.de} 
Unterschrift und Foto

Die Unterschrift ist optional und sollte als Bilddatei oder PDF vorliegen. Als Option kann man die Breite der Unterschrift angeben, wobei 5 cm der Standard ist.

\UnterschriftenDatei[5cm]{signatur-bewerber.png}

Auch das Bewerberfoto ist optional. Über die Dateiangabe wird auf der persönlichen Seite das Foto dargestellt. Ein optionales Argument steuert die Höhe des Bildes. Größere Werte als 10,5 cm sind nicht sinnvoll, da das Bild sonst nicht mehr auf die Seite passt.

\BewerberFoto[6cm]{foto-bewerber.jpg}
Adressat

Bei der Angabe der Daten des Adressaten gibt es einige Variationsmöglichkeiten:

\Firma{Hell AG}
\Abteilung{Personalabteilung}
\AdressatVorname{Christina}
\AdressatNachname{Funkel}
\AnschriftStrasse{Route 66}
\AnschriftPLZOrt{00000 Havenfürst}
\AdressatTitel[Prof. Dr.]{Professorin}
\Anrede{Frau}

Bis auf die Firma sowie Straße und Ort sind alle Angaben optional. Wird beispielsweise kein Adressat angegeben bzw. die Anrede weggelassen, wird das Anschreiben automatisch mit „Sehr geehrte Damen und Herren” eingeleitet. Valide Anreden sind „Frau“, „Herr“ oder ein leerer Eintrag. Das Makro \AdressatTitel besitzt zusätzlich ein optionales Argument, welches nur im Briefkopf benutzt wird.

Auch ein zweiter Adressat ist möglich, die Angaben sind alle optional:

\ZweiterAdressatVorname{Pitti}
\ZweiterAdressatNachname{Platsch}
\ZweiterAdressatTitel[Dr.]{Doktor}
\ZweiterAdressatAnrede{Herr}
Bewerberstelle

Nicht zu vergessen ist natürlich die Stelle, auf die man sich bewerben möchte:

\Bewerberstelle{Veterinär-Mediziner (m/w)}

Hier endet die Präambel und der eigentliche Inhalt folgt.

Anschreiben

Abstandsreglung

Für das Anschreiben gibt es zahlreiche Abstandsparameter, die verändert werden können, wenn es erforderlich ist. Somit kann man je nach Menge des Anschreibentextes die Position der einzelnen Elemente (Absender, Adressat, Anschreibentext) steuern, auch wenn man damit gegebenenfalls gegen die Geschäftsbriefnorm DIN 5008 verstößt.

\AbstandZwischenAdressen{0}

Dies ist der Abstand zwischen dem Absender und dem Adressat im Anschreiben. Gemessen wird in Zeilen, d.\,h. der Wert 1.5 steht für anderthalb Zeilen. Der Standard-Wert ist 0.

\AbstandVorAnschreiben{3}

Dies ist der Abstand vor dem eigentlichen Anschreiben (inklusive Ort und Datum). Gemessen wird in Zeilen, d.\,h. der Wert 1.5 steht für anderthalb Zeilen. Der Standard-Wert ist 1.

\AnschreibenSeiteVergroessern{0}

Hierüber kann man die Anschreibenseite vergrößern, d.\,h. es ist damit möglich, über den eigentlichen unteren Rand zu schreiben, falls das Anschreiben etwas länger geworden ist. Gemessen wird in Zeilen, d.\,h. der Wert 1.5 steht für anderthalb Zeilen. Der Standard-Wert ist 0. Als Maximalwert sollte man 3 einstellen, ansonsten wirkt das Anschreiben vom Aufbau sehr unausgeglichen und unschön.

\AbstandVorAnlagen{2}

Die letzte Angabe regelt den Abstand zwischen Unterschrift und den Anlagen im Anschreiben. Gemessen wird in Zeilen, d.\,h. der Wert 1.5 steht für anderthalb Zeilen. Der Standard-Wert ist 1.

Anlagen

Im Anschreiben kann ein optionaler Hinweis auf die Anlagen erscheinen:

\AnschreibenAnlage{Anlagen}

Die Anlagen selbst werden im Anlagenverzeichnis am Ende näher aufgeschlüsselt.

Anschreiben

Die Umgebung Anschreiben enthält den eigentlichen Bewerbungstext.

\begin{Anschreiben}
hier steht mein Bewerbungstext. [...]
\end{Anschreiben}
Anschreiben

Anschreiben

Persönliche Seite

Für die persönliche Seite hat man alle Angaben bereits in der Präambel getätigt, sodass nur das Makro

\MeineSeite

angegeben werden muss.

Darstellung der persönlichen Seite

Darstellung der persönlichen Seite

Lebenslauf

Überschrift einstellen

Die Überschriften des Lebenslaufs und der weiteren Kapitel wie Motivationsseite und Anlagenverzeichnis können über unterschiedliche Makros eingestellt werden. Prinzipiell kann man die Einstellung vor jedem Kapitel ändern. Einheitlicher ist es, wenn die Definition nur einmal am Anfang des Lebenslaufes geschieht.

Die Ausrichtung gibt an, wo die Überschrift steht:

\UeberschriftAusrichtung{links}

Mögliche Angaben sind: links, rechts und mittig. Per Standard ist rechts eingestellt.

\UeberschriftGroesse{\LARGE}

stellt die Schriftgröße der Überschrift ein. Erlaubt sind alle bekannten LaTeX-Schriftgrößenangaben. Sinnvoll sind LARGE, huge oder Huge. Standard ist LARGE.

Zum Schluss kann man noch den Überschrifttext verändern – aber nur für den Lebenslauf. Per Standard wird „Lebenslauf“ ausgegeben. Beispielsweise ist auch ein „Curriculum Vitae“ möglich.

\UeberschriftLebenslauf{Lebenslauf}
Lebenslauf und Abschnitte

Der Lebenslauf beginnt mit der Umgebung Lebenslauf:

\begin{Lebenslauf}
...
\end{Lebenslauf}

Das Makro \EinschubCV definiert den Einschub, wie weit die einzelnen Einträge am linken Rand eingerückt werden. Standard ist 8 pt.

\EinschubCV[buendig]{8pt}

Das optionale Argument buendig gibt an, dass die Abschnittsüberschrift zusätzlich noch bündig zur Tabelle sein soll und nicht linksbündig per Standard.

Der Lebenslauf ist in Abschnitte AbschnittCV unterteilt. Jeder Abschnitt hat dabei einen Titel. Innerhalb des Abschnitts legt \EintragCV einen neuen Eintrag an. In der Textgestaltung ist man ansonsten frei.

\begin{AbschnittCV}{Promotion}
\EintragCV{Mai 2015}{Doktor der Veterinärmedizin \newline
                     Doktorarbeit an der Uni Berlin}
}
\end{AbschnittCV}

Wichtig ist, dass mehreren Zeilen über \newline umgebrochen werden und nicht mit \\, weil intern eine Tabelle benutzt wird und zwei Backslashes das Ende der Tabellenzeile bedeuten.

Abschnitte im Lebenslauf

Abschnitte im Lebenslauf

AbschnittCV und \EintragCV haben beide noch ein optionales Argument, über das man den Abstand unter dem jeweiligen Abschnitt/Eintrag regeln kann. Angegeben wird der Wert in Zeilen, per Standard wird ein Abstand von 0,5 Zeilen benutzt. Beispiel:

\begin{AbschnittCV}[0]{Studium}%
\EintragCV[1]{September 2012}{Abschluss als Diplom-Veterinärmedizinerin}
\EintragCV{2006 – 2012}{Studium Diplom-Veterinärmedizin}
\end{AbschnittCV}

Über die Angabe

\NeueSeiteAbschnittCV

ist ein expliziter Umbruch des Lebenslaufs möglich, sodass mit dem nächsten Eintrag eine neue Seite begonnen wird. Das ist zum Beispiel dann sinnvoll, wenn ein Abschnitt nicht mehr ganz auf die Seite passt und unschön umgebrochen wird.

Die Farbe der Abschnitte und der darunter befindlichen Linien lassen sich über

\AbschnittFarbe{Blue}
\AbschnittLinienFarbe{Blue}

am Anfang des Lebenslaufs ändern, wenn man will. Als Farbnamen werden die herkömmlichen klein geschriebenen LaTeX-Namen verstanden als auch die dvips-Namen.

Über \UnterabschnittCV sind noch feinere Gliederungen möglich:

\begin{AbschnittCV}{Praktische Tätigkeiten}%
\EintragCV{2006 – 2012}{Tierarzt-Praxis Dr. Hauser, Berlin}
\UnterabschnittCV{Kernarbeitsgebiete}{%
    \punkt Hunden die Pfötchen halten
    \punkt Katzen kraulen
}
\UnterabschnittCV{Weitere Aufgaben}{%
    \punkt Wasser besorgen
}
\end{AbschnittCV}

Die Unterabschnitte haben dabei auch Überschriften und danach eine simple Auflistung mit den einzelnen Punkten.

Lebenslauf mit Unterabschnitten

Lebenslauf mit Unterabschnitten

Motivationsseite

Die Motivationsseite ist optional. Wer sie nicht benötigt, kommentiert die Umgebung Motivation einfach aus. Ansonsten kann man dort ein bisschen was über sich selbst erzählen und wieso man zu der beworbenen Stelle
passt.

\begin{Motivation}
Hier steht mein Motivationstext. [...]
\end{Motivation}
Motivationsseite

Motivationsseite

Anlagenverzeichnis

Das Anlagenverzeichnis startet über die gleichnamige Umgebung:

\begin{Anlagenverzeichnis}
    \AbschnittAnlage{Arbeitszeugnisse}
    \begin{Auflistung}
        \Anlage{Tierarzt-Praxis Dr. Hauser}
        \Anlage{FSJ, Malteser-Krankenhaus Berlin}
    \end{Auflistung}

    \AbschnittAnlage{Zeugnisse}
    \begin{Auflistung}
        \Anlage{Doktorurkunde}
        \Anlage[diplomurkunde.pdf]{Diplomurkunde}
        \Anlage{Diplomzeugnis}
        \Anlage{Abiturzeugnis}
    \end{Auflistung}
\end{Anlagenverzeichnis}

\AbschnittAnlage leitet jeweils eine neue Anlage ein. Die Auflistung-Umgebung enthält dann die eigentlichen Anlagen. \Anlage besitzt ein optionales Argument, über welches man einen Dateinamen mit angeben kann. Geschieht das, wird die Seite im Verzeichnis entsprechend verlinkt und der Eintrag unterstrichen.

Anlagenverzeichnis

Anlagenverzeichnis

\AnlageEinfuegen ermöglicht das direkte Einbinden von PDF-Dokumenten:

\AnlageEinfuegen{diplomurkunde.pdf}
\AnlageEinfuegen[quer]{doktorurkunde.pdf}

Das optionale Argument quer gibt an, dass die Anlage im Querformat eingebunden wird. Wenn der Dateiname der Anlage identisch zum optionalen Dateinamen oben bei \Anlage ist, wird die Anlage auch korrekt im PDF verlinkt.

Fazit

In dem Artikel habe ich meine Bewerbungsvorlage vorgestellt, indem ich in den einzelnen Kapiteln die unterschiedlichen Makros und Umgebungen erklärt habe. Die Vorlage wird bei Kommentaren in meinem Blog regelmäßig gepflegt, wie man am CHANGELOG der vergangenen Jahre sieht. Auch durch die Vorstellungen auf der DANTE-Frühjahrstagung 2015 im wunderschönen Stralsund und der DANTE-Frühjahrstagung 2016 in Wuppertal gab es wertvolle Rückmeldungen, die in die Vorlage eingeflossen sind.

Derzeit (März 2018) liegt die Bewerbungsvorlage nur in GitHub und in meinem Blog zum Download bereit und ist nicht auf CTAN verfügbar. Vielleicht findet sich nach dem Lesen des Artikels jemand, der sich an die Paketierung wagt.

Vor ca. einem Jahr hat Canonical seine offizielle Tutorial Webseite gelauncht.

Seitdem hat sich einiges getan und es wurde eine kleine Sammlung an Anleitungen, Installationen und Tipps rund um das Ubuntu Universum aufgebaut.
Inzwischen finden sich etwa 40 Hilfestellungen für Desktop oder Server Systeme auf der Seite.

Dabei sind sowohl aktuelle Themen wie Kubernetes, aber auch Klassiker wie Apache.
Jede Anleitung kann interaktiv durchlaufen werden und zeigt die verbleibende Arbeitszeit, sowie einen geschätzten Schwierigkeitsgrad an.

Ubuntu-tutorials

Damit ist das Ende der Fahnenstange noch nicht erreicht. Denn jeder ist dazu eingeladen eigene Tutorials zu schreiben.

Ein wenig Markdown Kenntnisse, sowie etwas Git Wissen reichen aus, um eine eigene Installationsanleitung einzureichen.
Eine Einführung in diese Thematik ist vorhanden.

Das Tutorial Projekt ist Open Source und kann via Github geforkt werden.

 

Ubuntu Tutorial

Foto: © Scanrail / Fotolia.com

Ubuntu bot in der Installationsroutine seit langem eine Verschlüsselung der Benutzerverzeichnisse auf Basis von eCryptFS an (eCryptFS - Benutzerdaten verschlüsseln). Mit der kommenden LTS 18.04 Bionic Beaver verabschiedet man sich von dieser Lösung und empfiehlt eine Vollverschlüsselung mittels LUKS (LUKS - Betriebssystem verschlüsseln).

Dazu heißt es lapidar in den ReleaseNotes:

The installer no longer offers the encrypted home option using ecryptfs-utils. It is recommended to use full-disk encryption instead for this release.

Im verlinkten Bugreport wird man leider auch nicht konkret was die genaue Ursache der Entscheidung ist:

The preffered way to get encrypted disks, these days, is to do full disk encryption using LUKS.

If per-directory encryption is required, it is recommended to us fscrypt support in e.g. ext4.

Support for installing using ecryptfs encrypted /home has been disabled in the installers.

Please demote ecryptfs-utils to universe for bionic+

Über die genaue Ursache kann man daher nur mutmaßen. Möglicherweise spielt hier eine Rolle, dass der bisherige Hauptentwickler von eCryptFS Dustin Kirkland Canonical den Rücken gekehrt hat. Eventuell sieht man sich nun nicht mehr in der Lage diese Lösung auf LTS-Niveau zu pflegen.

Die bereits erfolgte Verschiebung nach universe lässt jedenfalls nichts gutes hoffen. Programme werden dort mehr schlecht als recht gewartet und insbesondere in so einem sensiblen Bereich mag man das Risiko kaum eingehen.

Wenngleich die prominente Platzierung von eCryptFS immer ein Ubuntu-Spezifikum war, stand diese Lösung auch immer in vielen anderen Distributionen zur Verfügung und hatte durchaus ihre Daseinsberechtigung. Eine Teilverschlüsselung ist zwar immer ein potenzielles Risiko, da sensible Dateien - programmbedingt oder versehentlich - in nicht verschlüsselten Bereichen abgelegt werden können. Andererseits bot eCryptFS insbesondere auf Mehrbenutzersystemen einen Mehrwert, da es die Dateien der einzelnen Benutzer gegeneinander abschirmen konnte. Eine Vollverschlüsselung mittels LUKS kann dies nicht leisten.

Es bleibt daher zu hoffen, dass die angedeutete Lösung auf Basis von ext4 zeitnah und benutzerfreundlich umgesetzt wird. Bisher bietet diese keine größere Linux-Distribution standardmäßig an.

14. April 2018

vNotes 14. April 2018 13:45

Pythontutor

Kleiner Tipp für alle, die Algorithmen in Python debuggen möchten: der Pythontutor visualisiert wunderschön, wie eingegebene Algorithmen durchlaufen werden – Schritt für Schritt.

Einfach hier den Sourcecode eingeben, “Visualize Execution” anwählen und schrittweise anschauen, wie dieser bis zum Ergebnis durchlaufen wird.

Besonders gut eignet sich aus meiner Sicht das Tool, wenn man komplexe Algorithmen mit z.B. Rekursion analysieren will. Zum Beispiel eine mögliche Implementierung für die Fibonacci-Zahlen.

Der Sourcecode ist auf GitHub verfügbar.

In den letzten Jahren habe ich verschiedene Backuplösungen ausprobiert. Ob es rsync, DejaDup, Borg immer war es das Selbe, dass ich nie wirklich zufrieden bzw. begeistert von der Lösung war. Sicherlich lag es auch daran, dass ich nicht wirklich mich groß umstellen wollte, bzw. ich auch manchmal zu Faul war überhaupt Backups zu machen, was natürlich sehr oft zu einem schlimmer Ergebnis geführt hat :-).

Doch jetzt habe ich für mich die Lösung gefunden. Durch einen kleinen Hinweis auf der Fedora Project Page, konnte ich das Tool meiner Träume finden:

restic

restic ist eine OpenSource Backup Lösung die im Terminal läuft. Einige Vorteile von restic:

  • AES-256Bit Verschlüsselung
    • Unterstützung mehrerer Schlüssel
  • Unterstützung großer Cloud-Anbieter (Google, AWS…)
  • Unterstützung verschiedener Protokolle
  • Snapshots
  • Inkrementelle Backups

Installation

Die Installation von restic ist sehr gut in der Doku beschrieben. Es gibt für alle großen Distros fertige Pakete.

Repository

restic ähnelt im Konzept und dem Aufbau der Befehlen sehr git. Deswegen ist es auch nicht verwunderlich, dass die Speicherorte für die Backups Repositorys heißen. Im folgenden, werden wir ein lokales Repositiory einrichten. Für externe Repositorys schaut bitte in der Doku für den entsprechenden Aufbau des Befehls nach.

restic init --repo /run/media/malte/Backup/Sicherungen

Mit diesem einfachem Befehl wird uns Repository auf einer externen Festplatte eingerichtet. Nach der Eingabe des Befehls, werdet ihr nach eurem Wunschpasswort für die Repository und dessen Bestätigung gefragt. Wenn alles richtig verlaufen ist sieht es dann so aus:

[malte@FedLin ~] $ restic init --repo /run/media/malte/Backup/Sicherungen/
enter password for new repository: 
enter password again: 
created restic repository 2ba283f830 at /run/media/malte/Backup/Sicherungen/

Please note that knowledge of your password is required to access
the repository. Losing your password means that your data is
irrecoverably lost.

Wir haben erfolgreich eine Repository angelegt und können nun mit dem Backupprozess beginnen.

Backup

Um ein Backup durchzuführen, müssen wir nur folgenden Befehl eingeben

restic -r /run/media/malte/Backup/Sicherungen/ backup /home/malte

Mit -r geben wir unsere Repository an, mit backup welcher Befehl durchgeführt werden soll und schlußendlich was man sichern soll. Nach erfolgreicher Sicherung, sieht es dann so aus:

[malte@FedLin Blog] $ restic -r /run/media/malte/Backup/Sicherungen/ backup /home/malte
enter password for repository: 
password is correct
using parent snapshot 5b523b51
scan [/home/malte]
scanned 3464 directories, 19166 files in 0:04
[0:10] 100.00%  16.300 GiB / 16.300 GiB  22630 / 22630 items  0 errors  ETA 0:00 
duration: 0:10
snapshot c8c62281 saved

Allerdings bin ich davon ein Freund bestimmte Dateien nicht mit zu sichern, das wären zum Beispiel mein Papierkorb, Cache Files und einiges mehr. Da ich aber nicht alle aufführen will im Befehl mache ich das in einer Exclude Datei. Zum Glück hat auch das schon jemand gemacht: github/rubo77/rsync-homedir-excludes. Um diese Datei nutzen zu können, machen wir folgendes:

wget https://raw.githubusercontent.com/rubo77/rsync-homedir-excludes/master/rsync-homedir-excludes.txt -O /var/tmp/ignorelist

Und jetzt noch schnell den Sicherungsbefehl anpassen:

restic -r /run/media/malte/Backup/Sicherungen/ backup /home/malte --exclude-file="/var/tmp/ignorelist" --exclude="/home/malte/Downloads"

Und fertig.

Snapshots

Mit dem snapshots Befehl ist es möglich die Snapshots zu verwalten:

[malte@FedLin Blog] $ restic -r /run/media/malte/Backup/Sicherungen/ snapshots
enter password for repository: 
password is correct
ID        Date                 Host        Tags        Directory
----------------------------------------------------------------------
91c5cf74  2018-04-14 14:57:46  FedLin                  /home/malte
f9f83b20  2018-04-14 15:10:55  FedLin                  /home/malte
9d3ff71e  2018-04-14 15:36:18  FedLin                  /home/malte
5f093a5f  2018-04-14 16:12:05  FedLin                  /home/malte
92f19ae4  2018-04-14 17:24:24  FedLin                  /home/malte
5b523b51  2018-04-14 17:25:47  FedLin                  /home/malte
c8c62281  2018-04-14 18:09:01  FedLin                  /home/malte
----------------------------------------------------------------------
7 snapshots

Um ein Snapshot zu entfernen, ist folgender Befehl nötig:

[malte@FedLin Blog] $ restic -r /run/media/malte/Backup/Sicherungen/ forget c8c62281

Jedoch sind die entsprechenden Verlinkungen noch vorhanden, um diese zu löschen, wird noch der folgende Befehl benötigt:

[malte@FedLin Blog] $ restic -r /run/media/malte/Backup/Sicherungen/ prune

Wiederherstellen

Es gibt zwei Wege die Backups wiederherzustellen, zurück spielen oder mounten. Der einfachste Weg ist der folgende:

restic -r /run/media/malte/Backup/Sicherungen/ restore latest --target /home/malte

Um einen speziellen Snapshot zurück zuspielen, muss der Befehl ein wenig angepasst werden:

restic -r /run/media/malte/Backup/Sicherungen/ restore 5b523b51 --target /home/malte

Um nur bestimmte Dateien zurück zuspielen, kann man auch einfach ein Snapshot mounten:

restic -r /run/media/malte/Backup/Sicherungen/ mount /mnt

Schlüssel

Es ist sehr einfach die Schlüssel für die Repo zu verwalten:

[malte@FedLin Blog] $ restic -r /run/media/malte/Backup/Sicherungen/ key list
enter password for repository: 
password is correct
 ID          User        Host        Created
----------------------------------------------------------------------
*af7f857b    malte       FedLin      2018-04-14 14:57:32
----------------------------------------------------------------------

Um einen neuen Schlüssel hinzuzufügen, muss man einfach nur folgenden Befehl ausführen:

[malte@FedLin Blog] $ restic -r /run/media/malte/Backup/Sicherungen/ key add

Und natürlich kann man den Schlüssel auch löschen

[malte@FedLin Blog] $ restic -r /run/media/malte/Backup/Sicherungen/ key remove af7f857b

In den letzten Jahren habe ich verschiedene Backuplösungen ausprobiert. Ob es rsync, DejaDup, Borg immer war es das Selbe, dass ich nie wirklich zufrieden bzw. begeistert von der Lösung war. Sicherlich lag es auch daran, dass ich nicht wirklich mich groß umstellen wollte, bzw. ich auch manchmal zu Faul war überhaupt Backups zu machen, was natürlich sehr oft zu einem schlimmer Ergebnis geführt hat :-).

Doch jetzt habe ich für mich die Lösung gefunden. Durch einen kleinen Hinweis auf der Fedora Project Page, konnte ich das Tool meiner Träume finden:

restic

restic ist eine OpenSource Backup Lösung die im Terminal läuft. Einige Vorteile von restic:

  • AES-256Bit Verschlüsselung
    • Unterstützung mehrerer Schlüssel
  • Unterstützung großer Cloud-Anbieter (Google, AWS...)
  • Unterstützung verschiedener Protokolle
  • Snapshots
  • Inkrementelle Backups

Installation

Die Installation von restic ist sehr gut in der Doku beschrieben. Es gibt für alle großen Distros fertige Pakete.

Repository

restic ähnelt im Konzept und dem Aufbau der Befehlen sehr git. Deswegen ist es auch nicht verwunderlich, dass die Speicherorte für die Backups Repositorys heißen. Im folgenden, werden wir ein lokales Repositiory einrichten. Für externe Repositorys schaut bitte in der Doku für den entsprechenden Aufbau des Befehls nach.

restic init --repo /run/media/malte/Backup/Sicherungen

Mit diesem einfachem Befehl wird uns Repository auf einer externen Festplatte eingerichtet. Nach der Eingabe des Befehls, werdet ihr nach eurem Wunschpasswort für die Repository und dessen Bestätigung gefragt. Wenn alles richtig verlaufen ist sieht es dann so aus:

[malte@FedLin ~] $ restic init --repo /run/media/malte/Backup/Sicherungen/
enter password for new repository: 
enter password again: 
created restic repository 2ba283f830 at /run/media/malte/Backup/Sicherungen/

Please note that knowledge of your password is required to access
the repository. Losing your password means that your data is
irrecoverably lost.

Wir haben erfolgreich eine Repository angelegt und können nun mit dem Backupprozess beginnen.

Backup

Um ein Backup durchzuführen, müssen wir nur folgenden Befehl eingeben

restic -r /run/media/malte/Backup/Sicherungen/ backup /home/malte

Mit -r geben wir unsere Repository an, mit backup welcher Befehl durchgeführt werden soll und schlußendlich was man sichern soll. Nach erfolgreicher Sicherung, sieht es dann so aus:

[malte@FedLin Blog] $ restic -r /run/media/malte/Backup/Sicherungen/ backup /home/malte
enter password for repository: 
password is correct
using parent snapshot 5b523b51
scan [/home/malte]
scanned 3464 directories, 19166 files in 0:04
[0:10] 100.00%  16.300 GiB / 16.300 GiB  22630 / 22630 items  0 errors  ETA 0:00 
duration: 0:10
snapshot c8c62281 saved

Allerdings bin ich davon ein Freund bestimmte Dateien nicht mit zu sichern, das wären zum Beispiel mein Papierkorb, Cache Files und einiges mehr. Da ich aber nicht alle aufführen will im Befehl mache ich das in einer Exclude Datei. Zum Glück hat auch das schon jemand gemacht: github/rubo77/rsync-homedir-excludes. Um diese Datei nutzen zu können, machen wir folgendes:

wget https://raw.githubusercontent.com/rubo77/rsync-homedir-excludes/master/rsync-homedir-excludes.txt -O /var/tmp/ignorelist

Und jetzt noch schnell den Sicherungsbefehl anpassen:

restic -r /run/media/malte/Backup/Sicherungen/ backup /home/malte --exclude-file="/var/tmp/ignorelist" --exclude="/home/malte/Downloads"

Und fertig.

Snapshots

Mit dem snapshots Befehl ist es möglich die Snapshots zu verwalten:

[malte@FedLin Blog] $ restic -r /run/media/malte/Backup/Sicherungen/ snapshots
enter password for repository: 
password is correct
ID        Date                 Host        Tags        Directory
----------------------------------------------------------------------
91c5cf74  2018-04-14 14:57:46  FedLin                  /home/malte
f9f83b20  2018-04-14 15:10:55  FedLin                  /home/malte
9d3ff71e  2018-04-14 15:36:18  FedLin                  /home/malte
5f093a5f  2018-04-14 16:12:05  FedLin                  /home/malte
92f19ae4  2018-04-14 17:24:24  FedLin                  /home/malte
5b523b51  2018-04-14 17:25:47  FedLin                  /home/malte
c8c62281  2018-04-14 18:09:01  FedLin                  /home/malte
----------------------------------------------------------------------
7 snapshots

Um ein Snapshot zu entfernen, ist folgender Befehl nötig:

[malte@FedLin Blog] $ restic -r /run/media/malte/Backup/Sicherungen/ forget c8c62281

Jedoch sind die entsprechenden Verlinkungen noch vorhanden, um diese zu löschen, wird noch der folgende Befehl benötigt:

[malte@FedLin Blog] $ restic -r /run/media/malte/Backup/Sicherungen/ prune

Wiederherstellen

Es gibt zwei Wege die Backups wiederherzustellen, zurück spielen oder mounten. Der einfachste Weg ist der folgende:

restic -r /run/media/malte/Backup/Sicherungen/ restore latest --target /home/malte

Um einen speziellen Snapshot zurück zuspielen, muss der Befehl ein wenig angepasst werden:

restic -r /run/media/malte/Backup/Sicherungen/ restore 5b523b51 --target /home/malte

Um nur bestimmte Dateien zurück zuspielen, kann man auch einfach ein Snapshot mounten:

restic -r /run/media/malte/Backup/Sicherungen/ mount /mnt

Schlüssel

Es ist sehr einfach die Schlüssel für die Repo zu verwalten:

[malte@FedLin Blog] $ restic -r /run/media/malte/Backup/Sicherungen/ key list
enter password for repository: 
password is correct
 ID          User        Host        Created
----------------------------------------------------------------------
*af7f857b    malte       FedLin      2018-04-14 14:57:32
----------------------------------------------------------------------

Um einen neuen Schlüssel hinzuzufügen, muss man einfach nur folgenden Befehl ausführen:

[malte@FedLin Blog] $ restic -r /run/media/malte/Backup/Sicherungen/ key add

Und natürlich kann man den Schlüssel auch löschen

[malte@FedLin Blog] $ restic -r /run/media/malte/Backup/Sicherungen/ key remove af7f857b
vNotes 14. April 2018 00:00

Pythontutor

Kleiner Tipp für alle, die Algorithmen in Python debuggen möchten: der Pythontutor visualisiert wunderschön, wie eingegebene Algorithmen durchlaufen werden - Schritt für Schritt.

Einfach hier den Sourcecode eingeben, "Visualize Execution" anwählen und schrittweise anschauen, wie dieser bis zum Ergebnis durchlaufen wird.

Besonders gut eignet sich aus meiner Sicht das Tool, wenn man komplexe Algorithmen mit z.B. Rekursion analysieren will. Zum Beispiel eine mögliche Implementierung für die Fibonacci-Zahlen.

Der Sourcecode ist auf GitHub verfügbar.

13. April 2018

Bild von pixelcreatures via pixabay / Lizenz: CC0 Public Domain

Die zentralen Paketquellen der meisten Linux-Distributionen erlauben einen kontrollierten Bezug von Software. Kein Herumstöbern im Internet, keine Downloads von ungeprüften Quellen und ein zentrales Sicherheits- und Qualitätsmanagement durch den Distributor galten immer als zentrale Argumente für dieses System. Doch gilt das wirklich so uneingeschränkt?

Das bekannteste Beispiel ist sicherlich Ubuntus universe. Dort liegen die nicht unterstützen Pakete der Distribution, mehr oder minder gewartet von der Community. Je nach Standpunkt ist das mit zunehmendem zeitlichen Abstand zur Veröffentlichung ein Müllkippe oder gar eine tickende Zeitbombe. Das universe ist berühmt-berüchtigt, aber in der Linux-Welt nicht so singulär, wie man das gerne hätte. Die meisten Distributionen haben tausende oder gar zehntausende Pakete in ihren Quellen, auf die sich theoretisch das Supportversprechen erstreckt.

Dabei entwickeln, die Distributoren kaum Software selbst. Die meiste Entwicklungsarbeit erfolgt in den Entwicklungsteams der einzelnen Softwareprojekte, im Jargon "upstream" genannt. So lange die jeweilige Softwareversion hier noch gepflegt wird, muss der Distributor Patches nur anpassen und für die Distribution ausrollen. Doch was passiert, wenn das Upstream-Projekt den Support einstellt? Das ist nicht so theoretisch, wie man es gerne hätte. Die meisten LTS-Distributionen haben deutlich längere Laufzeiten, als die Upstream-Projekte.

Ein Beispiel verdeutlicht das ziemlich gut. Das viel genutzte Toolkit Qt liegt derzeit in Version 5 vor. Die vorangegangene Version 4 ist seit 2015 nicht mehr unterstützt. Trotzdem liefern sie nach zahlreiche Distributionen aus, weil sie immer noch die Basis für viele Anwendungen darstellt, die immer noch nicht auf Version 5 portiert wurden. Den Finger in die Wunde hat nun das Debian-Projekt gelegt, indem es Qt4 für die kommenden Versionen aus den Paketquellen entfernt hat. Die Ankündigung zeigt auch, wie kompliziert es ist eine offiziell abgekündigte Version weiter zu pflegen - selbst für ein professionelles Security-Team wie das von Debian. Ubuntu wird Qt4 trotzdem noch für die kommende LTS 18.04 ausliefern, wenn auch nur in universe. OpenSUSE will für die kommende Leap-Version 15 ebenfalls an Qt4 festhalten, weil davon noch so viel abhängt.

Natürlich muss man relativierend sagen, dass nicht jeder ungelöste Fehler und jede semi-kritische Sicherheitslücke gleich eine Katastrophe darstellt. Nicht jedes Problem destabilisiert gleich das gesamte System. Wobei es auch Pakete gibt, die deutlich kritischer sind und ebenso wenig gewartet werden. Man denke nur an die zahllosen Browser auf WebKit-Basis, welche je nach Versionsstand katastrophale Sicherheitslücken hat.

Der normale Benutzer bekommt von solchen Schwierigkeiten nichts mit. Er installiert Software aus den offizielle Paketquellen und fühlt sich sicher. Die oben thematisierten Distributionen gehören zudem zweifelsohne zu den Vorreitern in Sachen Verbreitung und Qualität in der Linux-Welt. Wie das bei den unzähligen Nischenprojekten und Forks aussieht möchte man gar nicht erst prüfen.

Das bisherige System ist also alles andere als perfekt, das sollte man im Hinterkopf behalten, wenn man möglicherweise veraltete Bibliotheken als großes Risiko in den kommenden Formaten Snap und Flatpak anprangert.

Zudem sollte man sich nicht zu sicher fühlen. Die Linux-Distributionen sitzen auf riesigen ungelösten Baustellen. Bei einer höheren Verbreitung haben viele davon das Potenzial einem um die Ohren zu fliegen. Daran sollte man denken, wenn man mal wieder die vermeintlich überlegene Sicherheitsarchitektur von Linux anpreist.

Beim Start einer Ubuntu-Installationen wird ein Splash Screen angezeigt. Möchte man stattdessen dauerhaft die Statusmeldungen beim Hochfahren sehen, so kann dies über die GRUB-Konfiguration geändert werden. Dazu muss die Default-Konfigurationsdatei von GRUB im Editor geöffnet werden:

sudo nano /etc/default/grub

Dort muss die Zeile:

GRUB_CMDLINE_LINUX_DEFAULT="splash quiet"

zu:

GRUB_CMDLINE_LINUX_DEFAULT="text"

geändert werden. Nachdem die Änderung der Konfiguration gespeichert wurde, muss GRUB bzw. die Konfiguration desselben aktualisiert werden. Dies geschieht mittels:

sudo update-grub

Anschließend kann der Rechner neugestartet werden. Statt des Splash Screen werden nun die Statusmeldungen beim Start angezeigt.

11. April 2018

Wie schon im vergangenen Jahr hat Mozilla auch dieses Jahr seinen „Statusbericht zur Internetgesundheit“ veröffentlicht. In diesem setzt sich Mozilla auf Grundlage von Forschungsergebnissen mit den Dingen auseinander, welche dem Internet helfen respektive ihm schaden.

Vor einem Jahr hat Mozilla seinen ersten sogenannten „Statusbericht zur Internetgesundheit“ veröffentlicht. Nun hat Mozilla seinen Bericht für das Jahr 2018 fertiggestellt. Kernthemen dabei sind Dezentralisierung, Digitale Teilhabe, Offenheit, Datenschutz und Sicherheit sowie Digitale Bildung.

Statusbericht zur Internetgesundheit 2018

Der Bericht ist in verschiedenen Sprachen verfügbar, darunter auch Deutsch. Außerdem bietet Mozilla eine 54-seitige Kurzfassung als PDF-Download an, welche ebenfalls in deutscher Sprache zur Verfügung steht.

Mehr Informationen gibt es in der offiziellen Presseankündigung zum Thema.

Der Beitrag Mozilla veröffentlicht Statusbericht zur Internetgesundheit 2018 erschien zuerst auf soeren-hentzschel.at.

Nachdem wir Koha im ersten Teil installiert und im zweiten Teil das Bibliografische Framework eingerichtet haben, geht es heute darum einige Grundeinstellungen in Koha vorzunehmen. Wir wollen neue Kategorien für unsere Benutzer und Medien einrichten, sowie einige Systemparameter ändern.

Dieser Artikel ist ein Teil einer Serie:

  1. Installation und Einrichtung einer ersten Bibliothek
  2. Das bibliografische Framework
  3. Grundeinstellungen
  4. Buchaufnahme
  5. Drucken von Etiketten
  6. Ausleihkonditionen
  7. Verbinden mit einem Z.39.50 / SRU Server
  8. Benachrichtigungen und Erinnerungen
  9. Mahnungen und Gebühren

Grundeinstellungen

Bibliothek

Wir loggen uns wieder mit unseren Administrator-Account aus Teil 1 ein und wählen Administration → Basisparameter → Bibliotheken und Gruppen. In der Tabelle klicken wir auf Bearbeiten und können nun weitere Angaben zu unserer Bibliothek machen.

Koha Basisparameter Bibliotheken

Neben der Post-Adresse können wir eine eMail-Adresse angeben oder eine zusätzliche Informationen, die im OPAC erscheinen sollen. Der OPAC ist der Teil von Koha, den die Benutzer sehen und in dem sie den Bestand durchsuchen können, sozusagen der öffentliche Teil der Bibliothekswebseite.

Koha Bibliothek ausgefüllt

Medientypen

Bei der Installation haben wir bereits den Medientyp „Buch“ angelegt. Diesen wollen zuerst bearbeiten unter Administration → Basisparameter → Medientypen. In der Tabelle klicken wir wieder auf Bearbeiten und können noch einiges einstellen. So können wir ein Bild festlegen oder bestimmen, ob Medien generell ausleihbar sind oder nicht. Wenn man möchte, kann man noch einen Leihgebühr, Bearbeitungskosten bei Verlust oder eine einen allgemeinen Rückgabehinweis eintragen.

Koha Medientypen

Nach dem gleichen Muster legen wir jetzt noch weitere Medientypen an. Hier muss jeder selbst entscheiden, welche Medientypen er braucht. Man kann z.B. nur einen Typ für Bücher haben, oder mehrere anlegen z.B. zusätzlich für Präsenzexemplare. Für eine Schulbibliothek empfehle ich folgende Typen:

  • Buch (BU)
  • DVD (DV)
  • CD-Audio (CD)

Wenn man noch Karten, CD-ROMs, … hat, kann man dafür natürlich noch weitere Medientypen anlegen.

Koha Medientypen

Benutzerkategorien

Nachdem wir nun die Medientypen angelegt haben, brauchen wir noch verschiedene Kategorien für unsere Benutzer. Für jede Benutzerkategorie können wir separat Ausleihkonditionen oder Gebühren bei überfälligen Medien festlegen. Bei der Installation haben wir bereits eine Kategorie für Bibliotheksmitarbeiter angelegt. Unter Administration → Benutzer und Ausleihe → Benutzertypen richten wir nun noch folgende Gruppen ein:

  • Bibliotheksmitarbeiter – (MA) → haben wir bereits
  • Schüler (S)
  • Eltern (P)

Über „+ Neue Kategorie“ können wir einen neuen Benutzertyp hinzufügen. Man kann entweder ein festes Ablaufdatum für diese Kategorie festlegen oder eine in Monaten angeben. Ich habe mich hier für 10 Jahre entschieden, also 120 Monate. Wenn man möchte kann man auch noch ein Mindest- oder Höchstalter festlegen. Unter Kategorie muss man eine der vorgebenden Kategorien wählen, in diesem Fall „Kind“.

Koha neuer Benutzertyp

Das gleiche machen wir jetzt auch für unsere Elternkategorie. Die Felder können individuell angepasst werden, nur beim Punkt Kategorie wählen wir „Erwachsener“. Wenn man zwischen Grundschülern und Mittel- bzw. Oberstufenschülern unterscheiden möchte (z.B. Ausleihkonditionen), braucht man dafür noch extra Benutzertypen.

Koha Benutzertypen

Normierte Werte anpassen

Normierte Werte sind immer dann sinnvoll, wenn man möchte, dass festgelegte Werte verwendet werden sollen. In der Regel braucht man das z.B. für den Status von Medien (verloren, beschädigt, …) oder für Standorte. Die Einstellungen zu den Normierten Werten befinden sich unter Administration → Basisparameter → Normierte Werte. Im Drop-Down Menü können wir die Kategorie auswählen und dann die Werte anpassen oder neue ergänzen.

Koha Normierte Werte

Folgende Normierte Werte sollten wir uns anschauen und gegebenenfalls ändern bzw. ergänzen:

  • LOC → Standorte
  • CCODE → Sammlungen
  • LOST → Status für verlorene Medien

Systemparameter

Über die vielen verschiedenen Systemparameter können wir global Einstellungen in Koha vornehmen und verändern. Darüber kann man Koha sehr individuell anpassen. Wir werden jetzt einige wichtige Parameter kontrollieren und anpassen, sodass es für unseren Einsatzzweck passt. Hier die wichtigsten Paremeter:

Sprache und Formate

  • dateformat → Datumsformat
  • CalendarFirstDayOfWeek → ersten Tag der Woche definieren
  • opaclanguagesdisplay → nur interessant, wenn man mehrere Sprachen installiert hat
  • opaclanguages → nur interessant, wenn man mehrere Sprachen installiert hat
  • language → nur interessant, wenn man mehrere Sprachen installiert hat

Koha i18n l10n

Ausleihe

Unter diesem Punkt gibt es sehr viele Parameter. Die meisten von ihnen können wir in der Standardeinstellung so lassen bzw. werden wir später noch anpassen. Wenn wir eine Altersbeschränkung einrichten wollen, z.B. für DVDs oder Bücher, müssen folgenden Paramter ändern:

  • AgeRestrictionMarker → in FSK|PEGI|Age| ändern

Danach speichern.

Benutzer

Bei Bedarf können wir folgende Parameter ändern:

  • CardnumberLength → Länge der Benutzernummer
  • minPasswordLength → Mindestlänge für das Passwort eines Benutzers

Katalogisierung

Hier ändern wir nur einen Parameter:

  •  autoBarcode  → inkrementelle EAN-13-Barcodes

Kataloganreicherung

Die folgenden Parameter bewirken, dass Cover-Bilder von Amazon im OPAC bzw. in der Dienstoberfläche (Backend / Intranet) angezeigt werden:

  •  AmazonCoverImages → auf Zeige ändern
  • OPACAmazonCoverImages → auf Zeige ändern

OPAC

Zum Schluss können wir noch den OPAC an unsere Schulbibliothek anpassen. Auch hier gibt es wieder recht viele Parameter, von denen die meisten so gelassen werden können. Einige sollten wir aber bei Bedarf ändern:

  •  LibraryName → Name der Bibliothek
  • OpacMainUserBlock→ Willkommensnachricht für die Hauptseite

Fazit

Die wichtigsten Grundeinstellungen in Koha haben wir nur abgearbeitet. Koha ist nun soweit eingerichtet, dass wir unsere ersten Bücher aufnehmen und ausleihen können. Das wird das Thema im nächsten Teil sein. Danach werden wir uns noch mit weiteren Themen wie Mahnungen und Gebühren, Benutzerverwaltung und -Import beschäftigen.

Viel Spaß beim Einrichten der Schulbibliothek!

2 Kommentare

Der Beitrag Teil 3: Grundeinstellungen – Wie man Koha installiert und für Schulen einrichtet erschien zuerst auf .:zefanjas:..

10. April 2018

Bild von 3dman_eu via pixabay / Lizenz: CC0 Creative Commons

Die ständige Tendenz zu Forks ist Fluch und Segen der Open Source Welt. Segen, weil Projekte nicht sterben müssen, wenn sich der Hauptentwickler zurück zieht oder aber jegliche konstruktive Entwicklung verweigert. Fluch, weil es zu einem regelrechten Wildwuchs kommen kann. Letzteres kann man gerade sehr schön bei Firefox beobachten und hier ist dringend Vorsicht geboten.

Der Browser-Markt ist schwer umkämpft und Mozilla versucht hier gegenüber den Schwergewichten Google, Apple und Microsoft nicht noch mehr an Boden zu verlieren. Dazu werden bei Firefox alte Zöpfe abgeschnitten und wenn man sich die Presseschau für Firefox Quantum anschaut, kommt dies durchaus positiv an. Aber es gibt natürlich diejenigen Anwender, die jegliche Entwicklung seit - sagen wir mal Windows XP - ablehnen und an ihrem heimischen 19" Monitor mit 1280er Auflösung an den Designänderungen verzweifeln.

Diese konservativen Anwender werden von zahllosen Forks bedient. Neben dem Urgestein SeaMonkey kommen da PaleMoon, WaterFox und viele weiter hinzu. Sie alle teilen eine Gemeinsamkeit: Sie basieren auf der veralteten Technik XUL und dem hat Mozilla mit Quantum den Stecker gezogen. Sobald Thunderbird auf eine neue Basis gestellt ist dürften hier die Lichter ausgehen. Mal abgesehen davon, dass der riesige Addon-Park von Firefox durch die jeweiligen Entwickler kaum noch Pflege erhalten wird, sobald kein offizieller Firefox sie mehr unterstützt.

Der Browser ist das Tor ins Internet. Hier geht man keine Kompromisse in der Sicherheit ein. Keiner der Forks hat genug Entwickler um etwaige Sicherheitslücken schnell und gut zu schließen. Entweder sie stellen ebenfalls auf die neue Quantum-Basis um oder sie werden tickende Zeitbomben.

Das ist der große Nachteil an Open Source. Niemand schützt Anwender und Entwickler vor sich selbst und der Versuchung alte Versionen zu konservieren und sich heillos zu übernehmen.

In den vergangenen Jahren ist es mir immer wieder passiert, dass apt hängengeblieben ist, weil es versucht hat, mit irgendwelchen Paketquellen per IPv6 zu kommunizieren. Dagegen wäre ja nichts einzuwenden solange IPv6 zur Verfügung steht, aber zumindest zuhause habe ich nun mal kein IPv6. Abhilfe schafft die gezielte Deaktivierung von IPv6 für das gesamte APT-System, also für die Kommandos apt, apt-get usw.

Dazu erzeugen Sie eine neue Datei im Verzeichnis /etc/apt/apt.conf.d, die die Anweisung Acquire::ForceIPv4 "true" enthält, z.B. so:

sudo -s
echo 'Acquire::ForceIPv4 "true";' > /etc/apt/apt.conf.d/99disable-ipv6

Quelle

https://unix.stackexchange.com/questions/9940/convince-apt-get-not-to-use-ipv6-method

9. April 2018

Bild von IO-Images via pixabay / Lizenz: CC0 Creative Commons

OwnCloud oder Nextcloud ist eine Glaubensfrage und sicher auch davon abhängig, wie wichtig einem ein communitybasiertes Entwicklungsmodell ist. Die Macher von Nextcloud können sich bei ownCloud aber auf jeden Fall eine Scheibe in Sachen Öffentlichkeitsarbeit abschneiden. Während die Nextcloud-Entwicklung kaum über die Community hinaus ausstrahlt macht ownCloud professionell Ankündigungs- und Pressearbeit.

Diese Woche neu: DeltaSync.

Nachdem man kürzlich bereits ein neues Interface angekündigt hat, gab man heute bekannt, dass ownCloud ab der nächsten Hauptversion (erscheint wohl noch dieses Jahr) s. g. DeltaSync unterstützen wird. Dadurch sollen bei Änderungen an Dateien nur die Änderungen erneut hochgeladen werden und nicht die gesamte Datei. Konkurrierende Dienste wie Dropbox unterstützen das schon lange.

Die notwendigen Änderungen kamen aus der Community, wurden jedoch über Bountysource durch ownCloud angestoßen.

Unterstützt werden erstmal folgende Formate:

  • Krypto-Container (z.B. VeraCrypt)
  • Disc-Images (.iso /.img
  • Audio (Roh-Audioformate /.wav /.aiff)
  • Bilder (.svg /.tiff /.bmp /.dng)
  • Video (Rohvideoformate, z.B. unkomprimierte .avi)
  • Virtual Machine Images (.vdi /.ova /.img /RAW)
  • Microsoft PST Dateien (E-Mails, Kalendereinträge, etc.)
  • Textdateien
  • Tar-Archive

Naturgemäß ist für dieses Blog natürlich DeltaSync von Krypto-Containern am interessantesten. Das bietet die Möglichkeit sich von unsicheren Lösungen wie EncFS oder unzureichenden wie Cryptomator zu emanzipieren.

Die AGPL/GPL-Lizensierung dürfte gewährleisten, dass diese Funktion auch schnell bei Nextcloud landet.

 

Am Wochenende habe ich die Zeit genutzt, um die Ubuntu 18.04 auf meinem Rechner zu installieren. Bisher habe ich Ubuntu 16.04 mit Unity verwendet. Vom Typ her bin ich jemand, der möglichst den Standard verwendet, weil ich meine Zeit nicht jedes Mal mit vielen Anpassungen verschwenden möchte. Der Wechsel vor vielen Jahren von Gnome2 auf Unity verlief damals recht schmerzlos und ich konnte mich schnell damit anfreunden. Das war ehrlich gesagt auch meine Hoffnung beim Installieren von Ubuntu 18.04 und dem neuen Gnome3 Desktop. Ubuntu hat ja einige Änderungen vorgenommen, um den Umstieg von Unity auf Gnome3 zu erleichtern. Ist es ihnen gelungen? Persönlich sage ich nein. Nach zwei Tagen bin ich wieder zurück bei Unity in Ubuntu 18.04. Warum?

Was ich in Gnome3 als Unity-Umsteiger vermisse

Ich habe mich ja bereits als Unity-Liebhaber geoutet. Damit konnte ich mich schnell anfreunden und finde es in vielen Punkten sehr benutzerfreundlich und gelungen. Auf den neuen Gnome3 Desktop war ich neugierig und war ehrlich bereit mich darauf einzulassen, aber das wird einem nicht gerade leicht gemacht. Es fehlen mir viele kleine Dinge, die ich an Unity schätzen gelernt habe und die mir meine Arbeit mit dem Computer erleichtern. Hier einige Beispiele.

Einbindung externer Medien

Ich habe mir gleich Dash-to-Dock installiert, um mehr Möglichkeiten bei der Anpassung des Docks zu haben, z.B. um den Programmstarter (heißt das so?) oben statt unten im Dock zu haben. In Unity werden externe Medien wie USB-Sticks als weiteres Symbol im Dock angezeigt – in Gnome3 als Icon auf dem Desktop. Das finde ich unpraktisch, gerade, wenn man mit maximierten Fenstern arbeitet, da man erst diese minimieren muss, um das Symbol zusehen und öffnen zu können. Vielleicht gibt es auch hier irgendeine Erweiterung dafür, aber das ist genau der Punkt. Ich möchte den Desktop nicht erst durch 50 Erweiterungen anpassen müssen, bis er sich so verhält, wie ich es gern hätte, zumindest nicht für grundlegende Sachen, wie das folgende Beispiel.

Computer in Bereitschaft setzen

Im Gnome3-Menü gibt es standardmäßig nur Buttons für Systemeinstellungen, Bildschirm sperren und Herunterfahren. Ich versetze meinen Laptop am Ende des Tages in Bereitschaft. Das kann ich aber in Gnome3 nur, wenn ich gleichzeitig die ALT-Taste drücke oder mir eine Erweiterung installiere. In Unity reichen 2 Klicks aus, in Gnome3 brauche ich dafür 2 Hände  oder eine Erweiterung.

Ausnutzung des Bildschirmplatzes

Einen großen Vorteil von Unity sehe ich in der oberen Bildschirmleiste. Dort sind die Fenstermenüs und auch die Buttons für Schließen, minimieren und maximieren versteckt. Mir erleichtert es das Arbeiten enorm, wenn ich mit der Maus nur in die oberste linke Ecke fahren und klicken muss und weiß, das Fenster wird geschlossen. Ich muss nicht „zielen“ oder die Maus pixelgenau navigieren. Einfach links hoch schieben, klick und fertig. Weiterhin spart die Integration der Menüs in die obere Leiste eine Menge Bildschirmplatz. Gerade bei kleineren Bildschirmen. Standardmäßig ist das bei Gnome3 nicht so, kann natürlich wieder über Erweiterungen erreicht werden.

Icons in der Topbar

Es scheint mir, dass einige Anwendungen eher auf Unity, statt auf Gnome3 optimiert sind, v.a. die Icons in der oberen Bildschirmleiste angeht. Ich hatte einige Anwendungen (z.B. Mattermost Desktop), die unter Unity gut integriert sind, die ich aber in Gnome3 – mal wieder – nur mit einer Erweiterung integrieren konnte.

GDM vs. LightDM

Auch wieder so eine Sache. Es sind die kleinen Dinge, die das Leben einfacher machen. Abgesehen davon, dass ich den Lightdm Anmeldeschirm im Vergleich zu dem vom GDM wesentlich schöner und hübscher finde, bietet er noch andere Vorteile. Standardmäßig wird sowohl bei GDM als auch Lightdm die Anmeldemaske nur auf einem Bildschirm angezeigt (wenn man mehr als einen Bildschirm angeschlossen hat). Bei Lightdm muss ich nur die Maus von einem Schirm auf den nächsten verschieben, um die Anmeldemaske auf den anderen Bildschirm zu holen. Das geht bei GDM nicht. Ein großer Nachteil, vor allem in Schulen, wo in den Klassenräumen oft ein Beamer angeschlossen ist. Wenn die Anmeldemaske am Beamer erscheint, kann ich sie nicht „einfach so“ auf den angeschlossenen Rechner holen.

Fazit

Vielleicht sind das alles nur kleine Dinge und sicher lassen die sich auch größtenteils mit entsprechenden Erweiterungen anpassen, aber genau das ist der springende Punkt. Ich wünsche mir einen Desktop, den man produktiv einsetzen kann, ohne ihn erst durch Erweiterungen anpassen zu müssen. Sicher bin ich auch einige Jahre durch Unity geprägt und schaue jetzt stark durch diese gefärbte Brille, aber es sind u.a. die oben genannten Dinge, die mir die Arbeit am Rechner erleichtern.

Für meinen Teil bin ich wieder zurück bei Unity, was mit

$ sudo apt install ubuntu-unity-desktop

auch in Ubuntu 18.04 schnell erledigt ist – inklusive lightdm.

An alle Unity-Liebhaber – werdet ihr auf Gnome3 in Ubuntu 18.04 wechseln?

36 Kommentare

Der Beitrag Warum ich Unity in Ubuntu 18.04 verwenden werde erschien zuerst auf .:zefanjas:..

7. April 2018

Der Paketmanager Pacman speichert die Pakete unter /var/cache/pacman/pkg. Um bei Problemen ein Downgrade machen zu können, werden dort automatisch keine Pakete entfernt.

Leert man das Verzeichnis nicht regelmäßig kann es sein, dass irgendwann die Festplatte voll ist und man sich wundert was nun schon wieder schief gegangen ist. Um dies zu vermeiden, kann man sich einen sogenannten Hook erstellen. Mit diesen lassen sich Aktionen bevor oder nachdem etwas mit Pacman gemacht wird ausführen.

Um bei dem Beispiel mit Cache zu bleiben, erstellen wir erst einmal das Verzeichnis /etc/pacman.d/hooks sofern es nicht schon vorhanden ist. In diesem erstellen wir dann eine Datei an deren Ende .hook stehen muss. Also beispielsweise pacman-cache-aufraeumen.hook. In diese kommt dann folgender Inhalt:

[Trigger]
Operation = Remove
Operation = Install
Operation = Upgrade
Type = Package
Target = *

[Action]
Description = Cache von Pacman aufräumen...
When = PostTransaction
Exec = /usr/bin/paccache -rqk2

Im Bereich Trigger wird definiert in welchem Fall das ganze ausgeführt werden soll und für was der Hook gültig ist. in diesem Fall wird also die Aktion beim Entfernen, Installieren und Aktualisieren aller Pakete ausgeführt.

Im Bereich Action wird angegeben, was ausgeführt wird und wann. In diesem Beispiel wird der Befehl /usr/bin/paccache -rqk2 nach dem Entfernen, Installieren oder Aktualisieren eines Pakets ausgeführt. Der Parameter -rqk2 bewirkt, dass alle Pakete im Cache bis auf die letzten zwei Versionen entfernt werden und dass dies ohne Rückmeldung geschieht.