Apr 09

Bei HostEurope wird für vServer Virtuozzo zur Virtualisierung verwendet. Dieses setzt bei jedem Start die Dateien “/etc/hostname” und “/etc/resolv.conf” neu, d.h. geänderte Konfigurationseinstellungen gehen bei jedem Neustart verloren. Abhilfe schafft ein kleines Startup-Skript, das in “/etc/init.d/hostname-vps.sh” mit folgendem Inhalt abgelegt wird:

#!/bin/bash
if [ -f /etc/hostname.override ]
then
  cp /etc/hostname.override /etc/hostname
  cat /etc/hostname | xargs /bin/hostname
fi
 
if [ -f /etc/resolv.conf.override ]
then
  cp /etc/resolv.conf.override /etc/resolv.conf
fi
 
exit 0

Wenn die Datei “/etc/hostname.override” existiert, so ersetzt diese die Datei “/etc/hostname”. Selbiges gilt analog für “/etc/resolv.conf.override” und “/etc/resolv.conf”. Damit dieses Skript beim Starten ausgeführt wird, müssen noch Links in den entsprechenden Runlevel-Ordner hinzugefügt werden. Debian stellt hierfür das Tool “update-rc.d” zur Verfügung:

# update-rc.d hostname-vps.sh defaults 09

Nun müssen noch die override-Dateien mit den gewünschten Optionen angelegt werden. Anschließend kann das System neu gestartet und die Funktionalität überprüft werden:

# reboot
Apr 08

Im Auslieferungszustand startet Apache2 auf HostEurope vServern mit Debian nicht automatisch beim Hochfahren, obwohl Apache2 installiert wurde. Das ist natürlich ärgerlich, da dieser bei Server-Wartungsarbeiten, Stromausfall, etc. händisch neu gestartet werden müsste, was im Serverbetrieb natürlich nicht gewünscht ist.

Ein Blick in die Log-Dateien bringt keine Fehler ans Tageslicht, der nächste Schritt ist den aktuellen Runlevel zu überprüfen:

# /sbin/runlevel
N 2

D.h. der vServer befindet sich im Runlevel 2, das ist Debian-Standard. Die Ausgabe von “$ ls -la /etc/rc2.d/” zeigt, dass Apache2 nicht gestartet wird, d.h. es fehlt der Link zum Startskript, der bei Debian üblicherweise gesetzt ist. Das lässt sich einfach beheben:

# cd /etc/rc2.d/
# ln -s ../init.d/apache2 S91apache2

Nun noch den Server neu starten:

# reboot

Und ein Aufruf der IP-Adresse im Browser sollte nun die Default-Seite von Apache2 als Ergebnis liefern.

Mar 17

Auf Linux/Unix-Systemen gehören Dateien und Ordner immer einem Benutzer und einer Gruppe. Neu erstellte Dateien erben Benutzer und Gruppe vom Benutzer, der die Dateien/den Ordner erstellt. Neue Dateien lassen sich mit dem Befehl touch (z.B. “touch test.txt”), Ordner mit mkdir (z.B. “mkdir test”) anlegen, die Ausgabe von Objekten im Verzeichnis erfolgt mit ls (z.B. “ls -la”):

$ touch test.txt
$ mkdir test
$ ls -la
total 0
drwxr-xr-x   4 user  group   136 16 Mär 14:55 .
drwxrwxrwx+ 68 user  group  2312 16 Mär 14:55 ..
drwxr-xr-x   2 user  group    68 16 Mär 14:55 test
-rw-r--r--   1 user  group     0 16 Mär 14:55 test.txt

Die Datei “test.txt” gehört hier dem Benutzer “user” und der Gruppe “group”, genauso wie alle anderen Objekte (“.” zeigt den aktuellen, “..” den übergeordneten Ordner an). Zusätzlich werden die Rechte ausgegeben – für “test.txt” sind dies “-rw-r–r–”.

Der erste Buchstabe spezifiziert den Typ näher, für Ordner wird i.d.R. ein “d” angezeigt (siehe Ordner “test”), symbolische Links können an einem “l” erkannt werden. Die nächsten drei Buchstaben “rw-” beschreibt die Rechte des Besitzers (Owner), die nächsten drei “r–” jene der Gruppe (Group), die letzten drei “r–” die Rechte für den Rest (World). Dreistellige Gruppen von Buchstaben können auch als Zahlen ausgedrückt werden, mit folgender Bedeutung:

r = 4 = 100 = Read
w = 2 = 010 = Write
x = 1 = 001 = eXecute
(Buchstabe = Dezimal-Zahl = Binär-Zahl = Bedeutung) 

D.h. “rwx” ist gleichbedeutend mit “7″ bzw. “rw” mit “6″ oder “rx” mit “5″.

Benutzer bzw. Gruppe können mit chown (z.B. “chown user2:group2 test.txt”), Rechte mit chmod (z.B. “chmod 0666 test.txt”, selbes Ergebnis mit “chmod a=rw test.txt”) modifiziert werden.

Feb 15

Am 14. Februar 2009 wurde Debian GNU/Linux 5.0 (Codename “Lenny”) veröffentlicht und löst somit Debian GNU/Linux 4.0 (Codename “Etch”) als aktuelle stabile Version des Debian-Projekts ab. Die aktuelle Version unterstützt nun zwölf unterschiedliche Architekturen, unter anderem auch aktuelle Intel und AMD-Plattformen mit 64bit, hinzugekommen ist Marvells Orion-Plattform, die in zahlreichen Speicherlösungen zum Einsatz kommt und die Unterstützung für Netbooks. Die Paketverwaltung apt bietet nun die Möglichkeit Paketbeschreibungen in der Sprache des Benutzers auszugeben, sofern eine Übersetzung vorhanden ist.  Weitere Neuerungen können der Presseveröffentlichung entnommen werden.

Dec 22

Wenn mehrere Benutzer an einem Projekt arbeiten, bekommt häufig jeder einen eigenen SCP-Benutzer zugewiesen mit dem er Dateien und Ordner bearbeiten kann. Der Apache-Benutzer weicht wiederum von all diesen Benutzern ab. D.h. wenn jemand eine Datei/einen Ordner anlegt, hat grundsätzlich nur dieser selbst Schreibzugriff auf dieses Objekt, was über kurz oder lang zu Problemen führen wird. Abhilfe kann man schaffen, indem man regelmäßig die Berechtigungen rekursiv setzt – über die Konsole ist das recht einfach möglich:

cd /pfad/zum/arbeitsverzeichnis
chown -R apache:staff *
find . -type d -exec chmod a=rwx,o-rwx {} \;
find . -type f -exec chmod a=rw,o-rw {} \; 

Diese Zeilen weisen alle Dateien und Ordner im Verzeichnis “/pfad/zum/arbeitsverzeichnis” dem Benutzer “apache” und der Gruppe “staff” (die SCP-Benutzer sollten sich auch in dieser Gruppe befinden, sonst haben diese keinen Zugriff mehr) zu. Anschließend werden die Rechte so gesetzt, dass Besitzer und Gruppe Vollzugriff haben, alle anderen überhaupt keinen. Bei Ordnern (type d) wird “Ausführen” (=x) benötigt, damit der Ordnerinhalt aufgelistet werden kann, Dateien sollten grundsätzlich nicht ausgeführt werden können (außer Shellskripte). Eine Anpassung an die eigenen Bedürfnisse ist sehr einfach möglich.