Copyright © 1995 by O'Reilly/International Thomson Verlag

Bitte denken Sie daran: Sie dürfen zwar die Online-Version ausdrucken, aber diesen Druck nicht fotokopieren oder verkaufen.

Wünschen Sie mehr Informationen zu der gedruckten Version des Buches "Linux - Wegweiser zur Installation & Konfiguration", dann klicken Sie hier.


Kapitel 4

Die Systemverwaltung

Die Verwaltung eines jeden UNIX-Systems erfordert ein gewisses Maß an Verantwortungsgefühl und Sorgfalt. Dies gilt auch für Linux-Systeme -- selbst wenn Sie der einzige Benutzer sind.

Viele Aufgaben der Systemverwaltung werden erledigt, nachdem man sich als root eingeloggt hat. Dieser Account (Zugangsberechtigung) hat auf UNIX-Systemen spezielle Rechte -- insbesondere haben die üblichen Dateiberechtigungen und andere Sicherheitsvorkehrungen für root einfach keine Bedeutung. Das heißt, daß Sie als root jede Datei im System verändern können -- unabhängig davon, wer der Eigner ist. Während normale Benutzer keinen Schaden anrichten können (z.B. durch Zerstörung von Dateisystemen oder Manipulationen an den Dateien anderer Benutzer), kennt root keine solchen Einschränkungen.

Warum enthält UNIX überhaupt Vorkehrungen für die Sicherheit des Systems? Der wichtigste Grund ist der, daß Benutzer die Möglichkeit haben sollen zu entscheiden, welcher Zugriff auf ihre eigenen Dateien bestehen soll. Durch das Setzen der Berechtigungsbits (mit dem Befehl chmod ) können Benutzer festlegen, daß bestimmte Dateien von bestimmten anderen (oder auch gar keinen) Benutzern gelesen, beschrieben oder ausgeführt werden dürfen. Das sichert den Schutz und die Integrität der Daten -- Sie wären sicherlich nicht damit einverstanden, daß andere Benutzer Ihre private Mailbox lesen oder hinter Ihrem Rücken den Quellcode eines wichtigen Programms verändern.

Die Sicherheitsmechanismen unter UNIX verhindern auch, daß Benutzer das System beschädigen. Der Zugriff auf viele der Gerätedateien (device files), die den Hardwarekomponenten wie etwa den Festplatten entsprechen, wird vom System eingeschränkt. (Diese Peripheriegeräte werden via /dev angesprochen -- mehr dazu im Abschnitt » Die Gerätedateien « .) Wenn normale Benutzer direkt auf die Festplatten zugreifen könnten, bestünde die Gefahr, daß alle möglichen Arten von Schäden angerichtet würden -- etwa indem der komplette Inhalt einer Festplatte überschrieben wird. Statt dessen zwingt das System normale Benutzer, die Laufwerke über das Dateisystem anzusprechen -- auf diese Weise sorgen die Berechtigungsbits, die wir weiter oben beschrieben haben, für den Schutz der Daten.

Es ist wichtig festzuhalten, daß nicht alle Arten von »Schäden« absichtlich hervorgerufen werden. Die Sicherheitsvorkehrungen dienen in erster Linie dazu, die Benutzer vor unbeabsichtigten Fehlern und Mißverständnissen zu bewahren; ihr Zweck ist es nicht, auf einem System einen Überwachungsstaat zu etablieren. Tatsächlich wird die Sicherheit auf vielen UNIX-Systemen eher nachlässig gehandhabt -- die Systemsicherheit unter UNIX ist so ausgelegt, daß Daten z.B. von Benutzergruppen gemeinsam genutzt werden können, die in einem Projekt zusammenarbeiten. Die Benutzer können auf dem System zu Gruppen zusammengefaßt werden, und die Zugriffsrechte werden dann für die gesamte Gruppe vergeben. So könnte z.B. ein Team von Programmentwicklern schreibenden und lesenden Zugriff auf eine Reihe von Dateien bekommen, während andere Benutzer diese Dateien nicht verändern können. Für Ihre persönlichen Dateien legen Sie selbst fest, wie öffentlich oder privat der Zugriff geregelt sein soll.

Die Sicherheitsmechanismen unter UNIX verhindern auch, daß normale Benutzer bestimmte Aktionen durchführen können; etwa den Aufruf bestimmter Systemroutinen (system calls) aus einem Programm heraus. Es gibt z.B. einen Systemaufruf, der das System zum Stillstand bringt, und der von solchen Programmen wie shutdown ausgeführt wird, wenn das System neu gebootet werden soll (mehr dazu weiter unten in diesem Kapitel). Wenn normale Benutzer die Möglichkeit hätten, in ihren Programmen diese Routine aufzurufen, könnten sie aus Versehen (oder mit Absicht) das System jederzeit anhalten.

Sie werden die Sicherheitsmechanismen von UNIX oft umgehen müssen, um das System zu pflegen oder Updates einzuspielen. Dafür ist der root-Account gedacht. Ein kundiger Systemverwalter kann seine Arbeit erledigen, ohne sich um die üblichen Zugriffsrechte und andere Einschränkungen zu kümmern, weil diese unter dem Account root keine Rolle spielen.

Die übliche Methode, als root einzuloggen, ist der Befehl su . Mittels su können Sie die Identität eines anderen Benutzers annehmen -- etwa so:

su andy

Danach fordert das System Sie auf, das Paßwort für andy einzugeben, und mit dem korrekten Paßwort erlangen Sie die Benutzer-ID von andy. Wenn Sie su ohne einen Namen als Argument aufrufen, erwartet das System das root-Paßwort, um Ihre Identität als root zu verifizieren. Sobald Sie die Arbeit unter dem Account root beendet haben, können Sie wie üblich ausloggen und erlangen Ihre eigene sterbliche Identität wieder.

Warum sollte man eigentlich nicht am normalen Login-Prompt als root einloggen? Wir werden noch sehen, daß das in einigen Fällen durchaus in Ordnung ist, aber meistens ist es besser, den Befehl su zu benutzen, nachdem Sie unter Ihrem eigenen Namen eingeloggt haben. Auf einem System mit vielen Benutzern erzeugt die Eingabe von su einen Eintrag wie:

Nov  1 19:28:50 loomer su: mdw on /dev/ttyp1

in den Logdateien wie z.B. /var/adm/messages (wir kommen weiter unten noch auf diese Logdateien zurück). Dieser Eintrag besagt, daß der Benutzer mdw erfolgreich einen su -Befehl als root abgesetzt hat. Wenn Sie dagegen direkt als root einloggen, wird kein solcher Eintrag in den Logdateien erzeugt; es ließe sich also nicht nachvollziehen, welcher Benutzer mit dem Root-Account herumgespielt hat. Auf einem System mit mehreren Verwaltern ist es oft wichtig, herauszufinden, wer wann den Befehl su eingegeben hat.

Man kann den Root-Account als eine Art Zauberstab betrachten -- ein ebenso nützliches wie potentiell gefährliches Werkzeug. Wenn Sie mit diesem Zauberstab in der Hand die magischen Formeln anwenden, können Sie damit unendlich viel Schaden auf Ihrem System anrichten. Ein Beispiel: Die acht Zeichen rm -rf / löschen jede einzelne Datei auf Ihrem System, wenn Sie als root ausgeführt werden. Scheint Ihnen das zu weit hergeholt? Das ist es nicht. Vielleicht wollen Sie ein altes Verzeichnis namens /usr/src/oldp löschen, tippen aus Versehen eine Leerstelle nach dem ersten Schrägstrich, und erhalten damit:

rm -rf / usr/src/oldp

Ein anderer häufiger Fehler besteht darin, daß die Argumente z.B. beim Befehl dd durcheinander geraten. Mit diesem Befehl werden oft größere Datenblöcke von einer Stelle zu einer anderen kopiert. Nehmen wir an, Sie wollen die ersten 1024 Bytes der Gerätedatei /dev/hda (hier stehen Partititionstabelle und Boot-Record dieser Festplatte) mit dem Befehl:

dd if=/dev/hda of=/tmp/stuff bs=1k count=1

nach /tmp/stuff kopieren. Wenn Sie in diesem Befehl nur if und of vertauschen, passiert etwas ganz anderes: Der Inhalt von /tmp/stuff wird an den Anfang von /dev/hda geschrieben. Falls /tmp/stuff Datenmüll oder inkorrekte Daten enthält, haben Sie soeben Ihre Partitionstabelle und eventuell einen Superblock des Dateisystems zerstört. Willkommen in der wunderbaren Welt der Systemverwaltung!

Was wir sagen wollen ist folgendes: Bevor Sie als root einen Befehl ausführen, sollten sie erst einmal Ihre Hände zurückhalten. Starren Sie zunächst eine Minute lang auf den Befehl, vergewissern Sie sich, daß es ein sinnvoller Befehl ist, und drücken Sie erst dann ENTER. Falls Sie sich bei den Argumenten oder der Syntax nicht völlig sicher sind, sollten Sie zuerst in den Manual-Pages nachlesen oder den Befehl an einer sicheren Stelle ausprobieren, bevor Sie ihn abschicken. Sonst werden Sie solche Lektionen auf die harte Tour lernen -- Fehler, die Sie als root begehen, können fatale Auswirkungen haben.

Auf vielen Systemen unterscheiden sich die Prompts für Root und die übrigen Benutzer -- der klassische Root-Prompt enthält ein Doppelkreuz (#) während die Prompts für die anderen Benutzer entweder ein $ oder ein % enthalten. (Es liegt natürlich bei Ihnen, ob Sie dieser Konvention folgen wollen oder nicht, aber auf vielen UNIX-Systemen wird dies so gehandhabt.) Obwohl der Prompt Sie daran erinnern soll, daß Sie gerade den Zauberstab schwingen, ist es nicht ungewöhnlich, daß Benutzer dies vergessen oder auch versehentlich einen Befehl im falschen Fenster oder auf der falschen Konsole ausführen lassen.

Wie alle mächtigen Werkzeuge kann auch der Root-Account mißbraucht werden. Es ist für Sie als Systemverwalter wichtig, daß Sie das Root-Paßwort geheimhalten. Wenn Sie es überhaupt jemals bekanntgeben dann nur an solche Benutzer, denen Sie vertrauen (oder die für ihre Handlungen verantwortlich gemacht werden können). Wenn Sie der einzige Benutzer Ihres Systems sind, trifft dies natürlich nicht zu -- es sei denn, Ihr System ist in ein Netzwerk eingebunden oder kann über eine Wählleitung erreicht werden.

Der größte Vorteil einer alleinigen Nutzung des Root-Accounts liegt aber nicht so sehr darin, daß die Möglichkeiten des Mißbrauchs minimiert werden (obwohl das sicherlich eine Folge davon ist). Wichtiger noch ist die Tatsache, daß Sie als einziger Nutzer des Root-Accounts die gesamte Systemkonfiguration kennen. Wenn außer Ihnen jemand die Möglichkeit hätte, z.B. wichtige Systemdateien zu verändern (die wir in diesem Kapitel noch besprechen werden), dann könnte hinter Ihrem Rücken die Konfiguration des Systems geändert werden. Sie wären dann nicht mehr auf dem aktuellen Wissensstand was die Arbeitsweise des Systems angeht. Wenn es nur einen Systemverwalter gibt, der für die Konfiguration des Systems verantwortlich ist, hat man immer die Gewähr, daß eine Person wirklich weiß, was auf dem System los ist.

Außerdem wird die Wahrscheinlichkeit größer, daß irgendwann jemand unter dem Root-Account einen Fehler macht, wenn auch andere Benutzer das Root-Paßwort kennen. Auch wenn Sie allen Leuten vertrauen können, die das Root-Paßwort benutzen, kann doch jedem einmal ein Fehler unterlaufen. Wenn Sie der alleinige Systemverwalter sind, brauchen Sie nur sich selbst die Schuld zu geben, wenn Ihnen als root der unvermeidbare menschliche Fehler passiert.

Nachdem wir das gesagt haben, wollen wir uns mit der eigentlichen Systemverwaltung unter Linux beschäftigen. Legen Sie den Sicherheitsgurt an.


Inhaltsverzeichnis Vorherige Abschnitt Nächste Abschnitt