Galileo Computing < openbook >
Galileo Computing - Bücher zur Programmierung und Softwareentwicklung
Galileo Computing - Bücher zur Programmierung und Softwareentwicklung


'Wie werde ich Unix-Guru' als Buch bestellen
A. Willemer
Wie werde ich UNIX-Guru
I  ANWENDUNG
Know-How für Unix/Linux-User: Einführung, Shell, Befehle, Hilfe, Arbeit mit Dateien, Editoren, Reguläre Ausdrücke, nützliche Tools, Hardware.

II  ADMINISTRATION
Tools, Systemstart, Benutzer verwalten, Hardware konfigurieren, Software installieren, Datensicherung, Tuning, Kernel

III  NETZWERK
Client/Server Systeme, TCP/IP, Routing, IPv6, Internet-Dienste, DHCP, Webserver, Firewalls

IV  DAS X-WINDOW SYSTEM
Die grafische Oberfläche von UNIX einrichten und nutzen

V  PROGRAMMIERUNG VON SHELLSKRIPTEN
Automatisieren von Tasks durch Shell-Skripte.

VI  PERL
Interpreter, Syntax, Variablen, Steuerung, Funktionen, UNIX-Aufrufe, GUIs mit Tk

VII  PROGRAMMIERWERKZEUGE
C-Compiler, Analyse-Tools, CVS, yacc, diff

VIII  UNIX-SYSTEMAUFRUFE
UNIX-Befehle in eigenen Programmen nutzen

IX  LITERATUR
Weiterführende Literatur zu UNIX und LINUX

 
Galileo Computing / <openbook> / "Wie werde ich UNIX-Guru ?"
« Eigentümer wechseln: chown und Dateieigenschaften Neuer Zeitstempel: touch »

Unterabschnitte
  • Auftritt unter fremder Lizenz: User-ID-Bit
  • Buchstaben statt Zahlen
  • Maske für die Rechte neuer Dateien: umask

Berechtigungen: chmod

Jede Datei hat Informationen darüber, ob sie gelesen, geschrieben oder ausgeführt werden kann. Diese Rechte existieren jeweils für den Eigentümer, die Gruppe und alle restlichen Benutzer. Durch den Befehl ls -l kann man die Rechte von Dateien als eine Gruppe von neun Buchstaben oder Minuszeichen sehen.


[gpTabellestar831]

Die Buchstaben bedeuten bei Dateien:

[Die Rechte für Dateien]C|L Recht & Bedeutung für Dateien
x & Die Datei ist ausführbar, also ein Programm oder ein Skript.
r & Die Datei darf gelesen werden.
w & Die Datei darf geschrieben werden.

Die Ausgabe eines ls -l zeigt die Rechte ab dem zweiten Zeichen in der oben genannten Reihenfolge für den Benutzer, die Gruppe und den Rest der Welt.

-rwx---    1 arnold   users       13654 Jan 17 04:41 a.out
drwxr-x--    2 arnold   users        4096 Mär  6 23:35 awk
-rwxr-xr-x    1 arnold   users       13856 Feb  8 10:48 copy
-rw-r-r-    1 arnold   users         175 Feb  8 10:48 copy.c
drwxr-xr-x    2 arnold   users        4096 Jan 13 12:37 dir
-rw-rw-r-    1 arnold   users          98 Apr 13 13:55 doppel.c
-rwxr-xr-x    1 arnold   users       13516 Feb  8 21:25 env
-rw-r-r-    1 arnold   users         165 Feb  8 21:25 env.c
drwx---    2 arnold   users        4096 Feb 21 14:13 ipc
drwxr-xr-x    2 arnold   users        4096 Feb 13 13:51 make
-rwxr-xr-x    1 arnold   users       13489 Apr 11 21:34 moin
-rw-r-r-    1 arnold   users          60 Apr 13 13:55 moin.c

Ein paar Dateien sollen herausgegriffen werden. Die Datei a.out erlaubt dem Besitzer, aber sonst niemandem, sie 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, aber nicht beschrieben werden. Die Datei copy.c dagegen ist ein Quelltext mit ganz typischen Rechten für Datendateien. Der Besitzer darf sie lesen und schreiben, alle anderen dürfen sie nur lesen.

Die Rechte werden als Oktalzahlen 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. dargestellt. Das heißt, dass jeweils eine rwx-Gruppe auf eine Ziffer abgebildet wird. So ergibt sich:

[Oktalkodierung der Dateizugriffsrechte]CCC|C|L r & w & x & Kennzahl & Bedeutung
0 & 0 & 0 & 0 & keine Rechte
0 & 0 & 1 & 1 & Ausführen, aber weder lesen noch schreiben
0 & 1 & 0 & 2 & Nur Schreibrecht
0 & 1 & 1 & 3 & Schreib- und Ausführungsrecht, nicht lesen
1 & 0 & 0 & 4 & Nur Leserecht
1 & 0 & 1 & 5 & Lese- und Auführungsrecht
1 & 1 & 0 & 6 & Lese- und Schreibrecht, kein Ausführungsrecht
1 & 1 & 1 & 7 & Lese-, Schreib- und Ausführungsrecht

Eine Besonderheit ergibt sich für Verzeichnisse. Hier bedeutet das Fehlen(!) einer Berechtigung:

[Die Rechte für Verzeichnisse]C|L Recht & Bedeutung für Verzeichnisse
x & In dieses Verzeichnis darf nicht gewechselt werden.
r & Die Dateinamen des Verzeichnisses können nicht gelesen werden.
w & Es darf keine Datei gelöscht, umbenannt oder hinzugefügt werden.

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 abgelegt 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 können mit dem Kommando chmod (change mode) verändert werden. Beispiel:

chmod 754 meinskript

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 ProgrammDas funktioniert nicht bei Skripten, da diese von dem jeweiligen Interpreter »gelesen« werden und nicht selbst zur Ausführung kommen. 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. Dieses wird verwendet, wenn auf bestimmte Daten nur mit dem entsprechenden Programm zugegriffen werden soll. Die Zugriffsrechte der Daten können auf 600 gesetzt werden, sodass sie nur der Eigner verändern darf. Ein Programm, das das User-ID-Bit gesetzt hat, darf niemals für jemand Fremdes beschreibbar sein. Herauszufinden, warum das so ist, ist eine Übungsaufgabe für den interessierten Leser. Beispiel für das Setzen des User-ID-Bits:

chmod 4755 myprog

Die Datei myprog würde durch den Befehl ls -l folgendermaßen angezeigt werden:

-rwsr-xr-x   1 arnold   users        0 Dez  7 00:10 myprog

Statt dem x steht also ein s bei den Benutzerrechten.

Buchstaben statt Zahlen

Wem das Rechnen in Dualzahlen gar nicht liegt, der hat auch die Möglichkeit, chmod mit Buchstaben zu steuern. In Form einer Zuweisung wird auf der linken Seite des Operators die Zielgruppe genannt. Auf der rechten Seite stehen die Rechte. Als Zielgruppe gibt es den Eigentümer (u für user), die Gruppe (g) und alle übrigen (o für others). Mit einem a (a für alle) oder durch Weglassen der Zielgruppe kann man alle Zielgruppen auf einmal ansprechen.


[gpAbbildungstar879]

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. Dass die Rechte mit r, w, und x vergeben werden, ist 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, finden Sie in der folgenden Tabelle:

[Beispiele für chmod-Optionen]L|L Term & Bedeutung
a=r & Alle Anwender dürfen nur lesen.
u+w & Der Besitzer erhält zusätzlich Schreibrecht.
o-r & Der »Welt« wird das Leserecht entzogen.
go=rx & Die Gruppe und die »Welt« erhalten das Lese- und das Ausführungsrecht.

Der Nachteil der Buchstabenschreibweise ist, dass manche Kombination mit zwei Befehlen gegeben werden muss. Soll eine Datei so gesetzt werden, dass der Besitzer lesen und schreiben, alle anderen aber nur lesen sollen, dann ist 644 natürlich kürzer, als zuerst a=r und im zweiten Schritt u+w zu schreiben. 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

Mit dem Befehl umask wird festgelegt, welche Rechte beim Anlegen von Dateien nicht gesetzt werden dürfen. Normalerweise gibt ein Programm beim Anlegen einer Datei an, welche Rechte die Datei haben soll. Diese Anforderung wird durch den Wert von umask gefiltert. Im Allgemeinen ist dieser Wert 022 und braucht nur in den seltensten Fällen geändert zu werden. Der Wert 022 bedeutet, dass beim Erstellen von Dateien für die Gruppe und für den Rest kein Schreibrecht angelegt wird. Der Befehl umask ohne Parameter zeigt den geltenden Wert. Wird ein Parameter angegeben, wird die Maske entsprechend geändert.

umask 002

Mit diesem Befehl wird verhindert, dass neu erzeugte Dateien vom Rest der Benutzer verändert werden. Der Besitzer und die Gruppe erhalten dadurch das Schreibrecht.



« Eigentümer wechseln: chown und | Dateieigenschaften | Neuer Zeitstempel: touch »
 
 Zum Katalog
Zum Katalog
Wie werde ich UNIX-Guru?
bestellen
 Ihre Meinung?
Wie hat Ihnen das <openbook> gefallen?
Ihre Meinung

 UNIX/Linux

PHP 4-Workshop

Einstieg in Python

Perl fürs Web

MySQL 4

GNOME 2.0
 Empfehlung

Einstieg in XML
 Shopping
Versandkostenfrei bestellen in Deutschland und Österreich
Info

 MyGalileo
Der Service für registrierte Leser:
Zu MyGalileo
Info



Copyright © Galileo Press GmbH 2003
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das <openbook> denselben Bestimmungen wie die gebundene Ausgabe: 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.
[Galileo Computing]

Galileo Press GmbH, Gartenstraße 24, 53229 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, info@galileo-press.de