Lustige Zeichen mit SSH und Putty vermeiden

Bei der Verwendung des SSH Clients Putty und einer standard Debian Etch/Lenny/Ubuntu installation kommt es bei der Anzeige von diversen Anwendungen die auf ncurses setzen, z.B. aptitude, zu fehlerhaften Zeichendarstellungen der Menüfenster. Mit folgenden Einstellungen in der Putty Verbindung lassen sich diese Darstellungsfehler vermeiden:

  • Window -> Translation -> Received data assumed to be in which character set: UTF-8
  • Window -> Translation -> Handling of line drawing characters: Use Unicode line drawing code points
  • Connection -> Data -> Terminal-type string: linux

SCPonly mit chroot unter Debian (Etch)

Nach einem langen Nachmittag und etlichen Versuchen hatte ich endlich herrausgefunden wie man unter Debian Etch den chroot Modus bei SCPonly zum laufen bekommt. Bei der installation mit
aptitude install scponly entsteht das 1. Problem: Das SetUid Bit wird nicht auf die Datei /usr/sbin/scponlyc gesetzt. Dies lässt sich mit dpkg-reconfigure scponly dauerhaft setzen. Dann kommt man zu Problem Nr. 2: scponlyc ist nicht als gültige Shell eingetragen. Dies löst man ganz einfach mit einem echo "/usr/sbin/scponlyc" >> /etc/shells Anschließend kann man die Datei /usr/share/doc/scponly/setup_chroot/setup_chroot.sh.gz entpacken: gunzip /usr/share/doc/scponly/setup_chroot/setup_chroot.sh.gz und ausführen. Es wird eine chroot Umgebung für den angegebenen Benutzer erstellt. Allerdings kann man sich immer noch nicht mit Tools wie WinSCP anmelden (Fehlermeldung: „Cannot initialize SFTP protocol. Is the host running a SFTP server?“). Und hier kommt die Lösung: Es gibt in der chroot Umgebung kein /dev/null Device. Um das Device anzulegen wechselt man zuerst mittels cd /home/ in das Verzeichnis des Benutzers. Anschließend legt man mit mkdir dev das Verzeichnis an und wechselt mit cd dev in selbiges. Mit dem Befehl mknod -m 666 null c 1 3 legt man das null Device an. Damit klappts auch mit Debian und SCPonly in einer chroot Umgebung 🙂

WSUS Error „Failed to spawn COM server“

Sollte jemand in der Datei „c:WindowsWindowsUpdate.log“ folgende Meldungen finden
FATAL: Error: 0x80004002. wuauclt handler: failed to spawn COM server
FATAL: 0x80004002: ERROR: Remote update handler container process created (PID: 1048), but exited before signaling event

und der Windows Update Dienst auch seinen Dienst nicht verrichten gibt es folgende einfache Lösung:
Man muss die Komponenten des Windows Update Dienstes neu registrieren:
regsvr32.exe c:winntsystem32wuweb.dll
regsvr32.exe c:winntsystem32wups2.dll
regsvr32.exe c:winntsystem32wups.dll
regsvr32.exe c:winntsystem32wucltui.dll
regsvr32.exe c:winntsystem32wuaueng1.dll
regsvr32.exe c:winntsystem32wuaueng.dll
regsvr32.exe c:winntsystem32wuapi.dll

Anschließend muss man den Windows Update Dienst neu starten. Das gelingt mit folgendem Befehl:
net stop wuauserv
net start wuauserv

Zum Schluss kann man mit
wuauclt /detectnowden WSUS Dienst zum sofortigen Update suchen bewegen.

Explorer Prozess sauber beenden

Unter bestimmten umständen kann es vorkommen dass man den Explorer Prozess unter Windows (der die Taskleiste etc darstellt) sauber beenden muss. Mit sauber meine ich ohne ihn im Taskmanager abzuschießen. Dies kann man folgendermaßen erreichen.
[Start] –> [Herrunterfahren]
Anschließend klickt man im aufgehenden Fenster bei gedrückter STRG+ALT+SHIFT Taste auf „Abbrechen“. Nun beendet sich der Explorer Prozess.
Um ihn erneut zu starten öffnet man den Taskmanager (STRG+SHIFT+ESC) und wählt im Menü Datei –> Ausführen die explorer.exe aus.

„Dynamic MMap ran out of room“ bei aptitude update

Wenn man unter Debian/Ubuntu etc. bei einem aptitude update folgende Meldung erhält:
Paketlisten werden gelesen... Fehler!
E: Dynamic MMap ran out of room
E: Ein Fehler trat beim Bearbeiten von xmakemol-gl auf (NewVersion1)
E: Problem with MergeList /var/lib/apt/lists/ftp.de.debian.org_debian_dists_testing_main_binary-i386_Packages
E: Die Paketliste oder die Statusdatei konnte nicht geparst oder geöffnet werden.
E: Konnte den Paketcache nicht neu erzeugen

Gibt es folgende einfache Lösung:
Man legt unter /etc/apt/apt.conf.d eine neue Datei an (z.B. 71cachelimit). Anschließend schreibt man in die Datei folgenden Befehl um die Cache Größe zu erhöhen:
APT::Cache-Limit "125000000";
Am Schluss kann man nochmals aptitude update ausführen.

str_replace in Perl

Sollte man sich als Perl anfänger schon einmal die Frage gestellt haben ob es denn kein str_replace in Perl gibt, hier die einfache Antwort: NEIN

In Perl werden solche Konstrukte mit regulären Ausdrücken verarbeitet.
Als Beispiel:
Der Ausdruck :
$variable_name = str_replace ("Hello", "World", $variable_name);

würde in Perl wie folgt geschrieben:
$variable_name =~ s/Hello/World/g;

Gefunden habe ich das ganze hier:
http://lists.evolt.org/archive/Week-of-Mon-20040216/155807.html

0110110001101111011011110110001100100000011100110110100100100000011110010111001001100001011011100110100101100010