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.
Wir haben bereits darauf hingewiesen, daß Sie in der Regel mit den Sicherheitsvorkehrungen auskommen, die das System anbietet. Allerdings gibt es auch Ausnahmen, insbesondere für Systemverwalter. Ein einfaches Beispiel: Nehmen wir an, daß Sie für einen neuen Benutzer unterhalb von /home ein Verzeichnis anlegen. Sie müssen diese Aufgabe als root erledigen, aber später den Benutzer zum Eigner des Verzeichnisses machen. Wenn Sie das nicht tun, wird der Benutzer nicht in diesem Verzeichnis arbeiten können! (Glücklicherweise sorgt der Befehl adduser , den wir im Abschnitt » Die Accounts einrichten « in Kapitel 4 besprechen, automatisch für die richtige Eignerschaft.)
In ähnlicher Weise haben bestimmte Utilities wie UUCP und News ihre eigenen Benutzer. Niemand wird jemals als uucp oder news einloggen, aber diese Benutzer und Gruppen müssen auf dem System vorhanden sein, damit die Utilities sicher funktionieren. Im allgemeinen besteht der letzte Schritt bei der Installation darin, daß man Eigner, Gruppe und Berechtigungen so anpaßt, wie es die Dokumentation vorgibt.
Mit dem Befehl chown ändern Sie die Eignerschaft einer Datei und mit chgrp die Gruppe. Nachdem Sie also z.B. die Software sampsoft installiert haben, können Sie mit folgenden Befehlen sowohl den Eigner als auch die Gruppe auf bin ändern:
# chown bin sampsoft # chgrp bin sampsoft
Diese Befehle funktionieren, weil Sie die Software als root installiert haben; als solcher können Sie chown und chgrp jederzeit auf jede Datei anwenden.
Wenn Sie allerdings nicht root sind, können Sie nichts ausrichten: Sie
können weder den Eigner noch die Gruppe ändern. Sie könnten
auch keine Berechtigungen vergeben, die Dateien in ein anderes Verzeichnis
kopieren oder irgend etwas anderes tun.
Die Syntax bei der Änderung der Berechtigungen ist komplizierter. Man
nennt die Berechtigungen auch den »Modus« einer Datei, und diesen
ändern Sie mit dem Befehl
chmod
. Lassen Sie uns diesen Befehl anhand eines einfachen Beispiels erkunden --
nehmen wir an, daß Sie in Perl oder Tcl ein nettes kleines Programm
namens
header
geschrieben haben, das Sie anschließend ausführen wollen.
Das Pluszeichen bedeutet: »füge eine Berechtigung hinzu«, und
das x zeigt an, welche Berechtigung gemeint ist.
Wenn Sie jemandem die Ausführberechtigung entziehen möchten, setzen
Sie statt des Plus- ein Minuszeichen ein.
Der eben gezeigte Befehl vergibt die Berechtigung auf allen Ebenen -- an den
Eigner, die Gruppe und Sonstige. Lassen Sie uns annehmen, daß Sie
insgeheim ein Sammler von Software sind, der seine Programme für sich
behalten möchte. (Nein, das wäre zu hart; wir wollen statt dessen
annehmen, daß Ihr Skript noch nicht einwandfrei funktioniert und
daß Sie andere Leute vor Schaden bewahren möchten, bis das Skript
fehlerfrei ist.) Mit folgendem Befehl können Sie die
Ausführberechtigung nur für sich selbst vergeben:
Sie können auch mehrere Berechtigungen gleichzeitig erteilen:
Es gibt noch die eine oder andere Abkürzung, die Sie in der Man-Page zu
chmod
nachlesen können, falls Sie jemanden beeindrucken möchten, der Ihnen
über die Schulter sieht. Allerdings bleibt die Funktionalität des
Befehls auf das beschränkt, was wir hier vorgestellt haben.
Obwohl die Syntax zur Angabe des Dateimodus ziemlich obskur ist, gibt es noch
eine andere, kompliziertere Syntax. Aus verschiedenen Gründen müssen
wir sie hier trotzdem beschreiben. Erstens gibt es Situationen, in denen die
gerade vorgestellte Syntax, genannt »symbolischer Modus«, nicht
ausreicht. Zweitens benutzen die Leute oft die andere Syntax, genannt
»absoluter Modus«, in ihrer Dokumentation. Außerdem
könnte es ja passieren, daß Sie die absolute Schreibweise einfach
bequemer finden.
Um den absoluten Modus zu verstehen, müssen Sie sich auf die Bitebene und
die oktale Schreibweise einlassen. Aber keine Bange -- so schwierig wird das
nicht. Der typische Modus wird durch drei Zeichen dargestellt, die den drei
Benutzerebenen entsprechen (Eigner, Gruppe und Sonstige). Diese Ebenen sind in
Abbildung 3--3.
dargestellt. Innerhalb jeder Ebene bezeichnen drei Bits die Berechtigung zum
Lesen, Schreiben und Ausführen.
Nehmen wir an, daß Sie sich selbst die Leseberechtigung und niemandem
sonst irgendwelche Rechte erteilen wollen. Sie möchten also nur das Bit
ansprechen, das mit der Nummer 400 bezeichnet ist. Der
chmod
-Befehl würde dann so aussehen:
Um jedermann die Leseberechtigung zu geben, wählen Sie das entsprechende
Bit für alle Benutzerebenen: 400 für den Eigner, 40 für die
Gruppe und 4 für Sonstige. Der Befehl lautet dann:
Das entspricht dem Modus +r -- abgesehen davon, daß Sie mit diesem
Befehl gleichzeitig alle Berechtigungen zum Schreiben und Ausführen
aufheben. (Um es genau zu sagen: Es entspricht dem Modus =r, den wir weiter
oben nicht erwähnt haben. Das Gleichheitszeichen bedeutet: »Vergib
diese Berechtigung und hebe alle anderen Rechte auf«.)
Wenn Sie allen Benutzern die Lese- und Ausführberechtigung zuweisen
wollen, müssen Sie die Lese- und Ausführbits addieren. Ein Beispiel:
400 plus 100 ist 500. Der komplette Befehl lautet also:
und das entspricht dem Modus =rx. Wenn jemand vollen Zugriff erhalten soll,
steht an der entsprechenden Stelle eine 7 -- nämlich 4 + 2 + 1.
Einen Trick wollen wir Ihnen noch verraten, nämlich wie Sie den Modus
voreinstellen können, der jeder Datei zugeordnet wird, die Sie erzeugen
(mit einem Texteditor, der Umleitung > usw.). Führen Sie entweder den
Befehl
umask
aus oder fügen Sie ihn in die Startdatei Ihrer Shell ein. Diese Datei
heißt wahrscheinlich
.bashrc
,
.cshrc
oder so ähnlich -- je nachdem, mit welcher Shell Sie arbeiten. (Wir
werden die Shells im nächsten Abschnitt besprechen.)
Der Befehl
umask
bekommt einen Parameter mit auf den Weg, so wie
chmod
den absoluten Modus mitbekommt. Allerdings ist die Bedeutung der Bits gerade
umgekehrt. Sie müssen für Eigner, Gruppe und Sonstige festlegen,
welche Berechtigungen Sie vergeben wollen und dann jede einzelne Ziffer von 7
subtrahieren. Das Ergebnis ist eine dreistellige Maske.
Nehmen wir an, daß Sie sich selbst alle Rechte zugestehen wollen (7),
die Gruppe soll Lese- und Ausführberechtigung haben (5), und Sonstige
erhalten gar keinen Zugriff (0). Ziehen Sie diese Werte von 7 ab, und Sie
erhalten 0 für sich selbst, 2 für die Gruppe und 7 für
Sonstige. Der Befehl in Ihrer Startdatei muß also lauten:
Eine merkwürdige Vorgehensweise, aber sie funktioniert. Der Befehl
chmod
berücksichtigt die Maske, wenn er Ihren Modus interpretiert. Ein
Beispiel: Wenn Sie für eine Datei den Modus +x vergeben, wird
chmod
Ihnen und der Gruppe die Ausführberechtigung zuteilen, aber Sonstige
werden davon ausgeschlossen, weil die Maske für diese Benutzer keine
Ausführberechtigung erlaubt.
$ chmod +x header
$ chmod -x header
$ chmod u+x header
Alle Angaben vor dem Pluszeichen bezeichnen die Benutzerebene, auf der Sie
Berechtigungen vergeben, die Angaben hinter dem Pluszeichen geben die Art der
Berechtigung an. Mit g vergeben Sie Rechte an die Gruppe und mit o an
Sonstige. Wenn Sie die Ausführberechtigung an sich selbst und die Gruppe
erteilen wollen, geben Sie ein:
$ chmod ug+x header
$ chmod ug+rwx header
Abbildung 3-3.
Die Bits im absoluten Modus
$ chmod 400 header
$ chmod 444 header
$ chmod 555 header
umask 027
Vorherige
Abschnitt
Nächste Abschnitt