Archiv

Archiv für die Kategorie ‘Allgemein’

WordPress-Blog umgezogen

20. Dezember 2009 Matthias Lohr Keine Kommentare

Mein Blog ist ab sofort unter http://www.matthias-lohr.net/ erreichbar. http://blog.ml.vg/ ist allerdings weiterhin als Redirect auf die neue Adresse aktiv.

Da viele Leute Probleme haben bei einem WordPress-Umzug hier eine kleine Anleitung, wie ich (nach einigen Versuchen) den Blog umgezogen bekam:

  1. Backups! Bevor man irgendetwas an seinem Blog ausprobiert, sollte man sowohl die Dateien als auch die Datenbank sichern, um im Problemfall den alten Stand wiederherstellen zu können.
  2. Dateien auf den neuen Server kopieren. Bitte dabei beachten, dass alle Dateien entsprechende Rechte bekommen (und die wp-config.php entsprechend wenige).
  3. In der alten Installation (vorsicht, hier machen wir was kaputt!) in den Einstellungen die Seiten URL auf die neue URL ändern. Danach wird der Blog auf der alten URL nicht mehr korrekt angezeigt!
  4. Datenbank aus der alten Installation exportieren und in der neuen einfügen. Ggf. die Einstellungen in der wp-config.php anpassen, damit die neue Installation auch auf die Daten zugreifen kann.
  5. Auf dem neuen Server die Inhalte von wp-content/cache/ löschen.
  6. In der Datei wp-content/advanced-cache.php den Pfad an die aktuelle Konfiguration anpassen.

Theoretisch müsste der Blog nun wieder einwandfrei laufen. Ggf. muss man noch eigene Links in den entsprechenden Seiten anpassen, die man geschrieben hat.

Wenn noch Fragen oder Anmerkungen sind bitte einfach das Kommentarfeld nutzen, vielen Dank!

KategorienAllgemein, Howtos Tags:

CACert Assurer

24. Oktober 2009 Matthias Lohr Keine Kommentare

Seit Mitte dieser Woche darf ich mich guten Gewissens CACert-Assurer nennen, das bedeutet, dass ich die Identität für andere CACert-Benutzer überprüfen und bestätigen darf.

CACert ist eine Organisation, die es sich zum Ziel gesetzt hat, vertrauenswürdige SSL-Zertifikate jedem, der möchte, sehr kostengünstig (meist kostenlos) zur Verfügung zu stellen. Dafür bedient sich CACert der Idee, das deren Mitglieder gegenseitig ihre Identität bestätigen, wobei man für jede erhaltene Bestätigung Punkte erhalten kann. Sobald man 50 Punkte gesammelt hat, kann man z. B. 24 Monate gültige Zertifikate ausstellen (genaueres unter: CACert Punktesystem).

Jeder, der sich von mir assuren (also die Identität überprüfen) lassen möchte (und entweder in der Nähe von Trier, Zell (Mosel) oder bei Koblenz wohnt) kann sich bei mir melden, dann können wir gerne einen Termin für ein persönliches Treffen vereinbaren.

KategorienAllgemein Tags:

Zweistellige .de-Domains?

16. Oktober 2009 Matthias Lohr Keine Kommentare

Wenn man den aktuellen Meldungen auf der Denic-Seite Glauben schenken kann (nein, wir haben nicht den ersten April) gibt es am dem 23. Oktober zweistellige .de-Domains (siehe http://www.denic.de/domains/allgemeine-informationen/einfuehrung-neuer-domains.html). Über Preise ist dort nichts angegeben, daher bin ich mal gespannt, was das wird und wie schnell diese Domains weg sind… oder ob das überhaupt was wird.

KategorienAllgemein Tags: ,

Neuer GPG-Schlüssel

Aus verschiedenen Gründen habe ich mir einen neues GPG-Schlüsselpaar erstellt. Der öffentliche Schlüssel sollte ab sofort über die bekannten Keyserver abrufbar sein. Alternativ kann man den Schlüssel auch hier direkt herunterladen.

Informationen zum Schlüssel:
Schlüssel-ID: 0xD0878537F4B53E06
Fingerabdruck: 38B7 758A 9115 A693 9DCA 119F D087 8537 F4B5 3E06

Wenn jemand ein gegenseitiges Signing möchte, kann man mich über die im Schlüssel hinterlegten E-Mail Adressen erreichen und wir können ein persönliches Treffen vereinbaren, am besten entweder bei der Universität Trier oder im nahen Umkreis von Zell (Mosel).

Du auch!

KategorienAllgemein Tags:

VMWare: Pfeiltasten öffnen Windows Startmenü

Aus verschiedenen Gründen habe ich unter meinem Linux eine Installation von VMWare mit einem Windows XP als Gastsystem. Allerdings quält mich schon seit geraumer Zeit das Problem, dass als Reaktion auf die Pfeiltasten das Windows-Startmenü geöffnet wird, statt den Cursor in die gewünschte Richtung zu bewegen. Nach ein wenig Googlen habe ich dafür eine ganz einfache Lösung gefunden, die ich hier einfach auch mal auf Deutsch poste:

Im Home-Verzeichnis einfach (sofern nicht vorhanden) ein Verzeichnis mit dem Namen .vmware anlegen, dort eine Datei config die folgenden Inhalt bekommt:

xkeymap.keycode.108 = 0×138 # Alt_R
xkeymap.keycode.106 = 0×135 # KP_Divide
xkeymap.keycode.104 = 0x11c # KP_Enter
xkeymap.keycode.111 = 0×148 # Up
xkeymap.keycode.116 = 0×150 # Down
xkeymap.keycode.113 = 0x14b # Left
xkeymap.keycode.114 = 0x14d # Right
xkeymap.keycode.105 = 0x11d # Control_R
xkeymap.keycode.118 = 0×152 # Insert
xkeymap.keycode.119 = 0×153 # Delete
xkeymap.keycode.110 = 0×147 # Home
xkeymap.keycode.115 = 0x14f # End
xkeymap.keycode.112 = 0×149 # Prior
xkeymap.keycode.117 = 0×151 # Next
xkeymap.keycode.78 = 0×46 # Scroll_Lock
xkeymap.keycode.127 = 0×100 # Pause
xkeymap.keycode.133 = 0x15b # Meta_L
xkeymap.keycode.134 = 0x15c # Meta_R
xkeymap.keycode.135 = 0x15d # Menu

Damit sollten die Probleme erledigt sein. Vielen Dank an http://throwingmywindows.blogspot.com/2008/12/vmware-arrow-key-problem.html, von dieser Seite habe ich diese Lösung.

KategorienAllgemein Tags: , ,

IRCIS

Nach langer Planung und viel Arbeit haben wir unser Entwickler-IRC-Netzwerk (IRCIS) neu aufgesetzt. Wir verwenden nun die neuesten Versionen von InspIRCd und Anope. Die Homepage wurde ebenfalls überarbeitet, allerdings fehlt es noch etwas an Inhalten ;)

Sinn dieses Netzwerks ist es, Programmierern (vor allem im Chat- und im speziellen dem IRC-Bereich) die Möglichkeit zu geben, ohne direkte Sperrung wegen zu vieler Connects/Disconnects oder zu hoher Datenrate, Anwendungen zu programmieren und zu testen. Mit der Zeit, insbesondere durch die Kooperation mit www.simsforum.de, haben sich allerdings ein paar kleine Channels angesiedelt, welche das IRC-Netzwerk nicht nur zu einem Platz für einsame Programmierer machen.

Herzliche Einladung an alle Interessierten, sich das Netzwerk mal anzuschauen. Informationen dazu finden sich hier: http://www.ircis.de/server.

KategorienAllgemein Tags: , ,

Diffs und Patches mit SVN

Einfach mal so, weil ich grade mal wieder den Nutzen davon schätzen gelernt habe: Jeder kennt den Befehl svn status, mit dem man anzeigen lassen kann, welche Dateien neu/geändert sind bzw. welche Änderungen beim nächsten Commit an das Repository gesendet werden. Mindestens ebenso praktisch ist auch das Kommando svn diff. Damit kann man sich genau anzeigen lassen, welche Änderungen an welcher Datei in welcher Zeile vorgenommen wurden. Was viele leider nicht wissen, ist, dass man mit der Ausgabe diesen Befehls auch patchfiles erzeugen lassen kann, die man, mit ebenfalls einer einzigen Zeile, in anderen Kopieren des Repositorys (oder Exports) einspielen kann.

Erstellen eines Patchfiles:

Dieser Befehl erstellt ein Patchfile, in dem er die Ausgabe von svn diff in eine Datei umleitet:

svn diff > patchfile.patch

Einspielen eines Patchfiles:

Dieser Befehl führt die Änderungen, die durch ein svn diff beschrieben werden, auch an einer weiteren Kopie des Codes durch. Dazu benötigt man ein wie oben beschrieben erstelltes Patchfile:

patch -p0 < patchfile.patch

Ich finde es ist einfach ein praktisches Feature, wenn man mal Code-Passagen oder -Varianten oder sonstiges weitergeben möchte, ohne direkt einen SVN-Commit durchführen zu müssen (bzw. wenn man nicht committen darf).

KategorienAllgemein Tags: , ,

Authentifizierung über libnss-mysql

22. Februar 2009 Matthias Lohr Keine Kommentare

Manchmal hat man den Wunsch, ein zentrales Benutzerverzeichnis über mehrere Server hinweg anzubieten. Bei solchen Szenarien fällt einem eigentlich sofort LDAP ein, allerdings kann es manchmal von Vorteil sein, eine datenbankbasierte Authentifikation durchzuführen. Nach ein wenig Recherche im großen Netz bin ich dann auf libnss-mysql gestoßen (zu meinem großen Bedauern hab ich kein libnss-pgsql für PostgreSQL gefunden…). Ich Copy&Paste hier im Wesentlichen nun einfach meine Ergebnisse und Configs, falls ihr jemand das Bedürfnis habt, ein ähnliches System aufzusetzen.

Der Server mit den Benutzerdaten ist ein “echter” Host, der irgendwo als physische Maschine rumsteht. Damit man sich nicht groß mit SSL, Verschlüsselung und Sicherheit rumschlagen muss habe ich kurzerhand auf Server und Client OpenVPN installiert. Wie genau die Einrichtung funktioniert entnehme man bitte der verlinkten Seite. Jedenfalls hatte ich so ein eigenes Netzwerk, welches sogar Verschlüsselung zwischen den einzelnen Knoten hat, damit sind (vorerst) die gröbsten Löcher gestopft.

Nun schnell MySQL umkonfigurieren, damit der DB-Dienst nicht an localhost sondern an meinem neuen virtuellen VPN-Interface lauscht. Dazu passt man einfach den Eintrag ‘bind-address’ in der Datei /etc/mysql/my.cnf an. Beispiel (unsichere Methode, lauscht überall):

bind-address = *

Außerdem muss man noch (per phpMyAdmin o. ä.) die Datenbank+Tabellen erstellen und, wenn man das System auch benutzen möchte, Daten einpflegen. Hier poste ich nun einfach mal meine Struktur der Tabellen

CREATE TABLE IF NOT EXISTS `sys_groupmembers` (
`uid` int(11) NOT NULL default ’0′,
`gid` int(11) NOT NULL default ’0′
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

CREATE TABLE IF NOT EXISTS `sys_groups` (
`gid` int(11) NOT NULL auto_increment,
`groupname` varchar(30) character set latin1 NOT NULL,
`group_password` varchar(64) character set latin1 NOT NULL default ‘x’,
PRIMARY KEY (`gid`)

) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=1000;

CREATE TABLE IF NOT EXISTS `sys_users` (
`uid` int(11) NOT NULL auto_increment,
`username` varchar(50) character set latin1 NOT NULL,
`realname` varchar(32) character set latin1 NOT NULL default ”,
`shell` varchar(20) character set latin1 NOT NULL default ‘/bin/sh’,
`password` varchar(40) character set latin1 NOT NULL default ”,
`gid` int(11) NOT NULL default ’65534′,
`homedir` varchar(32) character set latin1 NOT NULL default ‘/bin/sh’,
`lastchange` varchar(50) character set latin1 NOT NULL default ”,
`min` int(11) NOT NULL default ’0′,
`max` int(11) NOT NULL default ’0′,
`warn` int(11) NOT NULL default ’7′,
`inact` int(11) NOT NULL default ‘-1′,
`expire` int(11) NOT NULL default ‘-1′,
PRIMARY KEY (`uid`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=1000 ;

Auf dem Client installiert man nun die Pakete nscd und libnss-mysql (ich benutze eigentlich immer Debian/Ubuntu, da heißen die Pakete direkt so und die Installation ist mit apt-get install schnell erledigt. Bei anderen Distributionen bitte entsprechende Befehle verwenden oder die Pakete einfach von Hand installieren). Dann werden die entsprechenden Konfigurations-Dateien angepasst:

nsswitch.conf ist für das Betriebssystem ein Hinweis wo/wie überall nach Benutzern gesucht werden kann. nss-mysql.conf gibt an, wie man alle interessanten User-Details mit Ausnahme des Passworts bekommen kann. nss-mysql-root.conf füllt eben genau diese Lücke. Daher sollten für beide Configs verschiedene Benutzer verwendet werden, der Datenbankbenutzer der nss-mysql.conf – Config (also der, der nicht nach dem PW gefragt wird) sollte auch keine Rechte haben, auf die Passwort-Spalte in MySQL zuzugreifen. Außerdem verlangt libnss, dass die nss-mysql-root.conf nur von Benutzer root gelesen werden kann (also chmod 600), denn niemand außer root sollte generell an die System-Passwörter kommen, was man allerdings mit Hilfe des in dieser Datei notierten MySQL-Passworts doch erreichen könnte.

/etc/nsswitch.conf:
An das Ende der Zeilen, die mit “passwd”, “group” bzw. “shadow” anfangen, hängt man (mit einem Leerezeichen Abstand zum bisherigen letzten Wort) das Wörtchen “mysql” hintendran. So siehts dann aus:

passwd: compat mysql
group: compat mysql
shadow: compat mysql

/etc/nss-mysql.conf:
Ich gebe hier nur die Zeilen wieder, die kein Kommentar sind. Hostname, Datenbankname, Benutzername und Passwort sind erfunden und sollten den jeweiligen Bedingungen angepasst werden:

conf.version = 2;
users.host = inet:mein.server.tld:3306;
users.database = userdata;
users.db_user = nss-auth-normal;
users.db_password = 123geheim;
users.table = sys_users;
users.where_clause =;
users.user_column = sys_users.username;
users.password_column = sys_users.password;
users.userid_column = sys_users.uid;
users.uid_column = sys_users.uid;
users.gid_column = sys_users.gid;
users.realname_column = sys_users.realname;
users.homedir_column = sys_users.homedir;
users.shell_column = sys_users.shell;
groups.group_info_table = sys_groups;
groups.where_clause =;
groups.group_name_column = sys_groups.groupname;
groups.groupid_column = sys_groups.gid;
groups.gid_column = sys_groups.gid;
groups.password_column = sys_groups.group_password;
groups.members_table = sys_groupmembers;
groups.member_userid_column = sys_groupmembers.uid;
groups.member_groupid_column = sys_groupmembers.gid;

/etc/nss-mysql-root.conf:
Diese Konfiguration wird für den Abgleich von Passwörtern verwendet:

conf.version = 2;
shadow.host = inet:mein.server.tld:3306;
shadow.database = userdata;
shadow.db_user = nss-auth-root;
shadow.db_password = 124geheim;
shadow.table = sys_users;
shadow.where_clause =;
shadow.userid_column = sys_users.uid;
shadow.user_column = sys_users.username;
shadow.password_column = sys_users.password;
shadow.lastchange_column = sys_users.lastchange;
shadow.min_column = sys_users.min;
shadow.max_column = sys_users.max;
shadow.warn_column = sys_users.warn;
shadow.inact_column = sys_users.inact;
shadow.expire_column = sys_users.expire;

Das wars eigentlich. Nun noch alle betroffenen Dienste (nscd, mysql,openvpn) neustarten und der Spaß sollte funktionieren.

Was ich leider noch nicht geschafft habe, ist die Administration der in der Datenbank gespeicherten Benutzer und Gruppen per Kommandozeilen-Tools, ein erster Ansatz wäre z. B. schonmal passwd, aber selbst das klappt (noch) nicht… Sollte jemand wissen, wie das funktioniert: Da unten ist ein Kommentarfeld ;) Ansonsten: Viel Erfolg bei euren Installationen, bei Fragen und Problemen einfach melden.

Und wieder ein Blog…

26. Januar 2009 Matthias Lohr 2 Kommentare

Noch ein Blog mehr, den die Welt nicht brauch (lt. Duden “der Blog”). Die Frage nach dem Sinn stellt sich auch hier wieder … gefunden habe ich noch keinen, ich wollte vordergründig WordPress 2.7 ausprobieren. Daher bitte ich die werten Leser, keine Hoffnungen darauf zu setzen, dass dieser Blog gepflegt oder gar aktualisiert wird.

In diesem Sinne: Bis demnächst.

KategorienAllgemein Tags: