Verzeichnisstruktur: Unterschied zwischen den Versionen
Michi (Diskussion | Beiträge) |
Michi (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
||
(9 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 27: | Zeile 27: | ||
|} | |} | ||
Üblicherweise sind folgende Verzeichnisse vorhanden. | |||
{| class=wikitable width=100% | {| class=wikitable width=100% | ||
! width=10% | Verzeichnis !! Beschreibung | ! width=10% | Verzeichnis !! Beschreibung | ||
|- | |- | ||
| <tt>/</tt> || Das Wurzelverzeichnis (auch: | | <tt>/</tt> || Das Wurzelverzeichnis (auch: Root-Verzeichnis). Viele Dienstprogramme (daemons) verwenden es als Arbeitsverzeichnis. Produziert ein solcher Dienst einen Core-Dump, so darf dieser auf keinen Fall das Root-Dateisystem füllen. Ein Root-Dateisystem mit weniger als 15 MB freiem Platz sollte deshalb unbedingt "read-only" eingehängt werden. | ||
|- | |- | ||
| <tt>/bin</tt> || Wichtige Programme. | | <tt>/bin</tt> || Wichtige Programme. | ||
|- | |- | ||
| <tt>/boot</tt> || Hier lagern auf einem modernen Linux-System der [[Linux-Kernel]], ein RAM-Disk-Image mit essentiellen [[Kernelmodulen]] sowie die Konfigurationsdateien des [[Bootloaders]] (GRUB oder Lilo). Zwar gehören diese Dateien zum Kern eines Linux-Systems, sie müssen aber nicht unbedingt auf der Partition mit dem Root- | | <tt>/boot</tt> || Hier lagern auf einem modernen Linux-System der [[Linux-Kernel]], ein RAM-Disk-Image mit essentiellen [[Kernelmodulen]] sowie die Konfigurationsdateien des [[Bootloaders]] (GRUB oder Lilo). Zwar gehören diese Dateien zum Kern eines Linux-Systems, sie müssen aber nicht unbedingt auf der Partition mit dem Root-Verzeichnis liegen. | ||
|- | |- | ||
| <tt>/dev</tt> || Gerätedateien. Diese Dateien sind Knoten zu einem normalerweise physikalischen Gerät wie [[Festplatte]], [[Drucker]] oder [[Modem]]. Diese Knoten sind Kommunikationspunkte mit den | | <tt>/dev</tt> || Gerätedateien. Diese Dateien sind Knoten zu einem normalerweise physikalischen Gerät wie [[Festplatte]], [[Drucker]] oder [[Modem]]. Diese Knoten sind Kommunikationspunkte mit den [[Gerätetreibern]]; die Treiber selber werden von Fall zu Fall modular hinzugeladen. Die Knoten werden mit dem Befehl [[mknod]] erstellt. Unter Linux ist das Anlegen neuer Spezialdateien auch mit dem Skript "/dev/MAKEDEV" möglich. Die Benennung der Gerätedateien ist je nach Unix-Version verschieden. | ||
Ansehen der Gerätedateien im Verzeichnis "/dev". Die beiden Zahlen vor dem Datum bezeichnen die durch den Hersteller bestimmte "major number" bzw. "minor number". | Ansehen der Gerätedateien im Verzeichnis "/dev". Die beiden Zahlen vor dem Datum bezeichnen die durch den Hersteller bestimmte "major number" bzw. "minor number". | ||
Zeile 60: | Zeile 58: | ||
* In der Datei "/etc/passwd" bzw. "/etc/shadow" steht das verschlüsselte Passwort jedes Benutzers. | * In der Datei "/etc/passwd" bzw. "/etc/shadow" steht das verschlüsselte Passwort jedes Benutzers. | ||
|- | |- | ||
| <tt>/ | | <tt>/home</tt> || Die Heimatverzeichnisse der Benutzer (diese liegen auf [[BSD]]-Systemen unter "/usr/home"). In lokalen Netzen koppeln Administratoren dieses Verzeichnis oft mit einem Automounter, der das jeweils benötigte Verzeichnis dynamisch von einem Dateiserver holt, sobald der Benutzer sich anmeldet. | ||
|- | |- | ||
| <tt>/proc</tt> || Ein virtuelles Dateisystem. Angelegt durch den [[Linux-Kernel]] existiert es nur im [[Arbeitsspeicher]]. Die enthaltenen Informationen betreffen das laufende System: [[Prozess]]e, Zustände, Belegungen usw. Dieses Dateisystem stellt Kernelvariablen bereit, etwa für die Konfiguration | | <tt>/lib</tt> || [[Systembibliotheken]] und [[Kernelmodule]]. | ||
|- | |||
| <tt>/media</tt> || Einhängepunkt für einige weitere Dateisysteme. Wechselmedien erhalten eigene Verzeichnisse, z. B. "/media/floppy" oder "/media/cdrom". Befindet sich z. B. keine CD-ROM im Laufwerk, so ist auch das Verzeichnis "/media/cdrom/" leer. | |||
|- | |||
| <tt>/media</tt> || Einhängepunkt für vorübergehend benötigte Dateisysteme, etwa bei der Reparatur eines Rechners oder beim kurzfristigen Zugriff auf ein Netzwerkdateisystem. | |||
|- | |||
| <tt>/proc</tt> || Ein virtuelles Dateisystem. Angelegt durch den [[Linux-Kernel]] existiert es nur im [[Arbeitsspeicher]]. Die enthaltenen Informationen betreffen das laufende System: [[Prozess]]e, Zustände, Belegungen usw. Dieses Dateisystem stellt Kernelvariablen bereit, etwa für die Konfiguration einer Netzwerkschnittstelle oder von USB-Geräten. | |||
Informationen zum aktuellen [[Prozessor]]. | Informationen zum aktuellen [[Prozessor]]. | ||
Zeile 70: | Zeile 74: | ||
| <tt>/root</tt> || Heimatverzeichnis von Benutzer "root". | | <tt>/root</tt> || Heimatverzeichnis von Benutzer "root". | ||
|- | |- | ||
| <tt>/sbin</tt> || Wichtige | | <tt>/run</tt> || Vom System für das Starten Diensten und Ressourcen benötigte Dateien. | ||
|- | |||
| <tt>/sbin</tt> || Wichtige Systemprogramme. | |||
|- | |- | ||
| <tt>/tmp</tt> || Temporäre Dateien. | | <tt>/tmp</tt> || Temporäre Dateien. | ||
| | |- | ||
| <tt>/usr</tt> || Hier versammelt sich meist der Hauptteil der [[Anwendungen]], sodass das Verzeichnis oft recht gross ist. Hier sind viele auch im Verzeichnis "/" vorhandene Verzeichnisse enthalten. | |||
* Passend zu "/bin" gibt es ein Verzeichnis "/usr/bin". | |||
* Passend zu "/bin" | |||
* Systemprogramme stehen auch in "/usr/sbin". | * Systemprogramme stehen auch in "/usr/sbin". | ||
* Dynamische Bibliotheken stehen auch in "/usr/lib". | * Dynamische Bibliotheken stehen auch in "/usr/lib". | ||
Zeile 96: | Zeile 95: | ||
Die Dateien unter "/usr" und "/opt" ändern sich naturgemäss selten, da nur die Installation zusätzlicher Software Veränderungen verursacht. Es bietet sich darum an, diese beiden Verzeichnisse nach der Initialisierung nur lesbar (read-only) einzuhängen, um versehentliche oder absichtliche Veränderungen zu unterbinden. Bei einer Sicherung ist Vollständigkeit wichtig - eine tägliche Sicherung von Bereichen, die sich nur selten ändern ist jedoch meist überflüssig. | Die Dateien unter "/usr" und "/opt" ändern sich naturgemäss selten, da nur die Installation zusätzlicher Software Veränderungen verursacht. Es bietet sich darum an, diese beiden Verzeichnisse nach der Initialisierung nur lesbar (read-only) einzuhängen, um versehentliche oder absichtliche Veränderungen zu unterbinden. Bei einer Sicherung ist Vollständigkeit wichtig - eine tägliche Sicherung von Bereichen, die sich nur selten ändern ist jedoch meist überflüssig. | ||
|- | |||
| <tt>/var</tt> || Variable Daten. Ein laufendes Betriebssystem produziert eine Vielzahl sich schnell ändernder Daten, die üblicherweise hierhin geschrieben werden. Dieses Verfahren trennt die veränderlichen Dateien von der nur lesbar eingehängten "/usr"-Partition. Wichtige Verzeichnisse sind: | |||
Ein laufendes Betriebssystem produziert eine Vielzahl sich schnell ändernder Daten, die üblicherweise | |||
* "/var/log" für die Log- und Protokolldateien. | * "/var/log" für die Log- und Protokolldateien. | ||
* "/var/mail" für die Maildateien der Benutzer; ältere Linux-Systeme benutzen hierfür auch das Verzeichnis "/var/spool/mail". | * "/var/mail" für die Maildateien der Benutzer; ältere Linux-Systeme benutzen hierfür auch das Verzeichnis "/var/spool/mail". | ||
* "/var/spool" für die Dateien von Spoolern. | * "/var/spool" für die Dateien von Spoolern. | ||
* "/var/run" für die PID-Dateien mit den Prozessnummern laufender Daemons für die Interprozess-Kommunikation. | * "/var/run" für die PID-Dateien mit den [[Prozessnummern]] laufender Daemons für die Interprozess-Kommunikation. | ||
Vor allem Protokolldaten können abhängig von der Auslastung des Systems schnell zu einer erheblichen Grösse anwachsen. Befinden sich solche Dateien auf der Hauptpartition und sie laufen über, stürzt der Rechner in eine Reihe bizarrer Fehlfunktionen ab, weil Programme benötigte temporäre Dateien nicht mehr anlegen können. "/var" sollte deshalb auf einer eigenen Partition untergebracht werden. | Vor allem Protokolldaten können abhängig von der Auslastung des Systems schnell zu einer erheblichen Grösse anwachsen. Befinden sich solche Dateien auf der Hauptpartition und sie laufen über, stürzt der Rechner in eine Reihe bizarrer Fehlfunktionen ab, weil Programme benötigte temporäre Dateien nicht mehr anlegen können. "/var" sollte deshalb auf einer eigenen Partition untergebracht werden. | ||
Zeile 114: | Zeile 107: | ||
Auch die Datenverzeichnisse von Diensten (z. B. eines [[HTTP]]- oder [[FTP]]-Servers) erhalten meist ein eigenes Verzeichnis. Der Umgang mit diesen Einhängepunkten unterscheidet sich unter den Distributionen stark. Der [[FHS]] schreibt vor, dass solche Daten in einem gesonderten Verzeichnis "/srv" liegen sollen. SUSE hält sich daran und lässt die Document Root von Apache in der Voreinstellung auf "/srv/www" zeigen. Debian und andere Distributionen dagegen verwenden "/var/www". Das Dateiverzeichnis des FTP-Daemon liegt oft in "/home/ftp". | Auch die Datenverzeichnisse von Diensten (z. B. eines [[HTTP]]- oder [[FTP]]-Servers) erhalten meist ein eigenes Verzeichnis. Der Umgang mit diesen Einhängepunkten unterscheidet sich unter den Distributionen stark. Der [[FHS]] schreibt vor, dass solche Daten in einem gesonderten Verzeichnis "/srv" liegen sollen. SUSE hält sich daran und lässt die Document Root von Apache in der Voreinstellung auf "/srv/www" zeigen. Debian und andere Distributionen dagegen verwenden "/var/www". Das Dateiverzeichnis des FTP-Daemon liegt oft in "/home/ftp". | ||
|} | |||
== Weblinks == | == Weblinks == | ||
{{ | {{Weblinks}} | ||
}} | {{url_dewikipedia|Verzeichnisstruktur|Verzeichnisstruktur}} | ||
{{Fuss}} | |||
Aktuelle Version vom 20. Oktober 2011, 11:58 Uhr
Die Verzeichnisstruktur (auch: Verzeichnisbaum) ist eine logische Gestalt der Dateisysteme, die über Verzeichnisse verfügen. Meist ist es eine Baumstruktur, die bei einer Wurzel beginnt und sich dann beliebig verzweigt. In jeder Ebene des Baumes können sowohl Dateien als auch Verzeichnisse liegen, letztere bilden die nächste Ebene des Baumes. Name und Position jeder Datei kann durch eine entsprechende Pfadangabe bezeichnet werden, die an der Wurzel beginnt und alle zu durchlaufenden Verzeichnisse auflistet.
Festgelegte Verzeichnisstrukturen vereinfachen den Dateienaustausch zwischen Rechnern.
Die Linux-Gemeinde begann schon im Herbst 1993 an der Standardisierung der Verzeichnisstruktur. Ziel war es, portierte Software von fremden Unix-Varianten mit möglichst wenig Aufwand in jeder Linux-Distribution einzusetzen. Dem Projekt FSSTND (Filesystem Standard) folgte der Filesystem Hierarchy Standard / FHS, der noch heute die Vorgaben für alle Distributionen setzt.
Jeder Linux/Unix-Rechner benötigt einen bestimmten Kern von Dateien und Verzeichnissen. Selbst wenn er alle weiteren Dateien (etwa über NFS) aus dem Netz holt, muss dieser Bereich während dem Bootvorgang zur Verfügung stehen. Diese Dateien liegen oft auf einer eigenen Bootpartition im sogenannten Bootbereich; hier liegt also ein komplett gebrauchsfertiges Unix-System. Hier sollte auch alles liegen, was der Administrator für die Wiederherstellung von Dateien aus einer Sicherung benötigt. Dazu gehört eine Shell einschliesslich aller benötigten Bibliotheken, ein Texteditor sowie Software zum Zugriff auf Systembestandteile (z. B. fdisk, mkfs und mount); eine vollständige Liste findet sich in der Spezifikation des FHS.
Als Faustregel sollten 20% des Dateisystems immer frei sein. Zur sauberen Trennung sollten eigene Partitionen für folgende Bereiche eingerichtet werden.
Bereich | Grösse | Beschreibung |
---|---|---|
/ | etwa 80 MB | nur statische Daten |
/tmp | etwa 50 MB | |
/var | etwa 100 MB | |
/usr | etwa 200 MB | Dazu ein separates Verzeichnis "/usr/local". |
/home | ||
/usr/local | ||
swap | RAM x 2 | Etwa entsprechend der doppelten Grösse des vorhandenen Arbeitsspeichers. Bei zwei vorhandenen Festplatten sollte der Swap-Bereich immer auf die zweite Platte, ansonsten nach Möglichkeit ans Ende der Platte. |
Üblicherweise sind folgende Verzeichnisse vorhanden.
Verzeichnis | Beschreibung |
---|---|
/ | Das Wurzelverzeichnis (auch: Root-Verzeichnis). Viele Dienstprogramme (daemons) verwenden es als Arbeitsverzeichnis. Produziert ein solcher Dienst einen Core-Dump, so darf dieser auf keinen Fall das Root-Dateisystem füllen. Ein Root-Dateisystem mit weniger als 15 MB freiem Platz sollte deshalb unbedingt "read-only" eingehängt werden. |
/bin | Wichtige Programme. |
/boot | Hier lagern auf einem modernen Linux-System der Linux-Kernel, ein RAM-Disk-Image mit essentiellen Kernelmodulen sowie die Konfigurationsdateien des Bootloaders (GRUB oder Lilo). Zwar gehören diese Dateien zum Kern eines Linux-Systems, sie müssen aber nicht unbedingt auf der Partition mit dem Root-Verzeichnis liegen. |
/dev | Gerätedateien. Diese Dateien sind Knoten zu einem normalerweise physikalischen Gerät wie Festplatte, Drucker oder Modem. Diese Knoten sind Kommunikationspunkte mit den Gerätetreibern; die Treiber selber werden von Fall zu Fall modular hinzugeladen. Die Knoten werden mit dem Befehl mknod erstellt. Unter Linux ist das Anlegen neuer Spezialdateien auch mit dem Skript "/dev/MAKEDEV" möglich. Die Benennung der Gerätedateien ist je nach Unix-Version verschieden.
Ansehen der Gerätedateien im Verzeichnis "/dev". Die beiden Zahlen vor dem Datum bezeichnen die durch den Hersteller bestimmte "major number" bzw. "minor number". $ ls -lL /dev insgesamt 56 crw-rw---- 1 root audio 14, 14 2008-11-02 11:17 admmidi crw-rw----+ 1 root audio 14, 12 2008-11-02 11:17 adsp crw-rw---- 1 root video 10, 175 2008-11-02 11:17 agpgart ... Neuanlegen eines zeichenorientierten ("c") Geräts. $ mknod /dev/tty/c c <majorNumber> <minorNumber> |
/etc | Konfigurationsdaten für System und Anwendungen (z. B. Apache, Samba). Hier findet sich alles, was beim Systemstart oder -stop geschieht, welche Benutzer dem System bekannt sind, welche Partitionen eingehängt werden usw.
|
/home | Die Heimatverzeichnisse der Benutzer (diese liegen auf BSD-Systemen unter "/usr/home"). In lokalen Netzen koppeln Administratoren dieses Verzeichnis oft mit einem Automounter, der das jeweils benötigte Verzeichnis dynamisch von einem Dateiserver holt, sobald der Benutzer sich anmeldet. |
/lib | Systembibliotheken und Kernelmodule. |
/media | Einhängepunkt für einige weitere Dateisysteme. Wechselmedien erhalten eigene Verzeichnisse, z. B. "/media/floppy" oder "/media/cdrom". Befindet sich z. B. keine CD-ROM im Laufwerk, so ist auch das Verzeichnis "/media/cdrom/" leer. |
/media | Einhängepunkt für vorübergehend benötigte Dateisysteme, etwa bei der Reparatur eines Rechners oder beim kurzfristigen Zugriff auf ein Netzwerkdateisystem. |
/proc | Ein virtuelles Dateisystem. Angelegt durch den Linux-Kernel existiert es nur im Arbeitsspeicher. Die enthaltenen Informationen betreffen das laufende System: Prozesse, Zustände, Belegungen usw. Dieses Dateisystem stellt Kernelvariablen bereit, etwa für die Konfiguration einer Netzwerkschnittstelle oder von USB-Geräten.
Informationen zum aktuellen Prozessor. $ cat /proc/cpuinfo |
/root | Heimatverzeichnis von Benutzer "root". |
/run | Vom System für das Starten Diensten und Ressourcen benötigte Dateien. |
/sbin | Wichtige Systemprogramme. |
/tmp | Temporäre Dateien. |
/usr | Hier versammelt sich meist der Hauptteil der Anwendungen, sodass das Verzeichnis oft recht gross ist. Hier sind viele auch im Verzeichnis "/" vorhandene Verzeichnisse enthalten.
Das Verzeichnis "/usr/etc" darf laut FHS nicht existieren - die Konfigurationsdaten aller Programme landen in "/etc". "/usr" enthält zudem eine Reihe weiterer Unterverzeichnisse:
Ohne die Werkzeuge der Distribution installierte Programme werden üblicherweise unter "/usr/local" abgelegt. Ein privat erstelltes Skript findet in "/usr/local/bin" seinen Platz. Die zugehörige Dokumentation findet sich unter "/usr/local/man". Es bietet sich zudem an, "/usr/local" genau wie "home" als eigene Partition anzulegen. Nach einem Wechsel der Distribution reicht dann ein einfacher Einhängebefehl oder eine Ergänzung in der Datei "/etc/fstab" und die eigenen Dateien stehen wieder zur Verfügung. Zusätzliche Software darf - um dem FHS zu entsprechen - ausser in "/usr" auch in "/opt" landen. Während "/usr" die Dateien nach Funktionen gliedert (Binaries liegen in "/usr/bin", Bibliotheken in "/usr/lib"), sortiert "/opt" die Dateien nach dem Hersteller oder dem Softwarepaket. Ein extremes Beispiel dafür für diese systemübergreifende Konvention ist Solaris mit seinen zahlreichen "/opt/SUNW*"-Paketen. Unter Linux finden sich oft Installationen mit "/opt/kde3" oder "/opt/gnome". Die Dateien unter "/usr" und "/opt" ändern sich naturgemäss selten, da nur die Installation zusätzlicher Software Veränderungen verursacht. Es bietet sich darum an, diese beiden Verzeichnisse nach der Initialisierung nur lesbar (read-only) einzuhängen, um versehentliche oder absichtliche Veränderungen zu unterbinden. Bei einer Sicherung ist Vollständigkeit wichtig - eine tägliche Sicherung von Bereichen, die sich nur selten ändern ist jedoch meist überflüssig. |
/var | Variable Daten. Ein laufendes Betriebssystem produziert eine Vielzahl sich schnell ändernder Daten, die üblicherweise hierhin geschrieben werden. Dieses Verfahren trennt die veränderlichen Dateien von der nur lesbar eingehängten "/usr"-Partition. Wichtige Verzeichnisse sind:
Vor allem Protokolldaten können abhängig von der Auslastung des Systems schnell zu einer erheblichen Grösse anwachsen. Befinden sich solche Dateien auf der Hauptpartition und sie laufen über, stürzt der Rechner in eine Reihe bizarrer Fehlfunktionen ab, weil Programme benötigte temporäre Dateien nicht mehr anlegen können. "/var" sollte deshalb auf einer eigenen Partition untergebracht werden. Um beispielsweise Exploits bei E-Mail-Benutzern zu verhindern, kann der Befehl quota verwendet werden. Auch die Datenverzeichnisse von Diensten (z. B. eines HTTP- oder FTP-Servers) erhalten meist ein eigenes Verzeichnis. Der Umgang mit diesen Einhängepunkten unterscheidet sich unter den Distributionen stark. Der FHS schreibt vor, dass solche Daten in einem gesonderten Verzeichnis "/srv" liegen sollen. SUSE hält sich daran und lässt die Document Root von Apache in der Voreinstellung auf "/srv/www" zeigen. Debian und andere Distributionen dagegen verwenden "/var/www". Das Dateiverzeichnis des FTP-Daemon liegt oft in "/home/ftp". |
Weblinks
Herausgeber | Sprache | Webseitentitel | Anmerkungen |
---|---|---|---|
Wikipedia | ger | Verzeichnisstrukturwbm | Enzyklopädischer Artikel |