Technik

PuTTY-Einstellungen vereinheitlichen

29. September 2021 · Anwendungen · andreas · Kein Kommentar

Innerhalb von PuTTY ist leider keine Möglichkeit vorgesehen, die Einstellungen verschiedener Sessions zu verheinheitlichen. Sich im Laufe der Benutzung ergebende Änderungen an den “Default Settings” müssen ggf. manuell in andere gespeicherte Sessions kopiert werden.

Bei mehr als einer Hand voll Sessions ist die Übertragung nervig und lästig, aber ein kleines Perl-Skript kann die Aufgabe automatisiert erledigen:

putty-settings.pl
# +----------------------------------------------------------------------------+ # | putty-settings.pl | # | copy settings from 'Default Settings' to all other sessions | # +----------------------------------------------------------------------------+ # | Copyright (c) 2021 by Andreas Thul | # | putty-settings.pl is published under the Perl Artistic License 2.0 | # +----------------------------------------------------------------------------+ # | 2021-09-29 initial release | # +----------------------------------------------------------------------------+ # - import --------------------------------------------------------------------- use strict; use warnings; use Win32::TieRegistry(Delimiter=>"/", ArrayValues=>0); # -- global -------------------------------------------------------------------- my $sourceSessionName = 'Default%20Settings'; my @valuesToCopy = qw( ANSIColour AltF4 AltOnly AltSpace AlwaysOnTop ApplicationCursorKeys ApplicationKeypad AutoWrapMode BCE BackspaceIsDelete Beep BeepInd BellOverload BellOverloadN BellOverloadS BellOverloadT BellWaveFile BlinkCur BlinkText BoldAsColour BoldFont BoldFontCharSet BoldFontHeight BoldFontIsBold CJKAmbigWide CRImpliesLF CapsLockCyr ChangeUsername CloseOnExit Colour0 Colour1 Colour10 Colour11 Colour12 Colour13 Colour14 Colour15 Colour16 Colour17 Colour18 Colour19 Colour2 Colour20 Colour21 Colour3 Colour4 Colour5 Colour6 Colour7 Colour8 Colour9 ComposeKey CtrlAltKeys CtrlShiftCV CtrlShiftIns CurType DECOriginMode DisableArabicShaping DisableBidi Environment EraseToScrollback Font FontCharSet FontHeight FontIsBold FontQuality FontVTMode FullScreenOnAltEnter HideMousePtr LFImpliesCR LineCodePage LinuxFunctionKeys LocalEcho LocalEdit LockSize MouseAutocopy MouseIsXterm MouseOverride MousePaste NetHackKeypad NoAltScreen NoApplicationCursors NoApplicationKeys NoDBackspace NoMouseReporting NoPTY NoRemoteCharset NoRemoteClearScroll NoRemoteResize NoRemoteWinTitle PasteControls PasteRTF Present Printer RXVTHomeEnd RawCNP RectSelect RekeyBytes RekeyTime ScrollBar ScrollBarFullScreen ScrollOnDisp ScrollOnKey ScrollbackLines ScrollbarOnLeft ShadowBold ShadowBoldOffset StampUtmp SunkenEdge TelnetKey TelnetRet TermHeight TermWidth TerminalModes TerminalSpeed TerminalType TrueColour TryAgent TryPalette UTF8Override UTF8linedraw UseSystemColours WarnOnClose WideBoldFont WideBoldFontCharSet WideBoldFontHeight WideBoldFontIsBold WideFont WideFontCharSet WideFontHeight WideFontIsBold WinNameAlways WinTitle WindowBorder WindowClass Wordness0 Wordness128 Wordness160 Wordness192 Wordness224 Wordness32 Wordness64 Wordness96 Xterm256Colour ); # -- main ---------------------------------------------------------------------- $|=1; # HKEY_CURRENT_USER\Software\SimonTatham\PuTTY\Sessions my $puttyRegistry = $Registry->{"HKEY_CURRENT_USER/Software/SimonTatham/PuTTY/Sessions/"}; my $sourceSession = $puttyRegistry->{"$sourceSessionName/"}; foreach my $currentSessionName ($puttyRegistry->SubKeyNames) { next if $currentSessionName eq $sourceSessionName; print "$currentSessionName\n"; my $targetSession = $puttyRegistry->{"$currentSessionName/"}; foreach my $ValueName (@valuesToCopy) { print ".. $ValueName\n"; my($ValueData, $ValueType)= $sourceSession->GetValue($ValueName); $targetSession->SetValue($ValueName, $ValueData, $ValueType); } } # -- eof -----------------------------------------------------------------------

Im oberen Bereich des Skrips kann bei Bedarf noch der Name der Quell-Session (hier “Default%20Settings”) sowie die zu übertragenden Parameter angepasst werden, anschließend überträgt das Skript bei jedem Durchlauf die Werte aller aufgelisteten Parameter aus der Quell-Session in alle anderen Sessions.


Einhängepunkte unter /run/user/UID/gvfs werden nicht mehr erzeugt

24. September 2021 · Betriebssysteme · andreas · Kein Kommentar

Nach dem Update von Debian 10 auf 11 wurden die Einhängepunkte unter /run/user/UID/gvfs nicht mehr automatisch erzeugt. Den entscheidenden Hinweis lieferte Debian Bug Report #956009:

Do you have gvfs-fuse installed? That’s the package that is responsible for mounting these FUSE filesystems in Debian.

Tatsächlich war das Paket gvfs-fuse nicht mehr installiert. Nach Reinstallation und Reboot war das Verhalten wieder wie vor dem Update.


Rekursiv Dateiberechtigungen ändern

19. September 2021 · Betriebssysteme · andreas · 2 Kommentare

Um die Berechtigungen von Dateien zu ändern, wird der Befehl “chmod” verwendet, welcher auch einen Schalter zur rekursiven Änderung hat:

-R, --recursive Dateien und Verzeichnisse rekursiv ändern

Spannend wird es, wenn es um das rekursive Entziehen der “Ausführen”-Berechtigung geht, denn diese müssen Verzeichnisse behalten, damit man weiterhin in sie wechseln kann.

Als Krücke in der Not entpuppt sich der Befehl “find”, welcher mit den richtigen Parametern gestartet eine Unterscheidung zwischen Dateien und Ordnern ermöglicht und somit auch das gezielte Ändern der Berechtigungen:

$ find . -type f -exec chmod -x {} \;

Die Parameter sind hierbei wie folgt:

-type c Datei ist vom Typ c;: ... d Verzeichnis ... f reguläre Datei ... -exec Befehl ; führt den Befehl aus; wahr, wenn Status 0 zurückgegeben wird. Alle folgenden Argu‐ mente von find werden als Argumente des Befehls betrachtet, bis ein Argument gefun‐ den wird, das »;« beinhaltet. Die Zeichenkette »{}« wird überall, wo sie in den Ar‐ gumenten erscheint, durch den aktuell verarbeiteten Dateinamen ersetzt, nicht nur in Argumenten, in denen sie allein steht, wie in einigen Versionen von find. Es könnte nötig sein, beide Konstruktionen zu maskieren (mit einem »\«) oder in Anfüh‐ rungszeichen zu setzen, um sie vor einer Expansion durch die Shell zu schützen.

Beitragssammlung Debian

26. August 2021 · Betriebssysteme · andreas · Kein Kommentar

Im Laufe der letzten beiden Jahre sind in unregelmäßigen Abständen mehrere Beiträge rund um den Wechsel von Windows zu Linux erschienen.

Hier die wichtigsten Beiträge in chronologischer Reihenfolge:

Dazu noch ein paar Beiträge, welche sich mit speziellen Themen beschäftigen:

Ansonsten gibt es über die Schlagwortsuche noch ein paar weitere Beiträge zu finden, welche sich i.d.R. mit Lösungen zu eher speziellen Problemen beschäftigen.


Raspberry Pi 3 - WLAN-Powermanagement deaktivieren

21. August 2021 · Betriebssysteme · andreas · Kein Kommentar

Standardmäßig ist beim Raspberry Pi 3 das Powermanagement für die interne WLAN-Schnittstelle “wlan0” eingeschaltet. Dies hat zur Folge, daß es beim Streaming gelegentlich zu Hängern kommt und sich auch eine SSH-Sitzung recht holprig anfühlt.

$ sudo iwconfig ... wlan0 IEEE 802.11 ESSID:"SSID" ... Power Management:on ...

Um das Powermanagement vorübergehend zu deaktivieren, kann dan der Kommandozeile der Befehl “iwconfig” verwendet werden:

$ sudo iwconfig wlan0 power off

Um das Powermanagement dauerhaft zu deaktivieren, kann eine ausführbare Datei mit beliebigem Namen im Verzeichnis “/etc/network/if-up.d” mit folgendem Inhalt erstellt werden:

#!/bin/sh /usr/sbin/iwconfig wlan0 power off

Nach einem Neustart ist das Powermanagement dann deaktiviert:

$ sudo iwconfig ... wlan0 IEEE 802.11 ESSID:"SSID" ... Power Management:off ...