Skip to main content
Oktal
100

Leitfaden zum Oktalsystem

Octal Number System

The octal system uses 8 digits: 0-7. Each octal digit represents exactly 3 binary bits. That's why 64₁₀ = 100₈. Historically used in UNIX/Linux file permissions (chmod 755 = rwxr-xr-x) and memory addressing in older 8-bit systems.

Dateirechte unter Linux

Linux-Zugriffsrechte (chmod) verwenden drei Oktalziffern: Eigentümer, Gruppe, andere. Jede Ziffer ist die Summe der Rechte: lesen=4, schreiben=2, ausführen=1. Beispiel: chmod 755 = rwxr-xr-x (7=r+w+x, 5=r+x, 5=r+x). chmod 644 = rw-r--r--.

Praktische Anwendungen

File permissions: chmod 400 (read only), chmod 755 (full), chmod 600 (private). Used rarely in Python and Java. In older IBM System/360 used for disk addressing. Conversion: 64₁₀ = 100₈, 255₁₀ = 377₈.

Oktal überlebt, weil 755 exakt neun Berechtigungsbits sind

Oktal ist aus der Informatik nahezu verschwunden, mit einer auffälligen Ausnahme: Unix-Dateirechten. Das ist keine Gewohnheit. Drei Berechtigungsflags passen exakt in eine Oktalziffer, und drei Benutzerklassen ergeben neun Bit — ein Modus ist also genau dreistellig, ohne Auffüllen und ohne Rest.

So wird gerechnet

  • Rechnet zwischen Oktal, Dezimal, Binär und Hexadezimal um.
  • Liest Dateirechte, bei denen jede Ziffer Lesen, Schreiben und Ausführen für eine Klasse kodiert.
  • Macht die Entsprechung von drei Bit je Ziffer sichtbar — der ganze Grund, warum sich die Notation hält.
1 Oktalziffer = 3 Bit = 8 Werte (0–7)

Rechte:  r = 4,  w = 2,  x = 1
  7 = 4+2+1 = rwx      5 = 4+0+1 = r-x      6 = 4+2+0 = rw-

Modus = Ziffer für Eigentümer, Gruppe, Andere → 9 Bit, 512 mögliche Modi

Rechenbeispiel

Die gängigen Modi als symbolische Entsprechung gelesen.

  1. 755 → rwxr-xr-x, der übliche Modus für Verzeichnis oder ausführbare Datei
  2. 644 → rw-r--r--, der übliche Modus für eine Datei
  3. 600 → rw-------, nur vom Eigentümer lesbar
  4. 777 → rwxrwxrwx, von jedem beschreibbar

Jede Ziffer ist unabhängig die Summe aus 4, 2 und 1. 755 gibt dem Eigentümer alles und Gruppe wie Anderen Lesen und Ausführen, aber kein Schreiben — deshalb ist es die Vorgabe für alles, was ausgeführt oder betreten, aber nicht verändert werden soll.

Das Ergebnis lesen

  • 777 ist fast immer ein Fehler. Es erlaubt jedem Benutzer des Systems, die Datei zu ändern, und wird meist gegriffen, wenn ein Rechteproblem nicht verstanden wurde, nicht weil Schreibrecht für alle wirklich gewollt ist.
  • Ein Verzeichnis braucht Ausführungsrecht, um überhaupt betreten zu werden. Leserecht listet die Namen, Ausführungsrecht erlaubt den Zugriff auf den Inhalt. Deshalb erzeugt 644 auf einem Verzeichnis die verwirrende Lage, Dateinamen zu sehen, die sich nicht öffnen lassen.
  • Die umask zieht ab, sie setzt nicht. Mit der üblichen umask 022 startet eine neue Datei bei 666 und wird 644, ein neues Verzeichnis startet bei 777 und wird 755 — genau daher stammen diese beiden vertrauten Modi.
  • Eine vierte führende Ziffer setzt setuid, setgid und das Sticky-Bit — 4755 statt 755. Sie wird selten gebraucht und sollte vor dem Einsatz verstanden sein, denn setuid auf der falschen Binärdatei ist eine echte Gefahr für Rechteausweitung.

Häufige Fragen

Warum Oktal statt Hex für Rechte?
Weil Rechte in Dreiergruppen von Bits kommen und Oktal exakt drei Bit je Ziffer fasst. Hex würde eine Dreiergruppe über Ziffergrenzen hinweg zerschneiden, und die saubere Zuordnung einer Ziffer je Klasse wäre dahin.
Was sollte ich tatsächlich verwenden?
644 für gewöhnliche Dateien, 755 für Verzeichnisse und ausführbare Dateien, 600 für alles mit Geheimnissen wie Schlüsseln oder Zugangsdaten. Darüber hinaus nur, wenn Sie genau benennen können, welchen zusätzlichen Zugriff Sie wem gewähren.