![]() |
|
Linux - Wegweiser zur Installation & Konfiguration, 3. AuflageOnline-VersionBitte denken Sie daran: Sie dürfen zwar die Online-Version ausdrucken, aber diesen Druck nicht fotokopieren oder verkaufen. Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen. Wünschen Sie mehr Informationen zu der gedruckten Version des Buches Linux - Wegweiser zur Installation & Konfiguration oder wollen Sie es bestellen, dann klicken Sie bitte hier.
|
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 (zum Beispiel 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, geschrieben 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« in Kapitel 6, Verwalten von Dateisystemen, Swap-Bereichen und Geräten.) 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 zum Beispiel von Benutzergruppen, die zusammen an einem Projekt arbeiten, gemeinsam genutzt werden können. 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 zum Beispiel 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 zum Beispiel 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 später 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:
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. Der Systemverwalter wird von Zeit zu Zeit die Identität eines normalen Benutzers annehmen wollen, um ein Problem mit den Dateien dieses Benutzers oder ähnliches zu beheben. 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 nicht einfach 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
in den Logdateien, wie etwa in /var/adm/messages (wir kommen später 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, geben aus Versehen eine Leerstelle nach dem ersten Schrägstrich ein und erhalten damit:
Ein anderer häufiger Fehler besteht darin, daß die Argumente zum Beispiel beim Befehl dd durcheinandergeraten. 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 steht der Boot-Record und die Partitionstabelle dieser Festplatte) mit dem Befehl
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 sich erst einmal in Zurückhaltung üben. 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 Manpages nachlesen oder den Befehl in einer sicheren Umgebung 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, zum Beispiel wichtige Systemdateien zu verändern (was 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 vor sich geht.
Außerdem wird - wenn auch andere Benutzer das Root-Paßwort kennen - die Wahrscheinlichkeit größer, daß irgendwann jemand unter dem Root-Account einen Fehler macht. 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 Ihren Sicherheitsgurt an.
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Weitere Informationen zum Linux - Wegweiser zur Installation & Konfiguration
Weitere Online-Bücher & Probekapitel finden Sie in unserem Online Book Center
© 2000, O'Reilly Verlag