|
|
|
JürgenSchilling EDV-Service | Fotografie | Fotoarbeiten |
||
|
|
chgrp Analoges gilt für chgrp (change group). Eine Datei gehört nicht nur einem Benutzer, sondern auch einer Gruppe. Auf diese Weise kann einer beschränkten Gruppe von Personen ein Recht auf die Datei zugewiesen werden, die die anderen Benutzer nicht haben. Die Group-ID, die die Datei hält, kann mit dem Befehl chgrp geändert werden. Berechtigt ist ein Mitglied der Gruppe oder root.
Man kann auch Benutzer und Gruppe bei einigen Varianten von chmod mit einem Befehl setzen:
Berechtigungen: chmod Jede Datei hat Informationen darüber, ob sie gelesen, geschrieben oder ausgeführt werden kann. Diese Rechte existieren jeweils für Eigentümer, Gruppe und alle restlichen Benutzer. Durch den Befehl ls -l kann man die Rechte von Dateien als eine Gruppe von 9 Buchstaben oder Minuszeichen sehen.
Die Bedeutung der Buchstaben bedeutet bei Dateien:
Die Ausgabe eines ls -l zeigt die Rechte ab dem zweiten Zeichen in der oben genannten Reihenfolge für Benutzer, die Gruppe und den Rest der Welt.
Ein paar Dateien sollen herausgegriffen werden. Die Datei a.out erlaubt dem Besitzer, aber sonst niemandem, zu schreiben, zu lesen und auszuführen. Dagegen darf die Datei copy zusätzlich sowohl von der Gruppe users als auch vom Rest der Welt gelesen und gestartet werden, aber nicht geschrieben. Die Datei copy.c dagegen ist ein Quelltext mit ganz typischen Rechten für Datendateien. Der Besitzer darf sie lesen und schreiben, alle anderen nur lesen. Die Rechte werden als Oktalzahlen dargestellt. Oktalzahlen sind eine Sonderform der dualen Zahlendarstellung, in der 3 Bit eine Ziffer ergeben. Mit 3 Bit lassen sich die Zahlen von 0 bis 7 darstellen. Das heißt, daß jeweils eine rwx Gruppe zu einer Zahl umgebildet wird. So ergibt sich:
Eine Besonderheit ergibt sich für Verzeichnisse. Hier bedeutet das Fehlen(!) einer Berechtigung:
Auf den ersten Blick erscheinen die Unterschiede zwischen den Datei- und den Verzeichnisrechten kompliziert. Wenn man sich ein Verzeichnis aber als eine Datei vorstellt, in der die Dateinamen abgestellt sind, ist der Zusammenhang mit den Schreib- und Leserechten logisch. Wenn man das Verzeichnis nicht lesen kann, kann man auch die Dateinamen nicht anzeigen. Darf das Verzeichnis nicht geschrieben werden, kann man auch keine Einträge hinzufügen oder löschen oder umbenennen. Die Rechte von Dateien oder Verzeichnissen kann man mit dem Kommando chmod (change mode) verändert werden. Beispiel:
Mit diesem Befehl erhält die Datei meinskript die Rechte rwxr-xr--. Das bedeutet, dass der Eigentümer die Datei lesen, schreiben und ausführen darf. Die Mitglieder der besitzenden Gruppe dürfen die Datei einsehen und starten, der Rest der Welt darf die Datei nur lesen. Auftritt unter fremder Lizenz: User-ID Bit Bei Programmen kann beim chmod vor die drei Ziffern eine 4 gestellt werden. Das bewirkt, dass das Programm unter der Benutzerkennung des Eigentümers ausgeführt wird, egal, wer das Programm gestartet hat. Man spricht vom Set-User-ID-Bit oder vom SUID. Dies wird verwendet, wenn man auf bestimmte Daten nur mit dem entsprechenden Programm zugegriffen werden soll. Die Daten können auf 600 gesetzt werden, sodass sie nur der Eigner verändern darf. Ein Programm, dass das User-ID-Bit gesetzt hat, darf niemals für jemand Fremdes beschreibbar sein. Beispiel für das Setzen des User-ID Bits:
Die Datei myprog würde beim ls -l folgende Rechte haben:
Statt dem x steht also ein s bei den Benutzerrechten.
Das Verändern eines Rechtes wird durch einen Ausdruck herbeigeführt, der sich aus den in der Grafik gezeigten drei Balken zusammensetzt. Das Gleichheitszeichen bewirkt ein Setzen, das Minuszeichen ein Entziehen und das Pluszeichen das Hinzufügen eines Rechtes. Die Rechte sind mit r, w, und x wenig überraschend. Das s ist das User-ID Bit. Beispiele für die Ausdrücke, die statt der Oktalzahl beim chmod verwendet werden können:
Der Nachteil der Buchstabenschreibweise ist, daß manche Kombination mit zwei Befehlen gegeben werden muß. Soll eine Datei so gesetzt werden, daß der Besitzer lesen und schreiben, alle anderen aber nur lesen sollen, dann ist 644 natürlich kürzer als a=r und im zweiten Schritt u+w. Dafür ist es mit Ziffern recht umständlich, alle Ausführungsrechte der Dateien im aktuellen Verzeichnis zu entziehen und dabei die anderen Rechte nicht zu verändern. Maske für die Rechte neuer Dateien: umask umask dient zum Einschränken der Benutzerrechte. Defaultmäßig würde Linux Dateien mit den Rechten rw-rw-rw, bzw. Verzeichnisse mit den rechten rwxrwxrwx, erstellen. Also mit den Oktal-Werten 666 für Dateien bzw. 777 für Verzeichnisse. Der Wert der umask schränkt diese Rechte ein, indem dieser Wert beim Erstellen der Datei bzw. des Verzeichnisses vom Defaultwert abgezogen wird. Wobei man beachten muß, daß keine Ziffer in der umask die 7 überschreiten darf. Zudem subtrahiert man immer nur die Werte des zugehörigen Satzes. Also bei einer umask von 27 • subtrahiert man die 7 von den Rechten von dem Rest der Welt und • die 2 von den Rechten der Besitzergruppe Es kann immer nur abgezogen werden. Ein erhöhen der Rechte ist mit umask nicht möglich. Die Defaultrechte für Dateien sind 666, für Verzeichnisse 777. Selbst wenn die Rechte, z.B. von dem Rest der Welt kleiner 7 sind, macht man keinen Übertrag zur Besitzergruppe. Beispiel: umask 27, Rechte für eine Datei Datei, Defaultrechte 666 umask - 27 Ergebnis! 640 Beispiel: umask 22, Erstellen eines Verzeichnisses: Verzeichnis Defaultrechte 777 umask 22 effektive Rechte 755 d.h. der Benutzergruppe und dem Rest der Welt wurden die Schreibrechte entzogen. Beispiel 2: umask 27, Erstellen einer Datei: Hier schlage ich einen anderen Werte der Berechnung ein. Der Defaultwert von 666 heißt nichts anderes, als daß das Recht zum Ausführen der Datei nicht vergeben wird. Dies entspricht einem oktalen Wert von 111. Diesen Wert ziehe ich später ab, jedoch nur, wenn bei dem entsprechenden Satz noch etwas abzuziehen ist. Weniger als 0 geht eben nicht.
11.09.2009 J.Schilling
|
|
|
| | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||