vim: read-only Dateien mit root-Rechten speichern

Linux-Admins werden es kennen: arbeitet man viel mit Konfigurationsdateien des Systems oder verschiedener Daemons, kann es passieren, dass man vergisst, sie als root-Benutzer zu öffnen.

Das ist ärgerlich, man muss die Änderungen kopieren, den Editor verlassen (vim: :q! ), ihn wieder mit u.U. sudo (shortcut hierfür: sudo !! zum aufrufen des letzten Kommandos mit root-Rechten) öffnen, Änderungen einfügen und neu abspeichern. Noch ärgerlicher ist es, wenn die Datei nicht bearbeitet, sondern erstellt werden soll und relativ umfangreich ist.

vim-Nutzer sind hier im Vorteil: der Editor ist so flexibel, dass man eine read-only-geöffnete Datei als root speichern kann.

Voraussetzung hierfür ist, dass sudo auf dem System installiert ist und der Nutzer die Berechtigungen hat, hiermit Kommandos auszuführen.

Nun zum Trick:

Die Zauberei hinter diesem Trick ist, dass vim “pipen” kann, denn anders als oft angenommen, ist :w nicht ausschließlich für das Speichern der Datei zuständig, sondern sendet eher den current buffer in die aktuelle Datei, eine andere Datei oder gar in ein anderes Kommando. Und dieses Kommando lässt sich eben auch per sudo ausführen. tee übrigens lässt sich wie ein T-Stück verstehen. Alle Hintergründe hierzu sind bei Stackoverflow erklärt.

SSH: Host aus der known_hosts entfernen

Viele Linux-Admins, die Hosts neu aufgesetzt haben, kennen dies: bei einem Connect über SSH mit der Neuinstallation haben sich natürlich auch die für den SSH-Betrieb nötigen Keys neu generiert und stimmen somit nicht mehr mit denen aus der known_hosts überein. Das Resultat: eine Man-in-the-Middle-Warnung. Die Warnung ist zwar richtig und gut, aber in diesem Fall nicht hilfreich. Unser SSH-Client muss einfach die Keys vergessen.

Hierfür gibt es insbesondere drei Ansätze: einen “sanften”, einen “harten” und einen temporären. „SSH: Host aus der known_hosts entfernen“ weiterlesen

Git: Dateien nur aus Repository löschen

Unter Git kann es die Situation geben, dass eine Datei oder ein Verzeichnis nur aus dem Repository gelöscht werden soll, z.B. wenn sie/es in die .gitignore aufgenommen wurde.

Das klassische git rm würde auch die Datei aus dem Working Tree bzw. lokalen Dateisystem löschen. Abhilfe schafft die Option --cached.

Soll nun z.B. eine Datei namens file_to_delete im Repository gelöscht werden, wird dies mit dem Kommando

erledigt. Soll das gleiche mit einem Verzeichnis passieren, hilft das Kommando

Commit und Push natürlich danach nicht vergessen.

Pro-Tipp: soll aufgeräumt und alle Files, die mit der .gitignore matchen, nur im Repository gelöscht werden, kann folgendes Kommando genutzt werden

Quelle: 1, 2, Git logo: Jason Long (CC-BY)

SMART-Support aktivieren

Kleiner Tipp für zwischendurch: wer gerne SMART (konkret smartctl) für die Überwachung der Festplatten-/SDD-Zuverlässigkeit nutzt, kennt z.B. das Kommando sudo smartctl -a /dev/sda für die Anzeige der Informationen für die “1.” Festplatte. Es kann bei einigen Festplatten allerdings sein, dass SMART zwar unterstützt, aber nicht aktiviert ist. Sieht dann so aus: „SMART-Support aktivieren“ weiterlesen

Tipp: Duplikate in bash_history vermeiden

Letztes Jahr habe ich bereits zur Bash und der Vermeidung von bestimmten History-Einträgen geschrieben. Die dort angesprochene HISTCONTROL-Varible lässt sich allerdings auch mit anderen Werten füllen, nämlich auch mit ignoredups. „Tipp: Duplikate in bash_history vermeiden“ weiterlesen

Standardpapierformat unter Linux einstellen

Vor einigen Wochen habe ich im Rahmen eines PC-Upgrades auch wieder mein Arch Linux-System neu installiert.

Bei der Benutzung von LibreOffice fiel dann auf, dass als Standard für neue Seiten das US-Format Letter eingestellt war. LibreOffice selber bietet keine einfache Möglichkeit, das Standardpapierformat zu ändern. Vor 5 Jahren hatte ich schon einmal ein ähnliches Problem. Die Lösung ist bis heute die gleiche: in der Datei /etc/papersize wird das Papierformat zentral für das System eingestellt. Möchte man das in Deutschland übliche Format DIN A4 einsetzen, ersetzt man den Inhalt durch:

Nach einem Neustart sollten die Änderungen dann aktiviert sein. Weitere Informationen und Konfigurationsoptionen befinden sich unter man papersize.

Debian 9 “Stretch” erschienen

Der Artikel ist über 12 Monaten alt. Einige Inhalte können demnach veraltet sein. Bitte beachte dies beim Lesen des Artikels.

Still und heimlich ist am Samstag, den 17. Juni 2017 nach über 2 Jahren eine neue Version der Linux-Distribution Debian erschien. Version 9 führt mit dem Codenamen “Stretch” die Reihe an Toy Story-Charakteren fort. Debian 9 wird dem Gründer des Projekts, Ian Murdock, gewidmet, welcher am 28. Dezember 2015 verstorben ist.

Statt großen Neuerungen wurde wie üblich an kleinen Stellen nachgebessert. Auffallendste Änderung für Administratoren wird die Umstellung von MySQL auf MariaDB sein. Weitere Änderungen sind:

  • die Umbenennung von Iceweasel und Icedove zurück zu Firefox und Thunderbird, nachdem ein jahrelanger Streit zwischen dem Debian-Projekt und Mozilla beigelegt wurde,
  • verbesserte Unterstützung für UEFI,
  • neuere Versionen von GnuPG (modern-Zweig),
  • ermöglichter Betrieb vom X-Display-System ohne root-Rechte,
  • verbesserte Sicherheit und Integrität von Paketen (Reproducible-Builds-Projekt deckt ca. 90% ab).

Des weiteren sind viele Pakete wieder auf einem aktuelleren Stand. Als Kernel kommt Version 4.9.30 zum Einsatz.

Achtung: Hinweise zu administrativen Eingriffen beachten! Daten vorher sichern!

Ein Upgrade ist auf Debian 9 sollte UNBEDINGT durch ein vorheriges vollständiges Backup abgesichert werden. Es kann immer etwas schief gehen. Zum Upgraden erst wie üblich alles Bisherige updaten über

dann in der
/etc/apt/sources.list
jessie gegen stretch austauschen und nochmals update, upgrade, dist-upgrade ausführen. Nach einem Neustart sollte dann Debian 9 funktionsfähig sein. Eine (sehr!) ausführlichere Anleitung zu diesem Thema samt Release Notes ist hier verfügbar.

Quelle: Debian News (20170617)

Die z-Kommandos

Der Artikel ist über 1 Jahr alt. Einige Inhalte können demnach veraltet sein. Bitte beachte dies beim Lesen des Artikels.

Als Administrator ist es wichtig, die Logs seiner Systeme zu sichten und auf Unregelmäßigkeiten zu überprüfen. Dies geht besonders gut mit Anwendungen wie cat, less oder more. Damit allerdings die Logs nicht zu groß werden, greift bei vielen Systemen logrotate ein und archiviert (für einen vorgegebene Zeitraum) alte Logs in einem bestimmten Zyklus. Werden diese alten Logs jedoch komprimiert, wird das spätere Begutachten scheinbar schwieriger, da die Dateien nun .gz-komprimiert sind. Die Archive müssten erst entpackt werden, um sie zu lesen. „Die z-Kommandos“ weiterlesen

Tipp: Alt-Tab in Gnome 3 konfigurieren

Der Artikel ist über 1 Jahr alt. Einige Inhalte können demnach veraltet sein. Bitte beachte dies beim Lesen des Artikels.

Gnome 3 ist seit der Canonicals Ankündigung zur Umstellung der Ubuntu-Desktopumgebung in spätestens nächstem Jahr in aller Munde.
Möchte man schnell Anwendungen wechseln, bietet sich die Tastenkombination Alt-Tab in allen üblichen Betriebssystemen an. Während man aber von Unity z.B. gewohnt ist, dass alle Fenster aufgelistet werden, listet Gnome 3 normalerweise nur in Anwendungsgruppen auf. Aus meiner Sicht ist das für einen zügigen Wechsel zwischen den Fenstern, besonders wenn sie zur gleichen Anwendung gehören, hinderlich. „Tipp: Alt-Tab in Gnome 3 konfigurieren“ weiterlesen

Pacman-Cache mit paccache aufräumen

Der Artikel ist über 1 Jahr alt. Einige Inhalte können demnach veraltet sein. Bitte beachte dies beim Lesen des Artikels.

Arch Linux unterscheidet sich von anderen Distributionen insbesondere dadurch, dass hier mit pacman ein ganz anderer Paketmanager eingesetzt wird. Bei allen Softwareinstallationen und -updates lädt er die Installationspakete erst in das Verzeichnis /var/cache/pacman, bevor er die jeweiligen Pakete installiert. „Pacman-Cache mit paccache aufräumen“ weiterlesen