Freitag, 20. März 2009

Debian-Überlebensbefehle

6.3 Debian-Überlebensbefehle

Mit diesem Wissen kann jeder ein Leben des ewigen "Aktualisierens" führen :-)


6.3.1 Überprüfen von Bugs in Debian und Suche nach Hilfe

Wenn Sie auf Probleme bezüglich eines bestimmten Pakets stoßen, stellen Sie sicher, dass Sie zuerst diese Seiten überprüfen, bevor Sie um Hilfe fragen oder einen Bug-Report erstellen. (lynx, links und w3m sind hier gleichwertig):

     $ lynx http://bugs.debian.org/
$ lynx http://bugs.debian.org/Paketname # wenn der Name bekannt ist
$ lynx http://bugs.debian.org/Bugnummer # wenn Bugnr. bekannt ist

Suchen Sie auch bei Google mit Suchbegriffen wie "site:debian.org".

Wenn Sie nicht weiter kommen, lesen Sie die guten Handbücher. Setzen Sie CDPATH wie folgt:

     export CDPATH=.:/usr/local:/usr/share/doc

und dann

     $ cd Paketname
$ pager README.Debian # falls dies existiert
$ mc

Weitere Hilfequellen sind in Unterstützung für Debian, Kapitel 15 aufgelistet.


6.3.2 APT-Upgrade-Fehlersuche

Es können Paketabhängigkeitprobleme beim Aktualisieren auf unstable/testing entsprechend Aktualisierung, Abschnitt 5.3 entstehen. Meistens liegt das daran, dass ein Paket aktualisiert wird, das neue Abhängigkeiten hat, die nicht erfüllt sind. Diese Probleme können unter Verwendung folgender Befehle gelöst werden:

     # apt-get dist-upgrade

Wenn dies nicht hilft das Problem zu lösen, dann wiederholen Sie folgende Befehle solange, bis sich das Problem auflöst:

     # apt-get upgrade -f       # selbst bei Fehlern mit Upgrade ...
... oder
# apt-get dist-upgrade -f # ... bzw. Dist-Upgrade fortfahren

Einige sehr fehlerhafte Upgrade-Skripte könnten permanente Schwierigkeiten bereiten. In solch einer Situation ist es gewöhnlich besser, wenn man sich die /var/lib/dpkg/info/Paketname.{post,pre}{inst,rm}-Skripte der betreffenden Pakete ansieht und anschließend

     # dpkg --configure -a      # konfiguriert alle nicht vollständig
# installierten Pakete

ausführt.

Wenn eines der Skripte sich über eine fehlende Konfigurationsdatei beschwert, dann schauen Sie in /etc/ nach der entsprechenden Datei. Wenn eine mit der Dateiendung .new (oder so ähnlich) existiert, entfernen Sie diese Dateiendung einfach (z.B. mit mv).

Paketabhängigkeitsprobleme können auftreten, wenn Pakete in unstable/testing installiert werden. Diese können auf unterschiedliche Art und Weise umgangen werden.

     # apt-get install -f Paket # ignoriere falsche Abhängigkeiten

Eine Alternative dazu wäre, das equivs-Paket zu verwenden. Siehe /usr/share/doc/equivs/README.Debian und Das equivs-Paket, Abschnitt 6.5.2.


6.3.3 Wiederherstellung mit dpkg

Sollte das System einmal wirklich schwer geschädigt worden sein, beispielsweise wenn dselect (APT) abstürzt, kann man es auch nur mit Hilfe von dpkg wiederherstellen:

     # cd /var/cache/apt/archives
# dpkg -i libc6* libdb2* perl*
# dpkg -i apt* dpkg* debconf*
# dpkg -i * # solange, bis keine Fehler mehr auftreten

Sollte einmal ein Paket fehlen, können Sie es von Mirror-Seiten herunterladen:

     # mc    # verwenden Sie "FTP-Verbindung" auf Debian-FTP-Server

Neue Pakete auf den HTTP/FTP-Servern befinden sich nicht mehr in dem klassischen dist-Verzeichnis, sondern im neuen pool-Verzeichnis. (Siehe Das pool-Verzeichnis, Abschnitt 2.1.10.)

Die Installation des Pakets erfolgt dann folgendermaßen:

     # dpkg -i /var/cache/apt/archives/Paketdatei.deb

Sollte ein Problem mit einer Abhängigkeit auftreten, kann dieses wie folgt gelöst werden:

     # dpkg --ignore-depends=Paket1 ... -i Paketdatei.deb
# dpkg --force-depends -i Paketdatei.deb
# dpkg --force-depends --purge Paket
# dpkg --force-confmiss -i Paketdatei.deb # installiert fehlende
# Konfigurationsdateien

6.3.4 Wiederherstellung von Paketauswahldaten

Wenn /var/lib/dpkg/status aus irgendeinem Grund fehlerhaft ist, so verliert das Debian-System die Paketauswahldaten und nimmt Schaden. Schauen Sie nach der alten /var/lib/dpkg/status-Datei /var/lib/dpkg/status-old oder /var/backups/dpkg.status.*.

Eine eigene Partition für /var/backups/ zu erstellen, könnte eine gute Idee sein, insbesondere da sich dort wichtige Systemdaten befinden.

Wenn die alte /var/lib/dpkg/status-Datei nicht verfügbar ist, kann man dennoch Informationen von Verzeichnissen in /usr/share/doc/ wiederherstellen.

     # ls /usr/share/doc | \
grep -v [A-Z] | \
egrep -v '^(debian|texmf)$' | \
awk '{print $1 " install"}' | \
dpkg --set-selections
... neuinstallieren des Systems, abwählen je nach Bedarf:
# dselect --expert

6.3.5 Systemrettung nach Löschen von /var

Da das /var-Verzeichnis regelmäßig aktualisierte Daten wie Mails enthält, ist es für einen Ausfall anfällig. Das Auslagern auf eine unabhängige Partition reduziert die Risiken. Wenn ein Unglück geschieht, muss das /var-Verzeichnis wiederhergestellt werden, um das Debian-System zu retten.

Besorgen Sie sich den wichtigsten Inhalt des /var-Verzeichnisses von einem kleinen noch funktionsfähigem Debian-System, basierend auf der selben oder einer älteren Debian-Version, z.B. var.tar.gz und kopieren Sie dies in das Stammverzeichnis des defekten Systems. Führen Sie nun Folgendes aus:

     # cd /
# mv var var-alt # wenn noch sinnvolle Daten vorhanden sind
# tar xvzf var.tar.gz # Woody's Minimaldatei verwenden
# aptitude # oder dselect

Dies sollte zu einem funktionierenden System führen. Die Wiederherstellung der Paketauswahl kann beschleunigt werden, wenn man die in Wiederherstellung von Paketauswahldaten, Abschnitt 6.3.4 beschriebene Technik anwendet. (FIXME: Dieses Vorgehen benötigt mehr Versuche zur Bestätigung.)


6.3.6 Installation eines Pakets in ein nicht bootfähiges System

Booten Sie Linux von einer der Debian-Rettungs-Disketten/CDs oder von einer alternativen Partition in einem Multi-Boot-System. Vergleichen Sie Booten des Systems, Abschnitt 8.1. Mounten Sie nun die nicht bootfähige Partition nach /target und verwenden Sie die chroot-Installationsmethode von dpkg.

     # dpkg --root /target -i Paketdatei.deb

Anschließend sollten Sie alles nötige konfigurieren und Probleme beheben.

Übrigens, wenn lilo alles ist, was Sie davon abhält das System zu booten, können Sie auch ganz einfach von einer Debian-Rettungsdiskette booten. Am Boot-Prompt, vorausgesetzt Ihre root-Partition befindet sich auf /dev/hda12 und Sie möchten im Run-Level 3 starten, geben Sie Folgendes ein:

     boot: rescue root=/dev/hda12 3

Daraufhin startet ein nahezu vollständiges System, mit dem Kernel von der Bootdiskette. (Möglicherweise werden nicht alle Hardwarekomponenten erkannt oder Module nicht geladen, dies liegt aber an dem Kernel von der Bootdiskette.)


6.3.7 Der dpkg-Befehl funktioniert nicht mehr – was nun?

Ein funktionsgestörtes dpkg kann es verständlicherweise unmöglich machen, beliebige .deb-Dateien zu installieren. Ein Vorgehen wie das unten aufgeführte wird Ihnen dabei helfen, diese Situation wieder in den Griff zu bekommen. (Natürlich können Sie links durch Ihrem favorisierten Browser ersetzen.)

     $ links http://http.de.debian.org/debian/pool/main/d/dpkg/
... herunterladen von dpkg_version_arch.deb
$ su
password: *****
$ ar x dpkg_version_arch.deb
# mv data.tar.gz /data.tar.gz
# cd /
# tar xzfv data.tar.gz

Für die i386-Architektur kann auch http://packages.debian.org/dpkg als URL genutzt werden.


6.4 Debian-Nirwana-Befehle

Das Verständnis der folgenden Befehle ist eine essentielle Voraussetzung, um zum einem eventuellen Upgrade-Problemen gewachsen zu sein und zum anderen um das Debian-Nirwana zu erreichen. :-)


6.4.1 Informationen über eine Datei

Sie möchten den Namen des Pakets in Erfahrung bringen, welchem eine bestimmte Datei angehört:

     ... suche nach Muster in den installierten Paketdateien:
$ dpkg {-S|--search} Muster
... finde das Dateinamen-Muster in den Debian-Archivdateien:
$ wget http://ftp.us.debian.org/debian/dists/sarge/Contents-i386.gz
$ zgrep -e pattern Contents-i386.gz

Sie können auch spezialisierte Paketkommandos verwenden:

     ... dlocate:
# apt-get install dlocate
... schnellere Alternative zu dpkg -L and dpkg -S:
$ dlocate filename
... installiert Pakete automatisch auf Anfrage:
# apt-get install auto-apt
... erzeugt eine Datenbank für auto-apt:
# auto-apt update
... sucht nach einem Muster in allen Paketen, ob sie installiert
... sind oder nicht:
$ auto-apt search Muster

6.4.2 Informationen über ein Paket

Die Debian-Paketarchive können durchsucht und angezeigt werden. Stellen Sie jedoch vorher sicher, dass APT die richtigen Archive in /etc/apt/sources.list findet. Wenn Sie sehen wollen, wie sich Pakete in testing/unstable gegen die aktuell installierten verhalten, so verwenden Sie apt-cache policy. Dies ist sehr nett.

     # apt-get check           # aktualisiert den Cache und schaut nach
# fehlerhaften Paketen
$ apt-cache search Muster # sucht Pakete anhand Paketbeschreibung
$ apt-cache policy Paket # Paketprioritäten/Distributions-Infos
$ apt-cache show -a Paket # zeigt die Paketbeschreibung in allen
# Distributionen
$ apt-cache showsrc Paket # zeigt die Paketbeschreibung des
# Quellpakets
$ apt-cache showpkg Paket # zeigt Paketinformationen für Debugging
# dpkg --audit|-C # sucht nach nicht vollständig
# installierten Paketen
$ dpkg {-s|--status} Paket ... # Beschreibung eines installierten
# Pakets
$ dpkg -l Paket ... # Status des installierten Pakets
$ dpkg -L Paket ... # zeigt die Dateien an, die durch das
# Paket installiert wurden

apt-cache showsrc ist in Woody noch nicht dokumentiert, funktioniert aber :)

Sie können ebenfalls anstelle der oben genannten Befehle Paketinformationen in folgenden Dateien finden (verwenden Sie beispielsweise mc zum Suchen):

     /var/lib/apt/lists/*
/var/lib/dpkg/available

Ein Vergleich folgender Dateien kann Aufschluss darüber geben, was genau bei der letzten Installation passiert ist.

     /var/lib/dpkg/status
/var/backups/dpkg.status*

6.4.3 Nicht-Interaktive Installation mit APT

Um Pakete nicht-interaktiv zu installieren, fügen Sie folgende Zeile zu /etc/apt/apt.conf hinzu:

     Dpkg::Options {"--force-confold";}

Dies ist äquivalent zu apt-get -q -y Paket. Da dies alle Fragen automatisch mit "Ja" beantwortet, kann dies zu Problemen führen. Nutzen Sie diese Option deshalb mit Vorsicht. Lesen Sie apt.conf(5) und dpkg(1).

Sie können jedes einzelne Paket auch später wie in Installierte Pakete erneut konfigurieren, Abschnitt 6.4.4 beschrieben konfigurieren.


6.4.4 Installierte Pakete erneut konfigurieren

Verwenden Sie folgende Befehle, um bereits installierte Pakete erneut zu konfigurieren.

     # dpkg-reconfigure --priority=medium Paket [...]
# dpkg-reconfigure --all # Neukonfiguration aller Pakete
# dpkg-reconfigure locales # generiere zusätzliche locales
# dpkg-reconfigure --p=low xserver-xfree86 # konfiguriere den
# X-Server neu

Führen Sie dies für debconf aus, wenn Sie den Dialogmodus von debconf permanent ändern möchten.

Einige Programme sind mit speziellen Konfigurationsskripten ausgestattet. [3]

     apt-setup    - erstellt die Datei /etc/apt/sources.list
install-mbr - installiert einen Master-Boot-Record-Manager
tzconfig - setzt die lokale Zeitzone
gpmconfig - konfiguriert den gpm-Maus-Daemon
eximconfig - konfiguriert Exim (MTA)
texconfig - konfiguriert teTeX
apacheconfig - konfiguriert Apache (httpd)
cvsconfig - konfiguriert CVS
sndconfig - konfiguriert das Soundsystem
...
update-alternatives - definiert Standardbefehle, z.B. vi für vim
update-rc.d - System-V-init-Skript-Management
update-menus - das Debian-Menüsystem
...

6.4.5 Deinstallation von Paketen

Entfernen eines Pakets, die Konfiguration wird nicht gelöscht:

     # apt-get remove Paket ...
# dpkg --remove Paket ...

Entfernen eines Pakets und dessen Konfiguration:

     # apt-get remove --purge Paket ...
# dpkg --purge Paket ...

6.4.6 "Halten" älterer Pakete

Zunächst ein Beispiel: Möchte man, dass die Pakete libc6 und libc6-dev beim Ausführen von dselect und apt-get -u upgrade nicht durch neuere Versionen ersetzt werden, so kann dies folgendermaßen erreicht werden:

     # echo -e "libc6 hold\nlibc6-dev hold" | dpkg --set-selections

apt-get -u install Paket bleibt davon jedoch unbeeinflusst. Um diese Pakete andererseits bei einem automatischen Systemdowngrade mittels apt-get -u upgrade oder apt-get -u dist-upgrade zurück zu halten, ist die Datei /etc/apt/preferences wie folgt zu erweitern:

     Package: libc6
Pin: release a=stable
Pin-Priority: 2000

An dieser Stelle kann der Eintrag "Package:" keine Paketnamen wie z.B. "libc6*" enthalten. Wenn Sie jedoch alle Pakete, die im Zusammenhang mit dem glibc-Quellpaket stehen, auf dem selben Stand halten möchten, müssen Sie diese alle explizit auflisten.

Folgender Befehl zeigt alle Pakete an, die den Status "hold" haben:

     dpkg --get-selections "*" | grep -e "hold$"

6.4.7 Gemischtes stable/testing/unstable-System

apt-show-versions kann alle verfügbaren Paketversionen und deren Zugehörigkeit zu den einzelnen Distributionen anzeigen.

     $ apt-show-versions | fgrep /testing | wc
... Anzahl der installierten Pakete aus testing
$ apt-show-versions -u
... Liste aller Pakete für die es aktuellere Versionen gibt
$ apt-get install `apt-show-versions -u -b | fgrep /unstable`
... aktualisiert alle Paket aus unstable auf die aktuellste Version

6.4.8 Löschen von zwischengespeicherten Paketdateien

APT speichert alle heruntergeladenen Paketdateien in /var/cache/apt/archives/. Diese können folgendermaßen gelöscht werden:

     # apt-get autoclean # löscht nur nicht benötigte Paketdateien
# apt-get clean # löscht alle zwischengespeicherten Paketdateien

6.4.9 Speichern/Kopieren der Systemkonfiguration

Erstellen einer lokalen Kopie der aktuellen Paketauswahl:

     # debconf-get-selections > debconfsel.txt
# dpkg --get-selections "*" >meineAuswahl # oder \*

"*" veranlasst, dass auch Pakete mit einem Status von "purge" in meineAuswahl gespeichert werden.

Diese Datei kann auf einen anderen Computer kopiert werden, um dort die gleichen Pakete zu installieren:

     # dselect update
# debconf-set-selections < debconfsel.txt
# dpkg --set-selections <meineAuswahl
# apt-get -u dselect-upgrade # oder dselect install

6.4.10 Portierung eines Pakets auf die stable-Distribution

Um selektive Upgrades in der stabilen Distribution zu machen, ist es möglich, ein Quellpaket in dieser Umgebung zu kompilieren. Dies verhindert viele Paketaktualisierungen, die durch Abhängigkeiten verursacht würden. Zuerst müssen folgende Zeilen der /etc/apt/sources.list-Datei hinzugefügt werden:

     deb-src http://http.us.debian.org/debian testing \
main contrib non-free
deb-src http://http.us.debian.org/debian unstable \
main contrib non-free

Aus Formatierungsgründen sind die Zeilen hier in je zwei Zeilen umgebrochen. Natürlich muss aber jede mit "deb-src" beginnende Zeile für sich alleine in sources.list stehen.

Nun ist der Quellcode zu beziehen und ein lokales Paket zu erstellen:

     $ apt-get update  # aktualisiere die Quellpaketsuchliste
$ apt-get source Paket
$ dpkg-source -x Paket.dsc
$ cd paket-version
... schauen Sie nach benötigten Paketen (Build-depends in der
... .dsc-Datei) und installieren Sie diese ebenso wie fakeroot

$ dpkg-buildpackage -rfakeroot

... oder (keine Signatur erstellen)
... verwenden Sie später "debsign" wenn nötig
$ dpkg-buildpackage -rfakeroot -us -uc

... Anschließend die Installation des Pakets
$ su -c "dpkg -i Paketdatei.deb"

Gewöhnlich ist es nötig, einige Pakete mit der "-dev"-Erweiterung zu installieren, um Paketabhängigkeiten auflösen zu können. debsign ist im Paket devscripts enthalten. auto-apt kann die Auflösung von Abhängigkeiten erleichtern. Mittels fakeroot lässt sich unnötige Benutzung des root-Accounts vermeiden.

In der Woody-Distribution lassen sich diese Abhängigkeitsprobleme vereinfachen. Als ein Beispiel kompilieren wir pine, das nur im Quellcode vorliegt.

     # apt-get build-dep pine
# apt-get source -b pine

6.4.11 Lokale Paketarchive

Möchte man ein lokales Paketarchiv erzeugen, welches mit APT und dselect kompatibel ist, so muss die Datei Packages erstellt werden und Paketdateien müssen in einem bestimmten Verzeichnis erstellt werden.

Ein lokales deb-Archiv (Repository) das ähnlich zum offiziellen Debian-Archiv ist, kann wie folgt erstellt werden:

     # apt-get install dpkg-dev
# cd /usr/local
# install -d pool # die Paketdateien werden hier gespeichert
# install -d dists/unstable/main/binary-i386
# ls -1 pool | sed 's/_.*$/ priority section/' | uniq > override
# editor override # anpassen von priority und section
# dpkg-scanpackages pool override /usr/local/ \
> dists/unstable/main/binary-i386/Packages
# cat > dists/unstable/main/Release << EOF
Archive: unstable
Version: 3.0
Component: main
Origin: Local
Label: Local
Architecture: i386
EOF
# echo "deb file:/usr/local unstable main" \
>> /etc/apt/sources.list

Alternativ kann auch folgende, schnellere aber unsaubere, Methode verwendet werden:

     # apt-get install dpkg-dev
# mkdir /usr/local/debian
# mv /irgend/ein/Paket.deb /usr/local/debian
# dpkg-scanpackages /usr/local/debian /dev/null | \
gzip - > /usr/local/debian/Packages.gz
# echo "deb file:/usr/local/debian ./" >> /etc/apt/sources.list

Auf ein solches Archiv kann auch von entfernten Computern zugegriffen werden, indem der Zugriff auf diese Verzeichnisse durch HTTP oder FTP ermöglicht wird. Die Datei /etc/apt/sources.list muss dementsprechend angepasst werden.


6.4.12 Installation und Konvertierung eines fremden Binärpakets

Mit Hilfe des alien-Pakets lassen sich binäre Pakete, wie sie in vielen Distributionen wie Red Hat rpm, Stampede slp, Slackware tgz und Solaris pkg verwendet werden, in das Debian deb-Paketformat konvertieren. Wenn Sie ein Paket von einer anderen Distribution verwenden möchten, können Sie es mit alien in Ihr bevorzugtes Paketformat konvertieren und anschließend installieren. alien unterstützt ebenfalls LSB-Pakete.


6.4.13 Verifizierung installierter Paketdateien

debsums verifiziert installierte Paketdateien anhand deren MD5 Prüfsummen. Jedoch gibt es auch Pakete die keine MD5-Prüfsummen enthalten. Eine mögliche temporäre Lösung für Systemadministratoren ist folgende:

     # cat >>/etc/apt/apt.conf.d/90debsums
DPkg::Post-Install-Pkgs {"xargs /usr/bin/debsums -sg";};
^D

von Joerg Wendland joergland@debian.org (nicht getestet).


6.4.14 Optimierte sources.list

Um es kurz zu machen, raffinierte Anstrengungen um sources.list optimal zu erzeugen führte nicht zu einer signifikanten Verbesserungen für mich in den USA. Ich wähle manuell einen nahe gelegenen Server mittels apt-setup.

apt-spy erzeugt sources.list automatisch, basierend auf der Wartezeit und der Bandbreite. netselect-apt erzeugt eine komplexere sources.list, nutzt aber eine einfachere Methode zur Bestimmung des besten Spiegels (ping Zeitvergleich).

     # apt-get install apt-spy
# cd /etc/apt; mv sources.list sources.list.org
# apt-spy -d testing -l sources.apt

6.5 Weitere Debian-Besonderheiten


6.5.1 Der dpkg-divert-Befehl

Dateiumleitungen ist eine Methode, um dpkg dazu zu bringen, Dateien nicht in ihre Standardverzeichnisse zu installieren, sondern in umgeleitete Verzeichnisse. Umleitungen können durch Debian-Skripte dazu genutzt werden, Dateien zu verschieben, wenn sie einen Konflikt verursachen. Systemadministratoren können auch eine Umleitung verwenden, um die Konfigurationsdatei eines Pakets zu überschreiben, oder wann immer einige Dateien (welche nicht als conffiles markiert sind) von dpkg nicht überschrieben werden sollen, wenn eine neuere Version eines Pakets installiert wird, das solche Dateien enthält (siehe Bewahren der lokalen Konfiguration, Abschnitt 2.2.4).

     # dpkg-divert [--add]  Datei # erstellen der "Umleitung"
# dpkg-divert --remove Datei # entfernen der "Umleitung"

Für gewöhnlich ist es ratsam dpkg-divert nicht zu verwenden wenn es nicht absolut notwendig ist.


6.5.2 Das equivs-Paket

Wenn Sie ein Quellpaket kompilieren ist es empfehlenswert, es zu einem echten lokalen Debianpaket (*.deb) zu machen. Benutzen Sie equivs als letzten Ausweg.

     Package: equivs
Priority: extra
Section: admin
Description: Circumventing Debian package dependencies
This is a dummy package which can be used to create Debian
packages, which only contain dependency information.

6.5.3 Alternative Befehle

Möchte man dass der Befehl vi vim ausführt, benutzen Sie update-alternatives:

     # update-alternatives --display vi
...
# update-alternatives --config vi
Selection Command
-----------------------------------------------
1 /usr/bin/elvis-tiny
2 /usr/bin/vim
*+ 3 /usr/bin/nvi

Enter to keep the default[*], or type selection number: 2

Einstellungen im Debian-Alternativsystem werden in /etc/alternatives/ als symbolische Links gespeichert.

Um Ihre bevorzugte X-Window-Umgebung einzustellen, führen sie update-alternatives für /usr/bin/x-session-manager und /usr/bin/x-window-manager aus. Für weitere Informationen, siehe Angepasste X-Sitzung, Abschnitt 9.4.5.1.

/bin/sh ist ein symbolischer Link auf /bin/bash oder /bin/dash. Aus Kompatibilitätsgründen zu alten Bash-verunreinigten Skripten ist es sicherer, /bin/bash zu verwenden. Um die POSIX-Konformität einzuhalten sollte jedoch /bin/dash verwendet werden. Mit dem Upgrade auf den 2.4er-Linux-Kernel geht die Tendenz zugunsten zu /bin/dash.


6.5.4 init und Runlevel

Der Standardrunlevel in dem gebootet wird, lässt sich in /etc/inittab festlegen.

In Debian ist es dem Systemadministrator möglich, einzustellen, welche Dienste in welchem Runlevel laufen sollen. Das update-rc.d-Werkzeug kann verwendet werden, um diese Einstellungen zu ändern, unabhängig davon, ob die sysv-rc- oder die file-rc-Methode zum Kontrollieren von Diensten verwendet wird.

Um zum Beispiel den Dienst name (mit dem Init-Skript /etc/init.d/name) mit der Sequenznummer 20 in den Runlevel 2, 3 und 4 zu starten und in Runlevel 5 mit der Sequenznummer 80 zu stoppen, ist Folgendes auszuführen:

     # update-rc.d name start 20 2 3 4 . stop 80 5 .

Wenn Sie das sysv-rc Paket benutzen, gibt es einen anderen Weg, solche Änderungen durchzuführen: Benennen Sie einfach die symbolischen Links in den /etc/rc?.d Verzeichnissen um.

     # mv S99xdm K01xdm # xdm deaktivieren (X-Display-Manager)

6.5.5 Deaktivierung von Daemon-Diensten

Die Debian-Distribution nimmt die Systemsicherheit sehr ernst und erwartet, dass der Systemadministrator kompetent ist. Eine einfache Administration steht so oft nur an zweiter Stelle und viele Daemon-Dienste sind in der Standard-Installation mit dem höchsten Sicherheitslevel vorkonfiguriert oder mit den wenigsten Diensten (oder keinen) ausgestattet.

Führen Sie ps aux aus oder überprüfen Sie die Inhalte von /etc/init.d/* und /etc/inetd.conf, wenn Sie irgenwelche Zweifel (zu Exim, DHCP, ...) haben. Überprüfen Sie auch /etc/hosts.deny wie in Zugriffskontrolle mit PAM und login, Abschnitt 9.2.1. Der pidof-Befehl ist ebenfalls hilfreich (siehe pidof(8)).

X11 erlaubt standardmäßig keine (entfernten) TCP/IP-Verbindungen in neueren Debian-Versionen. Schauen Sie in TCP/IP-Verbindungen mit X, Abschnitt 9.4.6. X-Weiterleitung mittels SSH ist ebenfalls deaktiviert. Vergleichen Sie mit X-Fernverbindungen mit ssh, Abschnitt 9.4.8.