HOWTO zur "Rechte-Anomalie" unter UNIX/Linux
(C) 2006-2024 T.Birnthaler/H.Gottschalk <howtos(at)ostc.de>
OSTC Open Source Training and Consulting GmbH
www.ostc.de
$Id: unix-rights-anomaly-HOWTO.txt,v 1.26 2025/02/23 20:14:55 tsbirn Exp $
Dieses Dokument beschreibt die "Rechte-Anomalie" auf UNIX/Linux-Systemen. Damit
ist gemeint, dass manche auf einer Datei möglichen Operationen von den Rechten
des Verzeichnisses, in dem diese Datei liegt, 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
liegt, entscheidet darüber, welche OPERATIONEN mit der Datei erlaubt sind:
* DATEI-RECHTE regeln die Zulässigkeit von Operationen am DATEI-INHALT
(z.B. lesen, kopieren, ändern, als Programm aufrufen).
* VERZEICHNIS-RECHTE regeln die Zulässigkeit von Operationen am DATEI-NAMEN
in diesem Verzeichnis (z.B. erstellen, umbenennen, verschieben, löschen).
Am Beispiel einer DATEI in einem VERZEICHNIS werden die jeweils erlaubten
Dateioperationen in 2 verschiedenen Rechtekombinationen (A) + (B) beschrieben:
(A) (B)
+=============+
rwx | VERZEICHNIS | r-x
+======+======+
|
,------+------.
r-- | DATEI | rw-
`-------------'
+----------------------------------------------------------------+----------+
| | NOTWENDIG|
+---------------------------+---------+------------+------+------+----------+
| DATEI-OPERATION | BEFEHL | ZUGRIFF AUF| (A) | (B) | VRZ DAT |
+---------------------------+---------+------------+------+------+----------+
| Lesen/Öffnen | more | Inhalt | ja | ja | --x r-- |
| Kopieren (innerhalb VERZ) | cp | Inhalt | ja | -- | -wx r-- |
| Kopieren (außerhalb VERZ) | cp | Inhalt | ja | ja | --x r-- |
| Überschreiben/Speichern | > | Inhalt | -- | ja | --x -w- |
| Editieren = Ändern | vi | Inhalt | -- | ja | --x rw- |
| (Lesen + Schreiben) | | | | | |
| Leeren | > | Inhalt | -- | ja | --x -w- |
| Drucken | lpr | Inhalt | ja | ja | --x r-- |
+---------------------------+---------+------------+------+------+----------+
| Berühren (Datei schon da) | touch | Name/Inode | ja | ja | --x --- |
| Hard-Link erstellen | ln | Name/Inode | ja | (ja) | -wx --- |
| Soft-Link erstellen | ln -s | Name | ja | (ja) | -wx --- |
| Erzeugen (Datei fehlt) | touch | Name/Inode | ja | -- | -wx --- |
| Umbenennen | mv | Name | ja | -- | -wx --- |
| Verschieben | mv | Name | ja | -- | -wx --- |
| Entfernen/Löschen | rm | Name | ja | -- | -wx --- |
| Verwaltungsinfo anzeigen | ls -l | Name/Inode | ja | ja | r-x --- |
| Namen auflisten | ls | Name | ja | ja | --x --- |
+---------------------------+---------+------------+------+------+----------+
| Ausführen | ./DATEI | Rechte | -- | -- | --x r-x |
+---------------------------+---------+------------+------+------+----------+
VRZ = Verzeichnis
DAT = Datei
(ja) = Falls Zielverz. ein anderes Verz. ist (mit Schreibrecht!)
HINWEIS: Ist ein Verz. nicht lesbar (Recht "r" fehlt), dann MUSS für den
Zugriff auf eine Datei ihr NAME bekannt sein (ein Auflisten des Verz.inhalts
per "ls" ist dann nämlich nicht möglich)!
+---------------------------------+----------+-------+-------+-------+
| | KOMMANDO | VERZ. | DATEI | BEZUG |
+---------------------------------+----------+-------+-------+-------+
| In Verz. wechseln | cd | - - x | - - - | |
| Verz.-Inhalt auflisten (Namen) | ls | r - - | - - - | N |
| Datei-Info auflisten (Inodes) | ls -l | r - x | - - - | N M |
+---------------------------------+----------+-------+-------+-------+
| Datei berühren (Inode) | touch | - - x | - - - | N M |
| Datei lesen/öffnen | more | - - x | r - - | N I |
| Datei schreiben/speichern (n.ez)| > DATEI | - - x | - w - | N I M |
| Datei editieren (ändern) | vi | - - x | r w - | N I |
| Datei kopieren (aus Verz. raus) | cp | - - x | r - - | N I |
| Datei drucken | lpr | - - x | r - - | N I |
+---------------------------------+----------+-------+-------+-------+
| Datei kopieren (in Verz. rein) | cp | - w x | r - - | N I M |
| Datei erzeugen | > DATEI | - w x | - - - | N I M |
| Datei umbenennen | mv | - w x | - - - | N |
| Datei verschieben | mv | - w x | - - - | N |
| Datei löschen | rm | - w x | - - - | N M |
+---------------------------------+----------+-------+-------+-------+
| Binärprogr. ausführen | DATEI | - - x | - - x | N I |
| Shellskript ausführen (A) | DATEI | - - x | r - x | N I |
| Shellskript ausführen (B) | sh DATEI | - - x | r - - | N I |
+---------------------------------+----------+-------+-------+-------+
| Hardlink auf Datei anlegen | ln | - w x | - - - | N M |
| Softlink auf Datei anlegen | ln -s | - w - | - - - | N |
| Softlink auf Datei benutzen | | - - x | - - - | N |
+---------------------------------+----------+-------+-------+-------+
| Besitzer ändern | chown | root | M |
| Besitzer-Gruppe ändern | chgrp | Besitzer/root | M |
| Rechte ändern | chmod | Besitzer/root | M |
| Attribute ändern (Datum) | touch | Besitzer/root | M |
+---------------------------------+----------+---------------+-------+
BEZUG = N)ame, I)nhalt, M)etadaten
HINWEIS: Ist ein Verz. nicht lesbar (Recht "r" fehlt), dann MUSS für den
Zugriff auf eine Datei ihr NAME bekannt sein (ein Auflisten des Verz.inhalts
per "ls" ist dann nämlich nicht möglich)!