Red Hat ist an das Filesystem Hierarchy Standard (FHS) - dem Dateisystem-Hierarchiestandard gebunden. Dabei handelt es sich um ein gemeinsam mit anderen Institutionen erarbeitetes Dokument, in dem die Namen und Speicherstellen vieler Dateien und Verzeichnisse festgelegt sind.
Das aktuelle FHS-Dokument ist die maßgebende Referenz für alle FHS-konformen Dateisystem, wobei der Standard jedoch viele Bereiche undefiniert oder erweiterbar lässt. In diesem Abschnitt geben wir Ihnen einen Überblick über diesen Standard und eine Beschreibung jener Bereiche des Dateisystems, die vom Standard nicht erfasst werden.
Den vollständigen Standard finden Sie unter:
Die Erfüllung dieses Standards setzt einiges voraus, aber die beiden wichtigsten Aspekte sind sicherlich die Kompatibilität mit anderen Systemen und die Möglichkeit, eine /usr/-Partition schreibgeschützt zu mounten, da sie gmeinsam genutzte ausführbare Dateien enthält und daher keine Änderungen durch den Benutzer vorgenommen werden sollten. Da /usr/ schreibgeschützt gemountet ist, besteht die Möglichkeit, sie über die CD-ROM oder rüber einen schreibgeschützten NFS-Mount von einem anderen Rechner aus zu mounten.
Die hier beschriebenen Verzeichnisse und Dateien stellen nur eine kleine Teilmenge der im Dokument zum Dateisystemstandard angegebenen Verzeichnisse und Dateien dar. Vollständige Informationen finden Sie im neuesten Dokument zum Dateisystemstandard FHS.
Das /dev/-Verzeichnis enthält Dateisystemeinträge, die die an das System angeschlossenen Geräte wiedergeben. Diese Dateien sind für das einwandfreie Funktionieren des Systems unerlässlich.
Das /etc/-Verzeichnis ist für lokale Konfigurationsdateien Ihres Rechners reserviert. Unter /etc/ dürfen keine Binärdateien abgelegt werden. Sämtliche Binärdateien, die zu einem früheren Zeitpunkt in /etc/ abgelegt wurden, müssen nun nach /sbin/ oder evtl. /bin/ verschoben werden.
Die Verzeichnisse X11/ und skel/ sind Unterverzeichnisse von /etc/:
/etc |- X11/ |- skel/ |
Im /etc/X11/-Verzeichnis werden X11- Konfigurationsdateien, wie z.B. XF86Config, abgelegt Im /etc/skel/-Verzeichnis werden Benutzerdateien- Gerippe abgelegt. Wenn ein neuer Benutzer hinzukommt, dienen sie dazu, ein Home-Verzeichnis anzulegen.
Das /lib/-Verzeichnis sollte nur die Bibliotheken enthalten, die für das Ausführen der Binärdateien von /bin/ und /sbin/ gebraucht werden. Diese gemeinsam genutzten Bibliotheks-Images sind insbesondere für das Booten des Systems und das Ausführen von Befehlen innerhalb des root-Dateisystems von Bedeutung.
Das /mnt/-Verzeichnis ist für vorübergehend gemountete Dateisysteme wie CD-ROMs und Disketten.
Das /opt/-Verzeichnis stellt einen Bereich für die Speicherung von großen und statischen Software-Paketen zur Verfügung.
Für Pakete, deren Dateien nicht über das ganze Dateiystem verteilt abgelegt werden sollen, stellt /opt/ ein logisches und überschaubares organisatorisches System unter dem Verzeichnis dieses Pakets zur Verfügung. Für den Systemadministrator bedeutet dies eine einfache Art und Weise, die Rolle jeder Datei innerhalb eines bestimmten Pakets zu bestimmen.
Wenn z.B. ein besimmtes Softwarepaket, das in /opt/ abgelegt ist, sample heißt, dann können alle zugehörigen Dateien in Verzeichnisse innerhalb /opt/sample/ abgelegt werden, z.B. /opt/sample/bin/ für Binärdateien und /opt/sample/man/ für man-Seiten.
Große Pakete, die zahlreiche Unterpakete umfassen, die jeweils verschiedene Aufgaben erfüllen, werden in /opt/ positioniert, so dass das große Paket eine standardmäßige Organisation erhält. Das sample-Paket kann auf diese Weise verschiedene Tools in eigenen Unterverzeichnissen besitzen - beispielsweise /opt/sample/tool1/ und /opt/sample/tool2/, die wiederum ihre eigenen Verzeichnisse wie bin/ oder man/ u.ä. aufweisen.
Das /proc/-Verzeichnis enthält spezielle Dateien, die entweder Informationen zum Kernel schicken oder sie vom Kernel erhalten.
Aufgrund der großen Anzahl verfügbarer Daten in /proc/ und der vielen Verwendungsmöglichkeiten dieses Verzeichnisses im Zusammenhang mit dem Kernel, wurde diesem Thema ein ganzes Kapitel gewidmet. Weitere Informationen hierzu finden Sie unter Kapitel 5.
Das /sbin/-Verzeichnis enthält die ausführbaren Dateien , die nur vom root-Benutzer ausgeführt werden können. Die ausführbaren Dateien in /sbin/ dienen ausschließlich dem Booten und Mounten von /usr/ sowie den Wiederherstellungsvorgängen innerhalb des Systems. FHS bedeutet:
"/sbin/ enthält typischerweise Dateien, die zum Booten des Systems unerlässlich sind, sowie Binärdateien in /bin/. Jede nach dem Mounten von /usr/ verwendete ausführbare Datei (sofern keine Probleme auftreten) sollte in /usr/sbin/ abgelegt werden. Rein lokale Systemverwaltungs-Binärdateien sollten in /usr/local/sbin/ abgelegt werden."
Zumindest die folgenden Programme sollten sich also in /sbin/ befinden:
arp, clock, getty, halt, init, fdisk, fsck.*, grub, ifconfig, lilo, mkfs.*, mkswap, reboot, route, shutdown, swapoff, swapon, update |
Im /usr/-Verzeichnis werden Dateien abgelegt, die allen Benutzern auf eine Site zur Verfügung gestellt werden. Das /usr/-Verzeichnis verfügt normalerweise über eine eigene Partition, bei der es möglich sein sollte, sie schreibgeschützt zu mounten. Zumindest folgende Verzeichnisse sollten Unterverzeichnisse von /usr/ sein:
/usr |- bin/ |- dict/ |- doc/ |- etc/ |- games/ |- include/ |- kerberos/ |- lib/ |- libexec/ |- local/ |- sbin/ |- share/ |- src/ |- tmp -> ../var/tmp/ |- X11R6/ |
Das bin/-Verzeichnis enthält ausführbare Dateien, dict/ enthält nicht FHS-konforme Dokumentationsseiten, etc/ enthält Konfigurationsdateien für das gesamte System, games/ ist für Spiele reserviert, include/ enthält C-Header-Dateien, kerberos/ enthält Binärdateien und viele andere Kerberos-Elemente und lib/ enthält Objektdateien und Bibliotheken,die nicht konzipiert wurden, um direkt von Benutzern oder Shell-Skripts verwendet zu werden. Das libexec/- Verzeichnis enthält kleinere Hilfsprogramme, die von anderen Programmen aufgerufen werden, sbin/ enthält die Binärdateien für die Systemverwaltung (d.h. die Binärdateien, die nicht zu /sbin/) gehören), share/ enthält Dateien, die nicht architekturspezifisch sind, src/ ist für den Quellcode reserviert und X11R6/ ist für das X-Window-System gedacht. (XFree86 in Red Hat Linux).
"Die /usr/local/-Hierarchie kann vom Systemadministrator für die Installation lokaler Software benutzt werden. Bei der Aktualisierung der Systemsoftware muss ein Überschreiben ausgeschlossen werden. Das Verzeichnis kann für Programme und Daten benutzt werden, auf die innerhalb einer Gruppe von Rechnern zugegriffen werden kan, und die nicht in /usr/ abgelegt sind."
Das /usr/local/-Verzeichnis hat eine ähnliche Struktur wie das /usr/-Verzeichnis. Es enthält die folgenden Unterverzeichnisse, deren Verwendungszweck jeweils dem der Unterverzeichnisse im /usr/-Verzeichnis ähnlich ist:
/usr/local |- bin/ |- doc/ |- etc/ |- games/ |- include/ |- lib/ |- libexec/ |- sbin/ |- share/ |- src/ |
Der Dateisystemstandard FHS erfordert, dass das Mounten von /usr/ im schreibgeschützten Modus möglich ist. Daher sollten Programme, die Protokolldateien schreiben oder spool/ or lock/-Verzeichnisse benötigen, am besten in das the /var/ schreiben. Laut FHS steht /var/ für:
"...variable Datendateien. Dazu gehören Spool-Verzeichnisse und Spooldateien, Systemverwaltungs- und Protokollierungsdaten sowie zwischengespeicherte Dateien."
Nachfolgend einige der Verzeichnisse, die Unterverzeichnisse von /var/ sein sollten:
/var |- account/ |- arpwatch/ |- cache/ |- crash/ |- db/ |- empty/ |- ftp/ |- gdm/ |- kerberos/ |- lib/ |- local/ |- lock/ |- log/ |- mail -> spool/mail/ |- mailman/ |- named/ |- nis/ |- opt/ |- preserve/ |- run/ +- spool/ |- anacron/ |- at/ |- cron/ |- fax/ |- lpd/ |- mail/ |- mqueue/ |- news/ |- rwho/ |- samba/ |- slrnpull/ |- squid/ |- up2date/ |- uucp/ |- uucppublic/ |- vbox/ |- voice/ |- tmp/ |- tux/ |- www/ |- yp/ |
Systemprotokolldateien wie z.B. messages und lastlog werden im /var/log/- Verzeichnis abgelegt. Das /var/lib/rpm/-Verzeichnis enthält auch die RPM- Systemdatenbanken. Sperrdateien werden in /var/lock/, abgelegt, wobei es sich hier normalerweise um spezifische Verzeichnisse für die Programme handelt, das diese Dateien benutzt. Das /var/spool/-Verzeichnis hat Unterverzeichnisse, in denen verschiedene Datendateien speichern können.
In Red Hat Linux unterscheidet sich der Verwendungszweck für /usr/local/ ganz leicht von den durch FHS definierten Verwendungszwecken. Laut FHS soll in /usr/local/ Software abgelegt werden, die bei Aktualisierungen der System-Software geschützt werden soll. Das Aktualisieren von Red Hat Linux mit dem rpm-Befehl und der grafischen Paketverwaltungstool- Applikation gewährleistet einige Sicherheit im Hinblick auf das Überschreiben. Deshalb ist es nicht nötig, die Dateien dadurch zu schützen, dass Sie sie im /usr/local/- Verzeichnis ablegen. Stattdessen empfehlen wir Ihnen, für lokal auf Ihrem Rechner verwendete Software auf /usr/local/ zurückzugreifen.
Wenn, zum Beispiel, das Verzeichnis /usr/ als eine Read-Only (Nur-Lesen) NFS Share von einem Remote Host gemountet wird, ist es immernoch möglich, ein Programm oder Paket unter /usr/local/ zu installieren.
Zurück | Zum Anfang | Vor |
Struktur des Dateisystems | Zum Kapitelanfang | Spezielle Dateispeicherstellen |