Linux/Zugriffsrechte: Unterschied zwischen den Versionen

Aus Foxwiki
Subpages:
K Textersetzung - „  “ durch „ “
Keine Bearbeitungszusammenfassung
Zeile 261: Zeile 261:


[[Kategorie:Linux/Zugriffsrechte]]
[[Kategorie:Linux/Zugriffsrechte]]
[[Kategorie:Linux/Sicherheit]]
[[Kategorie:Zugriffsrechte]]

Version vom 21. Dezember 2023, 11:51 Uhr

UNIX-Zugriffsrechte

Um den Zugriff auf Dateien zu regeln, können die Rechte an den Besitzer, die Gruppe und alle anderen vergeben werden.

r read (Lesen)
w write (Schreiben)
x execute (Ausführen)
R W X R W X R W X
user group others

Diese können mit dem Befehl ls -l angezeigt werden.

$ ls -l 
-rw-r-----  1 dirkw privat  2374 2006-10-16 16:15 addressbook.odb

Die Datei addressbook.odb wurde am 16.10.2006 um 16:15 erstellt. Sie ist 849093 Bytes groß und ge­hört dem Benutzer "dirkw" sowie der Gruppe "privat". Das Rechtefeld schlüsselt sich wie folgt auf:

- rw- r-- ---
Dateityp Eigentümers Gruppe alle Anderen
Es handelt sich um eine normale Datei. Der Eigentümer darf die Datei lesen, ändern, aber nicht ausführen Die Gruppe darf die Da­tei nur lesen Alle anderen haben kei­nen Zugriff auf die Datei

Zugriffsrechte ändern mit chmod

chmod·Modus·Dateiliste

Einstellen der Zugriffsrechte einer Datei. Dies kann im symbolischen oder numerischen Modus durchgeführt werden.

Symbolischer Modus

Modus = BereichOperandBerechtigung

Bereich u (user) Eigentümer g (group) Gruppe o (others) Übrige Benutzer a(all) oder keine Angabe ändert alle Bereiche
Operand + Recht hinzufügen - Recht wegnehmen = Setzt neue Rechte und löscht alle bisherigen
Berechtigung r Read w Write x eXecute

t(sTicky bit) schützt Datei oder verhindert das löschen einer Datei von Nicht-Eigentümern

s(Set user id) setzt Benutzer- oder Gruppen-ID bei der Ausführung

Beispiele
chmod·+x·datei Ausführungsrecht für alle hinzufügen
chmod·go-w·datei Schreibrecht nur noch für User
chmod·g+rwx·datei Volle Rechte für Gruppe
chmod·ugo-rwx·datei Allen alle Rechte entziehen

Kombinationen mit verschiedenen Zugriffsrechten für verschiedene Rollen können kommagetrennt ange­geben werden:

$ chmod u=rw,g=rw,o=r ktoNr
$ ls -l
-rw-rw-r-- 1 anna users 9 18. Okt 13:20 ktoNr

Numerischer Modus

  • Systemintern werden die Zugriffsrechte numerisch verwaltet.
  • Diese Methode kann auch zum Setzen der Rechte verwendet werden.
  • Die erste Ziffer Bezeichnet die Schutzbit, die zweite Rech­te des Eigentümers, die dritte die Gruppenrechte und vierte Ziffer die Rechte aller anderen Benutzer.
  • Die Zahl errechnet sich durch addieren folgender Okalwerte
SUID SGID STI R W X R W X R W X
4 2 1 4 2 1 4 2 1 4 2 1
special rights User Group Others

Beispiel

chmod 777·datei 
rwx rwx rwx
chmod 750 
rwx r-x ---
chmod 1750 

rwx r-w --t

Special Rights

Um den Zugriff noch genauer zu regeln, gibt es drei weiter Schutzbit:

SUID SGID STI R W X R W X R W X
special rights User Group Others

Set User ID (SUID)

Wenn das SUID-Bit (Set User ID) gesetzt ist, behält das Programm für die Dauer der Ausführung die Rechte des Programmeigentümers und nicht jene dessen, der die Programme aufruft.

Setzen

chmod·u+s·datei

Anzeige -rwsr-xr-x 1 root shadow 80036 2004-10-02 11:08 /usr/bin/passwd

"S" statt "X" bei den User-Rechten:

Ist zugleich das Ausführungsrecht (x) gesetzt, wird ein kleines 's' angezeigt, ansonsten ein großes 'S'.

Beispiel

  • Alle Benutzer sind in einer speziellen Datei gespeichert, die nur der Superuser ändern darf - sonst könnte ja jeder einen neuen Benutzer eintragen.
  • Jeder Benutzer kann aber sein Passwort ändern, das auch in dieser Datei steht. Dazu muss er schreibend auf die Datei zugreifen - obwohl er dazu keine Berechtigung besitzt.
  • Das Programm "passwd" gehört dem Superuser, hat das SUID-Bit gesetzt und kann so auf die User-Datei schreibend zugreifen.

Set Group ID (SGID)

  • Wenn das SGID-Bit (Set Group ID) gesetzt ist, hat das Programm die Rechte der Gruppe, zu der es gehört. Dieses Feature wird z. B. beim Drucker-Spooling verwendet.
  • Bei Dateien ohne Ausführungsrecht sorgt dieses Bit dafür, dass die Datei nur von einem Prozess geöffnet werden kann.
  • Bei Verzeichnissen hat das SGID-Bit eine andere Aufgabe. Dateien, die in das Verzeichnis kopiert oder erstellt werden, automatisch die Gruppe des Verzeichnisses erhalten (man muss also nicht mehr explizit die Gruppe setzen, um den Mitgliedern einer Gruppe Zugriff zu ermöglichen).

Setzen

chmod·g+s·datei

Anzeige

drwxrws--- 2 tux archive 48 Nov 19 17:12  backup

"s" statt "x" bei den Gruppen-Rechten

Ist zugleich das Ausführungsrecht (x) gesetzt, wird ein kleines 's' angezeigt, ansonsten ein großes 'S'.

STICKY Bit

  • Das STICKY-Bit sollte früher den Systemdurchsatz verbessern. Programme, bei denen dieses Bit gesetzt ist, verbleiben nach dem ersten Aufruf im Speicher und starten bei den folgenden Aufrufen schneller. Heute ist das nicht mehr nötig.
  • Bei Verzeichnissen dient dieses Bit der Systemsicherheit.

Auch wenn im Verzeichnis für alle User Schreibrecht existiert (= Löschen und Anlegen von Dateien), können bei gesetztem Sticky-Bit nur Dateien gelöscht werden, die einer folgenden Bedingungen genügen: # die Datei gehört dem Benutzer, der sie löschen will

  1. das Verzeichnis, in dem die Datei liegt, gehört dem Benutzer
  2. der Benutzer hat Schreibrecht für die Datei
  3. der Superuser will die Datei löschen

Setzen

chmod·+t·datei

Anzeige drwxrwxrwt 2 root root 1160 2002-11-19 17:15 /tmp

t" statt "x" bei den "Others"-Rechten

Ist zugleich das Ausführungsrecht (x) gesetzt, wird ein kleines 't' angezeigt, ansonsten ein großes 'T'.

Vorgaben setzen mit umask

umask Modus

Das Kommando umask setzt Standardeinstellung für Zugriffsrechte für alle Dateien, die nach Aufruf von umask erzeugt werden.

So muss nicht jedesmal des chmod-Kommando aufrufen, wenn einen Datei erstellt wurde. Auf bestehende Dateien hat das Kommando keinen Einfluss.

Der dreistellige Zahlenwert (für User, Group und Others) ist das Komplement der Angabe von chmod, d. h. hier wird festgelegt, welches Bit nicht gesetzt werden soll.

Stellen Sie sich vor, sie ziehen den Wert des umask-Modus vom Maximalwert 777 ab. Sie erhalten dann die Zugriffsrechte.

Beispiele
umask 022 7 7 7- 0 2 2= 7 5 5 rwx r-x r-x
umask 027 7 7 7- 0 2 7= 7 5 0 rwx r-x ---
umask 177 7 7 7- 1 7 7= 6 0 0 rw- --- ---