222 lines
10 KiB
TeX
222 lines
10 KiB
TeX
|
% <#>-----------------------------------------------------------------------<#>
|
||
|
\section{Verzeichnisstrukturen}%
|
||
|
\label{sec:verzeichnisstrukturen}
|
||
|
|
||
|
Das Konzept der Verzeichnisstruktur von Unix-artigen Betriebssystemen ist
|
||
|
annähernd identisch. Es gibt jedoch Besonderheiten zwischen den einzelnen
|
||
|
Abspaltungen von Unix hinsichtlich Linux und BSD, als auch der jeweiligen
|
||
|
Distributionen und Abspaltungen: Debian, RHEL, OpenBSD etc. Da jedoch die
|
||
|
Vielfalt zu groß für dieses Kapitel wäre, werden diese hier nicht näher
|
||
|
behandelt.
|
||
|
|
||
|
% >---------------------------------------------------------------------------<
|
||
|
\subsection{/ (root directory, Wurzelverzeichnis)}%
|
||
|
\label{sec:verzeichnisstrukturen.root}
|
||
|
|
||
|
% NOTE: Missing reference to chapter where devices will be mounted
|
||
|
Das Wurzelverzeichnis \textit{/} ist die oberste Verzeichnisebene. Es enthält
|
||
|
alle weiteren Unterverzeichnisse und Dateien unabhängig, ob diese sich auf einem
|
||
|
physikalisch anderen Gerät befinden. Dazu später mehr.
|
||
|
|
||
|
% >---------------------------------------------------------------------------<
|
||
|
\subsection{/bin/}%
|
||
|
\label{sec:verzeichnisstrukturen.bin}
|
||
|
|
||
|
Systemrelevante Programme, beispielsweise jene, welche Bestandteil der GNU Core
|
||
|
Utility Collection sind werden in dem Verzeichnis \textit{/bin/} gespeichert.
|
||
|
Dies sind zum Beispiel \textit{chmod}, \textit{chown}, \textit{chgrp},
|
||
|
\textit{id}, \textit{cp}, \textit{mv} oder \textit{rm}. Im Regelfall sind alle
|
||
|
Programme, welche notwendig sind das System erfolgreich zu booten im Verzeichnis
|
||
|
\textit{/bin/} hinterlegt.
|
||
|
|
||
|
% >---------------------------------------------------------------------------<
|
||
|
\subsection{/boot/}%
|
||
|
\label{sec:verzeichnisstrukturen.boot}
|
||
|
|
||
|
In dem Verzeichnis \textit{/boot/} befindet sich der Linux Kernel. Der Linux
|
||
|
Kernel wird als Datei gespeichert. Im Dateinamen aller unterschiedlichen
|
||
|
Kernelversionen befindet sich in der Regel die folgende Zeichenkette, wenn je
|
||
|
nach Distribution diese nicht überschrieben wurde: \textit{vmlinux}.
|
||
|
|
||
|
% NOTE: Missing reference to chapter where linux system will be booted
|
||
|
Neben dem Kernel befindet sich in dem Verzeichnis passend zu den installierten
|
||
|
Kernelversionen noch die Datei \textit{initramdisk}. Sie wird in den
|
||
|
\acrshort{acr:ram} während des Bootvorgangs geladen und startet den Kernel. Mehr
|
||
|
zum Bootvorgang unter Linux in einem späteren Kapitel.
|
||
|
|
||
|
% >---------------------------------------------------------------------------<
|
||
|
\subsection{/boot/EFI/}%
|
||
|
\label{sec:verzeichnisstrukturen.efi}
|
||
|
|
||
|
Das Verzeichnis \textit{/boot/EFI} ist ausschließlich bei Systemen vorhanden,
|
||
|
welches statt der \acrshort{acr:bios} Bootmethode \acrshort{acr:uefi} verwendet.
|
||
|
Das Verzeichnis beinhalter die unterschiedlichen Bootloader. Beispielweise den
|
||
|
von Windows, GRUB oder systemd-boot.
|
||
|
|
||
|
Ratsam ist es daher das Verzeichnis \textit{/boot/EFI} als seperate Partition zu
|
||
|
behandeln, sodass wenn mehrere Systeme installiert sind ein und die selbe EFI
|
||
|
Partition verwendet werden kann. Dies hat den Vorteil, dass ausschließlich eine
|
||
|
Partition in der Firmware des Motherboards angeben werden muss, damit die
|
||
|
Firmware die entsprechenden Bootloader von den jeweiligen Systemen findet.
|
||
|
|
||
|
% >---------------------------------------------------------------------------<
|
||
|
\subsection{/dev/}%
|
||
|
\label{sec:verzeichnisstrukturen.dev}
|
||
|
|
||
|
Physische als auch virtuelle Peripheriegeräte, beispielsweise die physisch
|
||
|
verbaute oder dem Gastsystem zugewiesene virtuelle Festplattte, werden neben
|
||
|
anderen Geräten im Verzeichnis \textit{/dev/} als Datei abgebildet. Siehe
|
||
|
Kapitel
|
||
|
\ref{sec:benutzer-gruppen-und-berechtigungen.dateiberechtigungen.einfach}, um
|
||
|
aus der Attributszeichenkette erkennen zu können, bei welcher Datei es sich um
|
||
|
ein Blockdevice handelt.
|
||
|
|
||
|
Auf diese speziellen Dateien kann anschließend mit anderen Programmen
|
||
|
zugegriffen werden. Beispielsweise das Einbinden eines Blockgerätes (Festplatte)
|
||
|
an einen beliebigen Einbindungspunkt - siehe \textit{mount} Befehl.
|
||
|
|
||
|
% >---------------------------------------------------------------------------<
|
||
|
\subsection{/etc/}%
|
||
|
\label{sec:verzeichnisstrukturen.etc}
|
||
|
|
||
|
In dem Verzeichnis \textit{/etc/} sind Konfigurationsdateien von Programmen
|
||
|
enthalten. Im Regelfall werden diese durch die Entwickler bereitgestellt.
|
||
|
Beispielsweise durch Installation des entsprechenden \acrshortpl{acr:rpm}.
|
||
|
|
||
|
Sind keine Konfigurationsdateien für ein Programm im Verzeichnis \textit{/etc/}
|
||
|
vorhanden. Können diese auch unter \textit{/usr/} gespeichert sein. Ein
|
||
|
manuelles platzieren der Konfigurationsdateien unter \textit{/etc/} würde das
|
||
|
Standardverhalten des Programms übersteuern.
|
||
|
|
||
|
% >---------------------------------------------------------------------------<
|
||
|
\subsection{/home/}%
|
||
|
\label{sec:verzeichnisstrukturen.home}
|
||
|
|
||
|
Es ist das Standardverzeichnis für normale bzw. reale Benutzer. Dieses
|
||
|
Verzeichnis wird manchmal auch mit anderen Linux-Distributionen geteilt, sofern
|
||
|
das gleiche Heimatverzeichnis von mehreren Benutzern unterschiedliche
|
||
|
Distributionen verwendet werden soll.
|
||
|
|
||
|
% >---------------------------------------------------------------------------<
|
||
|
\subsection{/lib/}%
|
||
|
\label{sec:verzeichnisstrukturen.lib}
|
||
|
|
||
|
Bibliotheken, welche gemeinsam durch mehrere Programme, welche sich in den
|
||
|
Verzeichnissen \textit{/bin/} und \textit{/sbin} befinden, geteilt werden,
|
||
|
werden im Verzeichnis \textit{/lib} gespeichert.
|
||
|
|
||
|
% >---------------------------------------------------------------------------<
|
||
|
\subsection{/media/}%
|
||
|
\label{sec:verzeichnisstrukturen.media}
|
||
|
|
||
|
In dem Verzeichnis \textit{/media/} werden entfernbare Dateisysteme eingebunden.
|
||
|
Beispielsweise der USB-Stick, eine USB-Festplatte oder eine CD bzw. DVD, welche
|
||
|
sich im Laufwerk befindet.
|
||
|
|
||
|
Desktopmanager wie Gnome, Cinnamon, Xfce oder KDE übernehmen hier die Funktion,
|
||
|
das Gerät automatisch unter \textit{/media/} einzubinden.
|
||
|
|
||
|
% >---------------------------------------------------------------------------<
|
||
|
\subsection{/mnt/}%
|
||
|
\label{sec:verzeichnisstrukturen.mnt}
|
||
|
|
||
|
Andere Systempartitionen, beispielsweise die C: oder D: Partition von
|
||
|
Windowssystemen auf einem Dualboot System, werden unter \textit{/mnt/}
|
||
|
eingebunden. Im Regelfall auch nur temporär, beispielsweise wenn der
|
||
|
Systemadministrator versucht unter Linux auf die Windowspartitionen zu
|
||
|
zugreifen.
|
||
|
|
||
|
% >---------------------------------------------------------------------------<
|
||
|
\subsection{/opt/}%
|
||
|
\label{sec:verzeichnisstrukturen.opt}
|
||
|
|
||
|
Das Verzeichnis \textit{/opt} ist das Standardverzeichnis für proprietäre
|
||
|
Programme und steht für \textit{optional package tree}. In diesem Verzeichnis
|
||
|
legen daher im Regelfall proprietäre Programme Binär-, Konfigurations-, und
|
||
|
Bibliotheksdateien ab.
|
||
|
|
||
|
Beispielsweise, wenn man einen TeamSpeak 3 Server oder Druckertreiber von
|
||
|
Brother installieren möchte, werden diese unter \textit{/opt} installiert.
|
||
|
|
||
|
% >---------------------------------------------------------------------------<
|
||
|
\subsection{/root/}%
|
||
|
\label{sec:verzeichnisstrukturen.root}
|
||
|
|
||
|
Der Benutzer \textit{root} besitzt sein eigenes Heimatverzeichnis direkt
|
||
|
unterhalb des Wurzelverzeichnisses. Es ist das Verzeichnis \textit{/root/}. Es
|
||
|
wird gesondert geführt und ausschließlich der Benutzer \textit{root} besitzt
|
||
|
Berechtigungen von dem Verzeichnis zu lesen und zu schreiben als auch es
|
||
|
betreten zu können.
|
||
|
|
||
|
% >---------------------------------------------------------------------------<
|
||
|
\subsection{/run/}%
|
||
|
\label{sec:verzeichnisstrukturen.run}
|
||
|
|
||
|
Programme, welche ausgeführt werden und Informationen auslagern speichern diese
|
||
|
im Verzeichnis \textit{/run/}. Dies können beispielsweise Unix-Sockets oder auch
|
||
|
temporäre Einstellungsparameter sein, welche nur zur Laufzeit des Programms
|
||
|
vorhanden sind.
|
||
|
|
||
|
Die Dateien werden nicht im Verzeichnis \textit{/tmp/} gespeichert, da Dateien
|
||
|
und Verzeichnisse unter \textit{/tmp/} automatisch entfernt werden können.
|
||
|
Beispielsweise, wenn das System bemerkt der Speicherplatz geht zur Neige.
|
||
|
|
||
|
Der Dienst \textit{systemd-resolved} speichert als gutes Beispiel unter
|
||
|
\textit{/run/systemd/resolve/resolv.conf} die \textit{resolv.conf} Datei ab,
|
||
|
welche von \textit{/etc/resolv.conf} per symbolischen link referenziert wird.
|
||
|
|
||
|
% >---------------------------------------------------------------------------<
|
||
|
\subsection{/sbin/}%
|
||
|
\label{sec:verzeichnisstrukturen.sbin}
|
||
|
|
||
|
Das Verzeichnis \textit{/sbin} ist identisch zu dem Verzeichnis \textit{/bin}.
|
||
|
Es enthält jedoch ausschließlich Programme welche für den Benutzer \textit{root}
|
||
|
vorgesehen sind.
|
||
|
|
||
|
% >---------------------------------------------------------------------------<
|
||
|
\subsection{/srv/}%
|
||
|
\label{sec:verzeichnisstrukturen.srv}
|
||
|
|
||
|
Stellt das System beispielsweise Mail-, Web- oder andere Dienste bereit, werden
|
||
|
die persistenten Daten unter \textit{/srv/} gespeichert. Dieses Verzeichnis ist
|
||
|
nicht automatisch Bestandteil jeder Distribution. Es kann daher sein, das gerade
|
||
|
bei Distributionen, welche einen minimalistischen Ansatz fahren nicht vorhanden
|
||
|
ist.
|
||
|
|
||
|
% >---------------------------------------------------------------------------<
|
||
|
\subsection{/tmp/}%
|
||
|
\label{sec:verzeichnisstrukturen.tmp}
|
||
|
|
||
|
Das \textit{/tmp/} Verzeichnis ist der generelle Speicherort für temporäre
|
||
|
Dateien. Ältere Systeme verwenden eine eigene Partition für das Verzeichnis
|
||
|
\textit{/tmp/}, um die Größe zu limitieren. Neuere Systeme, welche systemd
|
||
|
verwenden, richten das Verzeichnis \textit{/tmp/} als
|
||
|
\nameref{sec:dateisysteme.tmpfs}
|
||
|
Dateisystem ein und limitieren dieses auf eine prozentuale Größe.
|
||
|
|
||
|
% >---------------------------------------------------------------------------<
|
||
|
\subsection{/usr/}%
|
||
|
\label{sec:verzeichnisstrukturen.usr}
|
||
|
|
||
|
Anwendungen und Dateien die von realen Benutzern verwendet werden, werden im
|
||
|
Gegensatz zu Anwendungen und Dateien welche vom System verwendet werden, unter
|
||
|
\textit{/usr/} gespeichert. Aus diesem Grund sind unterhalb von \textit{/usr/}
|
||
|
auch Verzeichnisse wie \textit{/usr/bin}, \textit{/usr/sbin} oder
|
||
|
\textit{/usr/lib} enthalten. Alle Unterverzeichnisse von \textit{/usr/} sind für
|
||
|
Benutzer nur lesbar und betretbar. Dateien sind in der Regel ebenfalls nur
|
||
|
lesbar eventuell noch ausführbar.
|
||
|
|
||
|
% >---------------------------------------------------------------------------<
|
||
|
\subsection{/var/}%
|
||
|
\label{sec:verzeichnisstrukturen.var}
|
||
|
|
||
|
Der Grundgedanke des Verzeichnisses \textit{/var/} ist, dass es das Gegenstück
|
||
|
zu \textit{/usr/} abbilden soll. Hier können Benutzer beliebig Dateien oder
|
||
|
Verzeichnisse erstellen. Allerdings sind können diese Eingeschränkt sein.
|
||
|
|
||
|
Ein gutes Beispiel sind Logdateien. Würden Logdateien eines Programms, welche
|
||
|
aus dem Verzeichnis \textit{/usr/bin} oder \textit{/usr/sbin} ausgeführt werden,
|
||
|
in das Verzeichnis \textit{/usr/} speichern, würde dies gegen das Konzept des
|
||
|
Verzeichnisses \textit{/usr/} sprechen. Aus diesem Grund werden Logdateien in
|
||
|
das Verzeichnis \textit{/var/log} gespeichert.
|