umbenannter Key mit git

Hat man gemäß der Anleitung bei github (oder irgendwo anders) einen Key hinterlegt, ihn aber nicht mit dem standardmäßigen „id_rsa“ benannt (sondern z.B. „~/ssh/github“), dann wird man von git abgestraft, da der Key natürlich nicht gefunden wird.

$ git remote add origin git@github.com:johndoe/foobar.git
$ git push -u origin master
Permission denied (publickey).
fatal: The remote end hung up unexpectedly

Man kann nun aber diesen Key dem ssh Agent bekannt machen, dann funktioniert es:

$ ssh-add github
Enter passphrase for github:
Identity added: github (github)
$

ghostscript 8.71 hat Probleme mit ps2pdf

ghostscript 8.71, welches beispielsweise in Ubuntu 10.10 ausgeliefert wird, hat einen Bug in der pdf-Umwandlung. Dieser führt dazu, dass das PDF zwar scheinbar den richtigen Text enthält, im Hintergrund aber etwas anderes hinterlegt ist.
Dies führt dazu, dass man den Text mit Adobe Reader nicht durchsuchen und kopieren kann. Die Folgeversion ghostscript 9.00 behebt diesen Bug.

Grip unter Ubuntu 10.10

Da ich Grip nach wie vor gerne benutze und Ubuntu 10.10 nach wie vor das Paket entfernt hat, habe ich das Debianpaket für Ubuntu „umgeschrieben“ (d.h. den Namen einer Abhängigkeit (libkrb53 auf libkrb5-3) korrigiert).
http://www.file-upload.net/download-3067422/grip_3.3.1-15-mako_i386.deb.html (Update: Link leider defekt)

Highlighting auf der Konsole

Hier ein kleines Skript, welches Input auf der Standardeingabe annimmt, alles wieder ausgibt, und das gesuchte Wort farbig markiert.

#!/bin/bash
TEXT=$*
grep --color=always -E "$TEXT|$"

Aufruf:
cat /var/log/messages | highlight.sh kernel

Im Grunde macht das Ding also so etwas wie die folgende Zeile, nur ohne zu filtern:

grep --color=always 'kernel' /var/log/messages

automatischer transparenter Proxy

In der YaCy-Hilfe habe ich gerade folgendes gefunden:
„Unter Linux können Sie Ihre Firewall darauf einstellen, alle HTTP-Verbindungen transparent an YaCy weiterzuleiten indem Sie diese iptables-Regel verwenden.:
$ iptables -t nat -A PREROUTING -p tcp -s 192.168.0.0/16 --dport 80 -j DNAT --to 192.168.0.1:8080

SSL-unfähigen Client mit SSL-fähigem Server verbinden

Möchte man einen Client, der kein SSL kann, mit einem Server verbinden, der SSL spricht, kann man das kleine Tool stunnel benutzen:
$ sudo stunnel -f -c -d 110 -r login.hs-karlsruhe.de:995
startet den „Wrapper-Server“, der eine SSL-Verbindung zum Server aufbaut, und eine unverschlüsselte Verbindung lokal anbietet.
Nun kann man z.B. mit netcat localhost 110 auf den Server zugreifen, ohne dass man selber etwas mit SSL zu tun hat.

Postfix das Verschlüsseln beibringen (optional: mit CAcert)

Um den Nachrichtenaustauschen zwischen Client und SMTP-Server zu verschlüsseln, kann man mit Postfix TLS einsetzen. Wie genau, möchte ich hier nicht erklären, sondern auf einige gute Howtos hinweisen:
Grob habe ich mich an http://wiki.debian.org/PostfixAndSASL gehalten – allerdings scheinen mir da Stücke vom Code zu fehlen. Diesbezüglich kann man sich gut an http://yocum.org/faqs/postfix-tls-sasl.html halten, und dort bei Schritt 8 einsteigen (und Schritt 11 evtl. überspringen).
Was dort nirgends steht, ist dass

tlsmgr unix - - n 1000? 1 tlsmgr

in „/etc/postfix/master.cf“ nicht auskommentiert sein darf.
Desweiteren Wissenswert: Die Zertifikate müssen nur für root zugänglich sein, da Postfix diese noch einliest, bevor es seine root-Rechte abgibt.

Will man seine Zertifikate von CAcert signiert haben, so ist dieses Howto zu empfehlen: http://koti.kapsi.fi/ptk/postfix/postfix-tls-cacert.shtml

dbus statt gnome-power-cmd

Seit Ubuntu 9.10 funktioniert

gnome-power-cmd

nicht mehr. Stattdessen kann man aber den folgenden knackigen Befehl benutzen:

dbus-send --print-reply --system --dest=org.freedesktop.DeviceKit.Power /org/freedesktop/DeviceKit/Power org.freedesktop.DeviceKit.Power.Hibernate

Problem dabei: Der Bildschirm wird nicht gesperrt. Dazu sollte es aber auch ein Kommando geben, dass man gleichzeitig ausführen kann.

„Ubuntu Firefox Modifications“/ubufox macht Probleme mit TabMixPlus etc.

Installiert man einige Addons in Firefox wie z.B. „Tab Mix Plus“ und „Personal Menu“ während „Ubuntu Firefox Modifications“ aktiviert sind, so bekommt man eventuell (bei mir: ziemlich zuverlässig) Probleme mit veränderten Toolbars etc., da sie in den Standardzustand zurückgestellt werden.
Einfach das Addon deaktivieren – einen erkennbaren Nutzen habe ich bisher ohnehin nicht festgestellt.

+x Recht eines Verzeichnisses

Das +x Recht bei einem Verzeichnis gestattet/verbietet es unter Unix, dass man das Verzeichnis betreten kann.
Was mir neu war, ist, dass dies quasi rekursiv wirkt: Hat man eine Verzeichnisstruktur /foo/bar/baz/, in der außer ‚bar‘ alle Verzeichnisse das +x Recht haben, kann man trotzdem nicht in ‚baz‘ wechseln, da auch ‚bar‘ geprüft wird.

Dateien schematisch umbenennen

Kürzlich hat mich ein offensichtlicher Raubkopierer gefragt, wie man eine Reihe von Dateien im Format „American.Dad.S03E01.The.Vacation.Goo.German.FS.dTV.XviD.avi“ so umbenennen kann, dass „American Dad – S03E01.avi“ dabei rauskommt.
Eine Lösung wäre z.B.

rename -vn 's/American.Dad.(S..E..)..*/American Dad - $1.avi/' *.avi

sqlplus unter Linux

Um SQL*Plus unter Linux zu benutzen, müssen unter http://www.oracle.com/technology/software/tech/oci/instantclient/htdocs/linuxsoft.html (Logindaten gibts bei BugMeNot.com) die Pakete „Basic“ und „SQL*Plus“ heruntergeladen und entpackt werden.
Anschließend muss das Paket „libaio1“ via Paketverwaltung installiert werden.
Mit

LD_LIBRARY_PATH=. ./sqlplus username/password@193.196.84.156:1521/widb1

kann man sich nun auf den Server (hier: Oracle-Server der Fakultät WI an der HsKA) verbinden.

Seamless RDP mit Linux und Windows

Den Seamless-Mode kennt man aus Virtual Box: Der Desktop wird nicht gezeichnet, sondern nur die Fenster. Nachteil hierbei ist, dass die Fenster keinen eigenen Eintrag in der Taskleiste der Linux-Umgebung bekommen.
Um dies zu realisieren, kann man Seamless RDP verwenden:

Im Windows-Host (dieser muss RDP können, was Home-Editionen im Zweifelsfall wohl nicht tun) muss folgendes eingestellt sein:
Systemsteuerung → Benutzerkonten → „Use the Welcome Screen“ sowie „Fast User Switching“ müssen aktiv sein.
System → Remote → hier kann man eingeschränkte Benutzer hinzufügen. Admins haben wohl immer Zugriff.

Nun sollte man per RDP zugreifen können:

rdesktop 192.168.178.24 -u rdptest -p geheim

Bei dieser Gelegenheit öffnet man den Regedit unter Windows und stellt die Anzeige der Desktopicons ab: Unter dem Registrypfad HKEY_CURRENT_USER\Softwar\eMicrosoft\Windows\CurrentVersion\Policies\Explorer muss ein DWORD-Eintrag angelegt werden, der „NoDesktop“ heißt und den Wert 1 besitzt.
Zusätzlich läd man sich http://www.cendio.com/seamlessrdp/seamlessrdp.zip herunter und entpackt es z.B. unter C:\seamlessrdp
Nun wieder abmelden (nicht nur „trennen“!).

Mit

rdesktop -A -s "c:\seamlessrdp\seamlessrdpshell.exe explorer" 192.168.178.24 -u rdptest -p geheim

kann man sich nun die Taskleiste auf den Desktop holen und Programme starten.

Vorteile:
· Copy & Paste geht
· Fenster werden vom Windowmanager verwaltet
· RDP Features können benutzt werden (bspw. Druckerumleitung)
· Es kann statt eines gesamtes Windowsdesktops auch nur eine einzelne Anwendung gestartet werden (explorer dann z.B. durch notepad ersetzen)

Probleme:
· Mindestens unter Ubuntu 9.04 und 9.10 ist derzeit das rdesktop-Paket kaputt. Es werden Fensterdekorationen angezeigt, obwohl das nicht sein sollte. (Bugreport und Workaround)
· Die Taskleiste zuckt mit dem Windows-Classic-Skin nervös. Besser Luna oder ein alternatives Theme verwenden.
· Fenster mit Fokus werden nicht immer ordentlich in den Vordergrund geholt (oft z.B. bei Kontextmenüs).
· Automatisches Ausblenden der Taskleiste lässt einen blauen Rand überstehen.
· RDP ist technisch eher mit VNC als mit X-Forwarding zu vergleichen. Das Zeichnen der Fenster ist wie bei VNC daher eher träge.

Tipps:
· Die Option -P von rdesktop kann die Fensterinhalte zwischenspeichern und verbessert die Performance evtl. erheblich.

openvpn bricht wegen fehlender Option ab

Eigentlich ein ziemlich dummer Fehler, warum mein VPN nie funktioniert hat: Auf dem Server war die Kompression eingeschaltet, auf dem Client dagegen nicht.
Ein Blick in /var/log/syslog hätte sogar gezeigt: „WARNING: ‚comp-lzo‘ is present in remote config but missing in local config, remote=’comp-lzo'“
Nach dem im NetworkManager die Kompression ebenfalls eingeschaltet wurde, funktioniert alles wunderbar :)

DBDesigner Fork

Will man den DBDesigner Fork unter Linux mittels dem Skript startdbd_using_kernel2.6 starten, so wirft er einem womöglich diese Fehlermeldung entgegen: „./DBDesignerFork: error while loading shared libraries: libpthread.so.0: cannot open shared object file: No such file or directory“
Hier hilft es, den Teil „LD_ASSUME_KERNEL=2.4.1“ aus dem Skript zu entfernen.

End-of-File eingeben

Manchmal erwartet ein Programm eine Eingabe (so z.B. inews oder cat), um dieser weiter zu verarbeiten. Bei mehrzeiliger Eingabe stellt sich nun die Frage, wie man dem Programm klar macht, dass der Text nun zu Ende ist.
Die Lösung ist, dass man das Kontrollzeichen End-of-File (EOF) schickt. Dies kann man meist mit STRG+D bewerkstelligen.

Alle Dateien mit bestimmter Endung einer Website runterladen

Hat man eine Seite, auf der z.B. eine Reihe MP3s verlinkt sind, kann man mit folgendem Befehl alle runterladen:

wget -O - 'http://www.somwhere.de/blabla.php' | grep -o -E 'http://[^"]*.(mp3)' | wget -i -

Der geht allerdings nur, wenn die Verlinkungen absolut (d.h. nicht relativ) sind.

Wie ich gerade merke, erfüllt diese Zeile aber das gleiche (und sollte zudem auch bei relativen Verlinkungen funktionieren):

wget --span-hosts -r -l1 --no-parent -erobots=off -A.mp3 'http://www.somwhere.de/blabla.php'

Wichtig ist hierbei das –span-host, welches auch das Herunterladen von anderen Domains als www.somewhere.de erlaubt.