HOWTO zur "Rechte-Anonmalie" unter UNIX/Linux
(C) 2006-2007 T.Birnthaler/H.Gottschalk <howtos(at)ostc.de>
OSTC GmbH, www.ostc.de
$Id: unix-rights-anomaly-HOWTO.txt,v 1.12 2009-03-25 09:24:00 tsbirn Exp $
Dieses Dokument beschreibt die "Rechte-Anomalie" auf UNIX/Linux-Systemen. Damit
ist gemeint, dass einige der auf einer Datei erlaubten Operationen von den
Rechten des Verzeichnisses dieser Datei und einige der Operatione von den
Rechten der Datei selbst abhängen.
1) Einführung
2) Notwendige Rechte für bestimmte Tätigkeiten
Die KOMBINATION der Rechte einer Datei und des Verzeichnisses, in dem sie
steht, entscheidet darüber, welche Operationen mit der Datei erlaubt sind:
* DATEIRECHTE entscheiden über die Berechtigung von Operationen
am DATEI-INHALT (z.B. lesen, kopieren, ändern, als Programm aufrufen).
* VERZEICHNISRECHTE entscheiden über die Berechtigung von Operationen an den
in der Verzeichnis-Liste stehenden DATEI-NAMEN (z.B. erstellen, umbenennen,
verschieben, löschen).
Am Beispiel einer Datei in einem Verzeichnis wird hier der Versuch unternommen,
die jeweils erlaubten Dateioperationen in 2 verschiedenen Fällen A + B
zu beschreiben:
(A) (B)
#=============#
rwx | Verzeichnis | r-x
#======#======#
|
+------+------+
r-- | Datei | rw-
+-------------+
| Datei-Operation | Bezug | (A) | (B) |
+-----------------------------+------------+-------------+------------+
| Lesen/Öffnen (more) | Inhalt | ja | ja |
| Kopieren (cp) | Inhalt | ja | nein(*) |
| Überschreiben/Speichern (>) | Inhalt | nein | ja |
| Editieren (vi) | Inhalt | nein | ja |
| (Ändern=Lesen + Schreiben) | | | |
| Löschen (A: >) | Inhalt | nein | ja |
+-----------------------------+------------+-------------+------------+
| Berühren (touch) | Name/Inode | ja | ja |
| Hard-Link erstellen (ln) | Name/Inode | ja | nein(*) |
| Soft-Link erstellen (ln -s) | Name | ja | nein(*) |
| Erzeugen (touch) | Name | ja | nein |
| Umbenennen (mv) | Name | ja | nein |
| Verschieben (mv) | Name | ja | nein |
| Löschen (B: rm) | Name | ja | nein |
+-----------------------------+------------+-------------+------------+
| Ausführen (./Datei) | Rechte | nein | nein |
+-----------------------------+------------+-------------+------------+
(*) "ja", wenn das Zielverzeichnis ein anderes Verzeichnis ist
(in dem Schreibrecht gesetzt ist!)
Ist ein Verzeichnis nicht lesbar, dann müssen die Namen für den Zugriff auf
Dateien bekannt sein (Auflisten des Verzeichnisinhalts ist nicht möglich)!
| | Kommando | Verz. | Datei |
+------------------------------+----------+-------+-------+
| In Verzeichnis wechseln | cd | - - x | - - - |
| Verzeichnis-Inhalt auflisten | ls | r - x | - - - |
| Datei-Info auflisten (Inode) | ls -l | r - x | - - - |
+------------------------------+----------+-------+-------+
| Datei berühren (Inode) | touch | - - x | - - - |
| Datei lesen/öffnen | more | - - x | r - - |
| Datei schreiben/speichern | > DATEI | - - x | - w - |
| Datei editieren (ändern) | vi | - - x | r w - |
| Datei kopieren (aus Verz.) | cp | - - x | r - - |
+------------------------------+----------+-------+-------+
| Datei kopieren (in Verz.) | cp | - w x | r - - |
| Datei erzeugen | > DATEI | - w x | - - - |
| Datei umbenennen | mv | - w x | - - - |
| Datei verschieben | mv | - w x | - - - |
| Datei löschen | rm | - w x | - - - |
+------------------------------+----------+-------+-------+
| Binärprogr. direkt ausführen | DATEI | - - x | - - x |
| Shellskript direkt ausführen | DATEI | - - x | r - x |
| Datei als Skript ausführen | sh DATEI | - - x | r - - |
| Hardlink auf Datei anlegen | ln | - w x | - - - |
| Softlink auf Datei anlegen | ln -s | - w - | - - - |
+------------------------------+----------+-------+-------+
| Besitzer ändern | chown | Nur root erl. |
| Besitzer-Gruppe ändern | chgrp | Nur Besitzer |
| Rechte ändern | chmod | Nur Besitzer |
| Attribute ändern (Datum) | touch | Nur Besitzer |
+------------------------------+----------+---------------+
Ist ein Verzeichnis nicht lesbar, dann müssen die Namen für den Zugriff auf
Dateien bekannt sein (Auflisten des Verzeichnisinhalts ist nicht möglich)!