HOWTO zu UNIX-Sonderrechten

(C) 2006-2017 T.Birnthaler/H.Gottschalk <howtos(at)ostc.de>
              OSTC Source Training and Consulting GmbH
              www.ostc.de

$Id: unix-special-rights-HOWTO.txt,v 1.12 2017/03/23 22:45:01 tsbirn Exp $

Dieses Dokument beschreibt die Sonderrechte von UNIX-Systemen.

Inhaltsverzeichnis

1) Beschreibung
2) Hinweise

1) Beschreibung   (Toc)

Neben den Standardrechten "rwx" gibt es unter UNIX/Linux standardmäßig noch
folgende "Sonderrechte":

  +--------------+------------------------+---------------------------+-------+
  |     Recht    |         Datei          |         Verzeichnis       | chmod |
  +--------------+------------------------+---------------------------+-------+
  | Set-User-ID  | Programm(datei) unter  |             --            |       |
  | (SUID)       | der Kennung des Datei- |             --            |  u+s  |
  |              | Besitzers ausführen,   |             --            |  u-s  |
  |              | egal wer es startet.   |             --            | 4000  |
  |              | Bsp: "/usr/bin/passwd" |             --            |       |
  +--------------+------------------------+---------------------------+-------+
  | Set-Group-ID | Programm(datei) unter  | Alle NEU im Verzeichnis   |       |
  | (SGID)       | der Kennung der        | angelegten Dateien +      |       |
  |              | Datei-Besitzer-Gruppe  | Verzeichnisse gehören     |  g+s  |
  |              | ausführen, egal wer    | automatisch der Besitzer- |  g-s  |
  |              | es startet.            | Gruppe des Verzeichnisses | 2000  |
  |              | Bsp: ...               | UND "erben" das           |       |
  |              |                        | Set-Group-ID-Recht.       |       |
  +--------------+------------------------+---------------------------+-------+
  | Sticky       | VERALTET: Programm     | Nur der Besitzer einer    |       |
  |              | nach dem ersten Start  | Datei kann diese auch     |  o+t  |
  |              | im Speicher halten, um | wieder löschen (auch      |  o-t  |
  |              | es später schneller    | wenn ALLE Schreibrecht    | 1000  |
  |              | wieder zu starten.     | haben, Bsp: "/tmp").      |       |
  +--------------+------------------------+---------------------------+-------+
  | Mandatory    | Normale Datei (ohne    |             --            |       |
  | Locking      | Ausführungsrecht) kann |             --            |  g+l  |
  | (nur Solaris)| nur von EINEM Prozeß   |             --            |  g-l  |
  |              | gleichzeitig geöffnet  |             --            | 2000  |
  |              | werden.                |             --            |       |
  +--------------+------------------------+---------------------------+-------+

                           u   g   o    # User - Group - Others
Darstellung bei "ls -l":  rws rws rwt   # Entsprechendes x-Recht gesetzt
                          rwS rwS rwT   # Entsprechendes x-Recht fehlt
                          rw- rwl rw-   # Alle x-Rechte müssen fehlen!
                            |   |   |
            Set-User-ID ----+   |   +---- Sticky
                                |
                          Set-Group-ID      oder
                       Mandatory Locking (Solaris!)

2) Hinweise   (Toc)

* Die Sonderrechte (außer "Mandatory Locking") sind nur dann sinnvoll,
  wenn sie zusammen mit dem "x-Recht" gesetzt werden.

* Das "Sticky"-Recht ist nur dann sinnvoll,
  wenn Schreibrecht für ALLE oder die GRUPPE gesetzt ist.

* Alle 3 Sonderrechte gleichzeitig zu setzen ist nicht sinnvoll,
  sinnvoll sind folgende Kombinationen:

   +-----+------------------------------+
   |Komb.| Anwenderbar auf...           |
   +-----+------------------------------+
   | s-- | Programm-Datei               |
   | -s- | Programm-Datei + Verzeichnis |
   | --t |                  Verzeichnis |
   | ss- | Programm-Datei               |
   | -st |                  Verzeichnis |
   +-----+------------------------------+

* Für die "root" haben die Sonderrechte KEINE Auswirkung.

* Sticky-Recht bei Solaris setzen: "u+t" statt "o+t" verwenden!

* Mandatory-Locking gibt es nur bei Solaris, nicht bei Linux!