Lokale Umgebungen für Perl, Python und Ruby

Hin und wieder hat man auf einem System keine root-Rechte oder möchte diese nicht nutzen. Und oft will man gerade in solchen Situationen Perl-Module, Ruby Gems oder Python Eggs verwenden, die auf dem System nicht verfügbar sind. Erfreulicherweise bieten alle diese Sprachen Mechanismen an, mit denen sich Erweiterungen im Heimatverzeichnis des Benutzers installieren lassen.
Wie das im Einzelnen geht, beschreibt dieser Artikel.

Continue reading

cron mit LDAP-Nutzern unter Debian

Will man für Benutzer, die im LDAP verwaltet werden, eine crontab erstellen, wird diese unter Debian Wheezy eventuell nicht ausgeführt.

Stattdessen erhält man in /var/log/syslog die Meldung

/usr/sbin/cron[2656]: (lupinchen) ORPHAN (no passwd entry)

Das Problem ist schon uralt: cron erkennt offenbar keine LDAP-Benutzeraccounts.
Die Lösung ist trivial – wenn man sie kennt.
Die besteht darin, den nscd zu starten.

/etc/init.d/nscd start

Schon läuft der cron so, wie man es erwartet und führt auch crontabs für LDAP-Benutzer aus.

Quellen:

PPTP Server mit LDAP Authentifizierung

Für VPN Verbindungen bevorzuge ich eigentlich OpenVPN, das ich auch in vielen Konstellationen seit langer Zeit einsetze. Leider gibt es einige Geräte, die OpenVPN nicht unterstützen.
Diese Geräte unterstützen aber meistens Microsofts PPTP, das zwar bei weitem nicht so sicher ist, aber von einigen Geräten als einziges Protokoll unterstützt wird.
Als begeisterter LDAP-Nutzer konnte ich es natürlich nicht lassen, den pptpd mit einer LDAP-Authentifizierung zu konfigurieren.
Continue reading

wget: Download automatisch fortsetzen

wget ist vermutlich das Werkzeug Nummer 1, wenn es um das Herunterladen von Dateien via HTTP oder FTP geht.

Wenn man wget mit einer schlechten Internetverbindung nutzt oder der Server, von dem man lädt nicht optimal arbeitet, kommt es bei großen Dateien hin und wieder zur Meldung “stalled” und wget setzt den Download nicht fort.
Nach immerhin 15 Minuten bricht wget dann in der Regel den Download ab oder versucht, die Datei erneut herunter zu laden.

Dieses Verhalten von wget kann man durch die Optionen -c (continue), –read-timeout und –tries beeinflussen.
Die Option -c bewirkt, dass wget einen begonnenen Download fortsetzt. Damit muss man nicht die komplette Datei noch einmal von Anfang an herunter laden, sondern beginnt dort, wo der Download abgebrochen ist.
Mit –read-time=X kann man wget sagen, dass es nach X Sekunden ohne dass Daten empfangen wurden, einen Timeout liefern und den Download beenden soll. Die Option –tries=X bewirkt wiederum, dass ein Download, der wegen eines Timeouts beendet wurde, erneut versucht wird. Setzt man X auf 0, versucht wget es immer wieder, egal wie oft der Download unterbrochen wird.

Mit der folgenden Kommandozeile bringt man wget dazu, nach 2 Sekunden “stalled” den Download neu zu starten und dort fortzusetzen, wo der vorhergehende Versuch hängen geblieben ist:

wget -c --read-timeout=2 --tries=0 URL

ProFTPD gegen LDAP authentifizieren

Der ProFTPD hat sich etwas zickig, wenn es um eine Authentifizierung via PAM und LDAP geht. Auch wenn pamtester bestätigt, dass die PAM-Konfiguration funktioniert, meint ProFTPD nur lapidar: “no such user found”.
Aber ProFTPD bietet erfreulicherweise noch einen anderen Weg, eine Authentifizierung via LDAP vorzunehmen: mod_ldap.
Continue reading

opensync mit dem Nokia 9300i

openSUSE Nachdem ich in letzter Zeit regelmäßig bei der Audi AG in Ingolstadt unterwegs bin und dort mein Nokia E90 nicht benutzen kann, weil es eine Kamera hat, habe ich mir eine Alternative zugelegt: einen guten alten Nokia 9300i.

Zunächst hatte ich einige Probleme, den Communicator mit meinem Kontact zu synchronisieren, aber jetzt habe ich eine opensync-Konfiguration gefunden, die ziemlich gut funktioniert.
Continue reading

Update auf MagicDraw 16.0

openSUSE Heute habe ich (endlich) mal die MagicDraw-Pakete im openSUSE BuildService aktualisiert. Die Version 16.0 ist ja schon eine Weile verfügbar, aber die liebe Zeit…

Die Personal Edition ist verschwunden, ebenso wie der Floating Server, aber das sollte niemanden abschrecken.

Teamwork-Server und Teamwork-Administrator sind auch enthalten, hier sind ein paar Bugs in den Init-Scripten gefixed. Das RPMlint für das Hauptpaket funktioniert jetzt auch wieder korrekt und beschwert sich deutlich weniger :-)

Updates für Beautifier

openSUSE Endlich hatte ich mal wieder ein paar Minuten Zeit…
Die habe ich auch gleich sinnvoll genutzt und die Beautifier im openSUSE Build Service aktualisiert. Uncrustify liegt jetzt in der Version 0.53 vor und das UniversalIndentGUI ist auf die Version 1.1.0 aktualisiert.

Beide Pakete können wie üblich über home:/gerritbeine für die unterschiedlichen Versionen von openSUSE bezogen werden.

pam_encfs im openSUSE BuildService

openSUSE Nachdem ich schon eine ganze Weile mit encfs unter openSUSE arbeite, wollte ich probieren, ob es nicht möglich ist, das komplette Home-Verzeichnis mit encfs zu verschlüsseln und automatisch bei der Anmeldung zu mounten. Theoretisch sollte das möglich sein – und tatsächlich mit pam-encfs geht das auch wunderbar.

Da ich ein ordentlicher Mensch bin ;-)… habe ich auch gleich ein RPM auf den openSUSE BuildService gestellt, so dass auch andere in den Genuss von pam_encfs kommen. Das RPM ist unter home:gerritbeine auf den BuildService zu finden.

Drei Dinge sind bei der Verwendung zu beachten:

PAM-Integration

Am besten lässt sich pam_encfs unter openSUSE über die Datei /etc/pam.d/common-auth-pc integrieren. Normalerweise enthält diese Datei nur die beiden Module pam_env und pam_unix2. Genau dazwischen schaltet man nun pam_encfs, so dass die Datei wie folgt ausschaut:

auth required pam_env.so
auth sufficient pam_encfs.so
auth required pam_unix2.so

fuse-Konfiguration

Damit pam_encfs mit XDM & Co. verwendet werden kann, muss man in die Datei /etc/fuse.conf die Zeile user_allow_other eintragen.

Konfiguration von pam_encfs

Die Konfiguration von pam_encfs liegt unter /etc/security/pam_encfs.conf und ist recht gut dokumentiert. Allerdings habe ich festgestellt, dass die Standard-Konfiguration nicht immer funktioniert. Daher sollte statt jener lieber folgende verwendet werden:

#Username Source Target Encfs Fuse
- /home/enc --idle=1 allow_root

Dabei gehe ich davon aus, dass das verschlüsselte Verzeichnis unter /home/enc/ liegt und in das für den User gespeicherte Home-Verzeichnis (normalerweise /home/) gemountet wird. Eine Minute nachdem sich der User abgemeldet hat, wird das Verzeichnis wieder unmountet. Die Fuse-Option allow_root ist notwendig für XDM & Co.

Jetzt kann man sein Home-Verzeichnis verschlüssel und in Zukunft wird es automatisch via encfs gemountet. Aber bitte: Backups nicht vergessen! Und falls was schiefläuft: Ich bin nicht schuld! ;-)