HOWTO zur "Rechte-Anomalie" unter UNIX/Linux

(C) 2006-2017 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.24 2019/11/26 19:37:07 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.

Inhaltsverzeichnis

1) EinfÃŒhrung
2) Notwendige Rechte fÌr bestimmte TÀtigkeiten

1) EinfÃŒhrung   (Toc)

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
  DATEI-NAMEN in Verzeichnis-Listen
  (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-
                            `-------------'

  +------------------------------------+------------+-----------+-----------+
  | Datei-Operation                    | Bezug      |    (A)    |    (B)    |
  +------------------------------------+------------+-----------+-----------+
  | Lesen/Öffnen             (more)    | Inhalt     |    ja     |    ja     |
  | Kopieren                 (cp)      | Inhalt     |    ja     |    -- (*) |
  | Überschreiben/Speichern  (>)       | Inhalt     |    --     |    ja     |
  | Editieren = Ändern       (vi)      | Inhalt     |    --     |    ja     |
  | (Lesen + Schreiben)                |            |           |           |
  | Löschen (Inhalt)         (>)       | Inhalt     |    --     |    ja     |
  | Drucken (Inhalt)         (lpr)     | Inhalt     |    ja     |    ja     |
  +------------------------------------+------------+-----------+-----------+
  | BerÃŒhren                 (touch)   | Name/Inode |    ja     |    ja     |
  | Hard-Link erstellen      (ln)      | Name/Inode |    ja     |    -- (*) |
  | Soft-Link erstellen      (ln -s)   | Name       |    ja     |    -- (*) |
  | Erzeugen                 (touch)   | Name/Inode |    ja     |    --     |
  | Umbenennen               (mv)      | Name       |    ja     |    --     |
  | Verschieben              (mv)      | Name       |    ja     |    --     |
  | Entfernen/Löschen (Name) (rm)      | Name       |    ja     |    --     |
  +------------------------------------+------------+-----------+-----------+
  | AusfÃŒhren                (./DATEI) | Rechte     |    --     |    --     |
  +------------------------------------+------------+-----------+-----------+
  (*) "ja", wenn das Zielverz. ein anderes Verz. ist
      (in dem Schreibrecht gesetzt ist!)

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 ist nicht
möglich)!

2) Notwendige Rechte fÃŒr bestimmte TÀtigkeiten   (Toc)

  +-----------------------------------+----------+-------+-------+-------+
  |                                 | Kommando | Verz. | Datei | Typ   |
  +---------------------------------+----------+-------+-------+-------+
  | 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 |
  +---------------------------------+----------+---------------+-------+
                                           Typ = N)ame I)nhalt M)etadaten

Ist ein Verz. nicht lesbar, dann mÃŒssen die Namen fÃŒr den Zugriff auf
Dateien bekannt sein (Auflisten des Verz.inhalts ist nicht möglich)!