Jul 29

Debian GNU/LinuxSehr erfreut war ich über den Newsletter von Debian, den ich heute in meinem Postfach vorgefunden habe. Ab sofort wird jeweils im Dezember eines ungeraden Jahres der aktuelle Stand für einen neuen Release eingefroren. Im folgenden Frühjahr sollte dann mit der Veröffentlichung zu rechnen sein. D.h. dass im Schnitt alle zwei Jahre mit einer neuen stabilen Version zu rechnen ist. Das wird schlussendlich dazu führen, dass stets relativ neue Pakete in den jeweiligen stabilen Releases zu finden sein werden. Ich hoffe nur bzw. bin auch relativ überzeugt davon, dass die Stablität und Qualität nicht darunter zu leiden hat.

Artikel twittern
Jun 23

Debian GNU/LinuxZur Überprüfung ob die über apt-get/aptitude geladenen Dateien aus einer vertrauenswürdigen Quelle stammen werden diese auf der Seite von Debian mit einem privaten Schlüssel signiert und auf der Benutzer-Seite mit dem zugehörigen öffentlichen Schlüssel auf Korrektheit geprüft. Die Schlüsselpaare haben bei Debian eine Gültigkeit von drei Jahren, danach müssen diese aktualisiert werden. Der alte Schlüsselpaar verliert mit 01.07.2009 seine Gültigkeit, das neue Schlüsselpaar wird ab 13.06.2009 eingesetzt. Damit die neuen öffentlichen Schlüssel auf dem System bekannt sind, müssen diese aktualisiert werden.

Führt man “apt-get update” oder “aptitude update” ohne Aktualisierung der Schlüssel aus, wird folgende Meldung ausgegeben:

W: There is no public key available for the following key IDs:
9AA38DCD55BE302B
W: There is no public key available for the following key IDs:
9AA38DCD55BE302B
W: GPG error: ftp://ftp.hosteurope.de etch Release: Die folgenden Signaturen konnten nicht überprüft werden, weil ihr öffentlicher Schlüssel nicht verfügbar ist: NO_PUBKEY 9AA38DCD55BE302B
W: GPG error: http://ftp.de.debian.org etch Release: Die folgenden Signaturen konnten nicht überprüft werden, weil ihr öffentlicher Schlüssel nicht verfügbar ist: NO_PUBKEY 9AA38DCD55BE302B
W: Probieren Sie "apt-get update", um diese Probleme zu korrigieren.

Mit dem Befehl “apt-get install debian-archive-keyring” bzw. “aptitude install debian-archive-keyring” (je nachdem ob man apt-get oder aptitude bevorzugt) können die öffentlichen Schlüssel aktualisiert werden. Aus Sicherheitsgründen muss noch eine Frage mit “Ja” bestätigt werden:

Muss 12,8kB an Archiven herunterladen. Nach dem Entpacken werden 4096B zusätzlich belegt sein.
Wollen Sie fortsetzen? [Y/n/?] Y
WARNUNG: nichtvertrauenswürdige Versionen der folgenden Pakete werden installiert!

Nichtvertrauenswürdige Pakete können die Sicherheit Ihres Systems gefährden.
Sie sollten nur dann mit der Installation fortfahren, wenn Sie sicher sind, dass
dies das ist, was Sie wollen.

debian-archive-keyring

Wollen Sie diese Warnung ignorieren und trotzdem weitermachen?
Geben Sie zum Weitermachen "Ja", zum Abbrechen "Nein" ein: Ja

Die Installation wird daraufhin durchgeführt:

Schreibe erweiterte Statusinformationen... Fertig
Hole:1 ftp://ftp.hosteurope.de etch/main debian-archive-keyring 2009.01.31 [12,8kB]
12,8kB wurden in 0s heruntergeladen (81,1kB/s)
(Lese Datenbank ... 29059 Dateien und Verzeichnisse sind derzeit installiert.)
Vorbereiten zum Ersetzen von debian-archive-keyring 2007.07.31~etch1 (durch .../debian-archive-keyring_2009.01.31_all.deb) ...
Entpacke Ersatz für debian-archive-keyring ...
Richte debian-archive-keyring ein (2009.01.31) ...
gpg: key 6070D3A1: "Debian Archive Automatic Signing Key (4.0/etch) <ftpmaster@debian.org>" not changed
gpg: key ADB11277: "Etch Stable Release Key <debian-release@lists.debian.org>" not changed
gpg: key BBE55AB3: "Debian-Volatile Archive Automatic Signing Key (4.0/etch)" not changed
gpg: key F42584E6: public key "Lenny Stable Release Key <debian-release@lists.debian.org>" imported
gpg: key 55BE302B: public key "Debian Archive Automatic Signing Key (5.0/lenny) <ftpmaster@debian.org>" imported
gpg: key 6D849617: public key "Debian-Volatile Archive Automatic Signing Key (5.0/lenny)" imported
gpg: Total number processed: 6
gpg:               imported: 3  (RSA: 2)
gpg:              unchanged: 3
gpg: no ultimately trusted keys found

Abschließend kann man die installierten Schlüssel noch mit “apt-get list” ansehen:

/etc/apt/trusted.gpg
--------------------
pub   1024D/6070D3A1 2006-11-20 [expires: 2009-07-01]
uid                  Debian Archive Automatic Signing Key (4.0/etch) <ftpmaster@debian.org>

pub   1024D/ADB11277 2006-09-17
uid                  Etch Stable Release Key <debian-release@lists.debian.org>

pub   1024D/BBE55AB3 2007-03-31 [expires: 2010-03-30]
uid                  Debian-Volatile Archive Automatic Signing Key (4.0/etch)
sub   2048g/36CA98F3 2007-03-31 [expires: 2010-03-30]

pub   1024D/F42584E6 2008-04-06 [expires: 2012-05-15]
uid                  Lenny Stable Release Key <debian-release@lists.debian.org>

pub   4096R/55BE302B 2009-01-27 [expires: 2012-12-31]
uid                  Debian Archive Automatic Signing Key (5.0/lenny) <ftpmaster@debian.org>

pub   2048R/6D849617 2009-01-24 [expires: 2013-01-23]
uid                  Debian-Volatile Archive Automatic Signing Key (5.0/lenny)
Artikel twittern
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
Artikel twittern
Feb 15

Debian GNU/LinuxAm 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.

Artikel twittern
Jul 23

Die grundsätzliche Funktionalität von sudo habe ich im Artikel “sudo vs. su” bereits erklärt. In diesem Artikel möchte ich darauf eingehen, wie man einem Benutzer die Verwendung von sudo erlauben kann. Unter Linux gibt es hierfür die Datei “/etc/sudoers”. Diese sollte allerdings nicht mit einem beliebigen Editor bearbeitet werden, sondern ausschließlich mit “visudo”, da hiermit vor dem Speichern eine Syntax-Überprüfung erfolgt. Darauf weist auch der Kommentar “This file MUST be edited with the ‘visudo’ command as root.” am Dateianfang hin. Außerdem weiß visudo wo die sudoers-Datei auf dem System gespeichert ist, da der Pfad auf anderen Betriebssystemen (z.B. bei Mac OS X unter “/private/etc/sudoers”) auch abweichen kann. Wie visudo zu bedienen ist, kann im Artikel “Standard-Editor vi” nachgelesen werden, außerdem werden die verfügbaren Befehle in der Statusleiste angezeigt.

Mit dem folgenden Befehl öffnet man also die sudoers-Datei als Superuser:

visudo

Unter Debian sieht die Datei standardmäßig wie folgt aus:

# /etc/sudoers
#
# This file MUST be edited with the 'visudo' command as root.
#
# See the man page for details on how to write a sudoers file.
#
 
Defaults        env_reset
 
# Host alias specification
 
# User alias specification
 
# Cmnd alias specification
 
# User privilege specification
root    ALL=(ALL) ALL

Damit wird dem Benutzer “root” auf allen Computern die Ausführung aller Befehle mit/unter jedem Benutzer erlaubt. Im Allgemeinen können fünf Einstellungen pro Zeile festgelegt werden:

  1. Benutzer: Ein Benutzer oder Alias (Standard: muss festgelegt werden).
  2. Host: Ein Host oder Alias (Standard: muss festgelegt werden).
  3. =
  4. (Runas): Mit/Unter welchem Benutzer der Befehl ausgeführt wird (in runden Klammern geschrieben) (Standard: root).
  5. Authentifizierung: Ob nach dem Benutzer-Passwort gefragt werden soll (PASSWD) oder nicht (NOPASSWD) gefolgt von “:” und anschließend Befehl (Standard: nach Passwort fragen).
  6. Befehl: Ein oder mehrere Befehle oder Alias (Standard: muss festgelegt werden).
# User privilege specification
root    ALL=(ALL) ALL

könnte mit der selben Wirkung vereinfacht

# User privilege specification
root    ALL=ALL

oder erweitert wie folgt geschrieben werden:

# User privilege specification
root    ALL=(ALL) PASSWD:ALL

Auch mehrere Befehle können angegeben werden, z.B. dass immer nach dem Benutzer-Passwort gefragt wird, außer für /sbin/reboot:

username ALL=NOPASSWD:/sbin/reboot,PASSWD:ALL

Wie bereits erwähnt können für Benutzer, Host und Befehl auch ein Alias angegeben werden. Diese können wie folgt festgelegt und aktiviert werden:

# Host alias specification
Host_Alias SERVER=host1,host2
 
# User alias specification
User_Alias MAINTAINER=username1,username2
 
# Cmnd alias specification
Cmnd_Alias DEB=/sbin/reboot,/usr/bin/aptitude
  
# User privilege specification
root    ALL=(ALL) ALL
MAINTAINER    SERVER=(root) PASSWD:DEB

Die oben erwähnten Konfigurationen nochmals übersichtlich zusammengefasst:

# User privilege specification
# USER     HOST  =(RUNAS) PASSWD/NOPASSWD COMMAND
root       ALL   =(ALL)                   ALL
root       ALL   =                        ALL # same as above
root       ALL   =(ALL)   PASSWD:         ALL # same as above
MAINTAINER SERVER=(root)  PASSWD:         DEB
Artikel twittern