Donnerstag, 12. Mai 2016

Dateisystem Filesystem Hierarchy Standard FHS

Richtlinie für die Verzeichnisstruktur unter Linux Distributionen

Wikipedia Eintrag


Dateikategorien


  • static                  Dateien, die sich ohne Eingriff des Systemadmins nicht ändern; z.B. Systemprogramme und Bibliotheken (vorzugweise in /usr zu finden)
  • variable              Alles Dateien, die sich durchaus häufig ändern; z.B. MySQl Datenbanken (Dateien werden hauptsächlich unter /var abgelegt)
  • shareable          Dateien, die für alle Rechner identisch sind und daher zentral vorgehalten werden können und übers Netzwerk verteilt werden (/urs/bin)
  • unshareable       Hostspezifische Dateien (/etc-Verzeichnis)

Aus diesen Aspekten ergeben sich 4 Datei-Kategorien:
  • static shareable             z.B. /usr/bin
  • static unshareble           z.B. /etc
  • variable shareable         z.B. /home
  • variable unshareable     z.B. /var/run


Hauptverzeichnisse


Es gibt 13 Verzeichnisse oder symbolische Verknüpfungen im Stammverzeichnis /

  • /bin           grundlegende Systembefehle (Binärdateien), die auch bei nicht gemountedem Dateisystem benötigt werden (Single User Mode z.B.); es sind keine Unterverzeichnisse erlaubt; Liste der meist verwendeten Befehle findet sich im Wikipedia-Artikel
  • /boot          alle Dateien des Bootloaders für den Bootvorgang, auch den MBR      
  • /dev           Gerätedateien; u.a. die Dateien /dev/null (in dieser Datei wird alles, was geschrieben wird, wieder verworfen) , /dev/zero (aus dieser Datei werden Nullbytes in beliebiger Menge gelesen) und /dev/random (Hardware-Zufallsgenerator)
  • /etc            spezifische Konfigurationsdateien; statische Dateien, keine Binärdateien (im Ubuntu Verzeichnis sind jedoch Binärdateien vorhanden) (etc = editable text configuration; urspr. et cetera); hier liegen wichtige Konfigurationsdateien, wie fstab, inittab, networks, passwd, profile, usw.
    Unterverzeichnisse:
    • /etc/opt              systemspezifische Konfigurationsdateien für die Programme in /opt; für zusätzlliche installierte Softwarepakete müssen entsprechende Unterverzeichnisse angelegt werden; Regelung zur Unterverteilung von /etc/opt/ existiert nicht
    • /etc/X11             optional Konfiguration des X-Window-System (Dateien Xconfig, xorg.conf, Xmodmap)
    • /etc/sgml           SGML-Systeme speichern hier grundlegende Konfigurationen ab    
    • /etc/xml              Grundeinstellungen von evtl. vorhandenen XML-Systemen
    • /etc/mc               Konfiguration des Midnight Commanders (Dateimanager)
    • /etc/network      Konfigurationsdateien, die das Netz betreffen (Debian)
  • /lib               installierte dynamische Bibliotheken und Kernel-Module (Unterverzeichnis modules), die zum Starten und für die Programme in /bin und /sbin benötigt werden; dynamische C-Standardbibiothek libc.so.* und Linker Bibliothek ld*
  • /media          Einhängepunkt für Wechseldatenträger
  • /mnt              temporärer Einhängepunkt für Dateisysteme
  • /opt               zusätzliche Softwarepakete, die nicht in den Reposorities enthalten sind
  • /sbin              wichtige Systembefehle für die Systemadministration u.a. die nur als root ausgeführt werden dürfen (shutdown, fastboot, fdisk, mkswap, swapoff, etc)
  • /srv                Daten, die von Diensten angeboten werden; Verzeichnisstruktur ist noch nicht definiert
  • /tmp                temporäre Dateien von Programmen, für alle Benutzer zum Schreiben frei gegeben und muss ein Sticky-Bit haben
  • /usr                 Unix System Resource; enthält Daten, die von mehreren Rechnern parallel genutzt werden können (shareable)
    folgende Unterverzeichnisse müssen vorhanden sein:
    • /usr/bin              primäre Verzeichnis für ausführbare Dateien auf dem System und enthält viele Benutzerbefehle
    • /usr/include       Header-Dateien (enthalten Include-Dateien mit Prototypendefinition), die durch Programme eingebunden werden 
    • /usr/lib               modularer Programmcode, der über Bibliotheken verschiedenen Programmen zur Verfügung gestellt werden kann
    • /usr/local            Ort, wo Dateien und Programme abgelegt werden können, die von der Distribution nicht verwendet werden dürfen
    • /usr/sbin             Ablage von Systembefehlen, die nicht zwingend notwendig sind und entsprechend auch nicht für den Bootvorgang verwendet werden
    • /usr/share           von der Architektur unabhängige Daten

      optional:
    • /usr/X11R6         X-Window-System Version11 Release 6
    • /usr/games         Spiele
    • /usr/lib<nr>         alternative Versionen dynamischer Bibliotheken
    • /usr/src               Quellcode
  • /var               varible Daten, die im Zuge der Abarbeitung entstehen. Es werden folgende Verzeichnisse erwartet:
    • /var/cache          zwischengespeicherte Daten von Anwendungsprogrammen
    • /var/lib                variable Statusinformationen
    • /var/local            variable Daten im Zusammenhang mit /usr/local
    • /var/lock             Lock-Dateien zur Prozesssynchronisation
    • /var/log               Logdateien
    • /var/opt               variable Daten in Zusammenhang mit /opt
    • /var/run               Daten des laufenden Prozesses
    • /var/spool            abzuarbeitende Warteschlangen (Druckaufträge, E-Mail-Versandaufträge,...)
    • /var/tmp              temporäre Dateien, die über den Neustart erhalten bleiben
              falls entsprechende Anwendungen installiert sind, existieren auch noch die folgenden Verzeichnisse
      • /var/account         Prozessabrechnungsdaten
      • /var/crash            Systemdumps bei Rechnerabstürzen
      • /var/game             variable Spieledaten
      • /var/mail               Benutzerpostfachdateien
      • /var/yp                  Datenbankdateien des Network Information Service
    • /run                  Ersatz für /var/run; Eigentlich kein Bestandteil des FHS, aber steht dem auch nicht entgegen; Soll die Problematik beheben, dass /var/run während des Bootvorgangs unter bestimmten Umständen nicht verfügbar ist
    zusätzliche Verzeichnisse, wenn Untersysteme installiert sind
    • /home           Verzeichnisstruktur zur Aufnahme von benutzerspezifischen Daten; Konfigurationsdateien werden dabei in versteckten Dateien und Verzeichnissen abgelegt (dot.files)
    • /root               Benutzerverzeichnis für den Benutzer root
    • /lib<nr>               alternative Kernel-Module und dynamische Bibliotheken, wenn das System mehrere Binärformate (32 Bit und 64 Bit) unterstützt. Für diese Systeme sind entsprechend eigene Versionen derselben Bibliothek vorhanden, die entsprechend in den /lib<nr> Verzeichnissen abgelegt werden

    Keine Kommentare:

    Kommentar veröffentlichen