Wo ist was im Linux-System

Aus Synology Wiki
Dies ist die bestätigte sowie die neueste Version dieser Seite.

Auf einem Synology NAS läuft ein ganz normales Linux. Ganz normal? Fast!

Wenn man sich mit einem Terminalprogramm auf der Konsole des DiskStation Managers einloggt (anmeldet), kann man sich mit der Login-Shell (Kommandozeile) unterhalten. Vor der Einführung des DiskStation Manager 6 wurde hier die BusyBox mit ash (Almquist Shell) verwendet, mit der Einführung von DiskStation Manager 6 wurde auf bash (Bourne-Again Shell) umgestellt. bash versteht eine Menge Kommandos (Commands, Befehle zum Aufrufen von Shell-Funktionen und Programmen).

Wenn im DSM der Benutzer-Home-Dienst unter DSM-Hauptmenü > Systemsteuerung > Benutzer und Gruppe > Registerkarte Erweitert > Benutzerbasis > Kontrollkästchen Benutzer-Home-Dienst aktivieren aktiviert wurde, positioniert die Shell bei der Anmeldung des Benutzers im Terminal auf sein Home-Directory (Heimat-Verzeichnis). Den Pfad und Namen dieses Directories kann man sich mit dem Kommando pwd (print working directory) anzeigen lassen.

MyUser@SynologyNAS:~$ pwd
/var/services/homes/MyUser

Das Home-Directory (Heimat-Verzeichnis) des Systembenutzers root befindet sich jedoch im Verzeichnis /root.

root@SynologyNAS:~$ pwd
/root

Aber das nur am Rande. Weitere Informationen zum Thema Benutzer-Home-Dienst findest du in dem Artikel "Einrichtung und Besonderheiten des Benutzer-Home-Dienstes"

DSM (DiskStation Manager) 6 und neuer

Mit der Einführung des DiskStation Manager 6 wurde die BusyBox endgültig abgeschafft und bash (Bourne-Again Shell) als Standard-Kommandozeilenschnittstelle (CLI) implementiert. Des Weiteren gab es einige Änderungen bzw. Anpassungen der grundlegenden Verzeichnisstruktur.

Mit dem Kommando cd / (change directory) positioniert man sich auf die Wurzel (root) des Dateisystems (File-Systems).

Mit dem Kommando ls (list directory sorted) lässt sich eine Liste der Dateien und Unterverzeichnisse erzeugen. Schöner wird diese Liste durch Hinzufügen der Kommando-Option -l, also ls -l oder abgekürzt ll (= LL kleingeschrieben). Führt man den Befehl ls -l aus, erhält man eine Übersichtsliste, die der folgenden ähnlich ist:

root@SynologyNAS:~# cd /
root@SynologyNAS:/# ls -l
total 44
lrwxrwxrwx   1 root root     7 Sep 11 18:46 bin -> usr/bin
drwxr-xr-x   7 root root     0 Feb  4 17:37 config
drwxr-xr-x  16 root root 14000 Feb 24 03:14 dev
drwxr-xr-x  50 root root  4096 Feb 16 16:56 etc
drwxr-xr-x  43 root root  4096 Feb  4 17:37 etc.defaults
drwxr-xr-x   2 root root  4096 Sep  5 08:35 initrd
lrwxrwxrwx   1 root root     7 Sep 11 18:46 lib -> usr/lib
lrwxrwxrwx   1 root root     9 Sep 11 18:46 lib32 -> usr/lib32
lrwxrwxrwx   1 root root     7 Sep 11 18:46 lib64 -> usr/lib
drwx------   2 root root  4096 Sep  5 08:35 lost+found
drwxr-xr-x   2 root root  4096 Sep  5 08:35 mnt
drwx--x--x   3 root root  4096 Sep 11 18:48 opt
dr-xr-xr-x 396 root root     0 Mar  1  2019 proc
drwx------   8 root root  4096 Feb 12 16:43 root
drwxr-xr-x  55 root root  2860 Feb 26 16:36 run
lrwxrwxrwx   1 root root     8 Sep 11 18:46 sbin -> usr/sbin
dr-xr-xr-x  12 root root     0 Feb  4 17:36 sys
drwxrwxrwt  27 root root  2280 Feb 26 16:36 tmp
drwxr-xr-x  12 root root  4096 Jan 20 09:05 usr
drwxr-xr-x  15 root root  4096 Feb  4 17:37 var
drwxr-xr-x  12 root root  4096 Sep 11 18:47 var.defaults
drwxr-xr-x   1 root root   662 Feb  4 17:37 volume1
drwxr-xr-x   3 root root  4096 Feb  4 17:37 volumeUSB1

Wozu gibt es diese Struktur? Was ist nun in den jeweiligen Directories enthalten? Das sind die brennende Fragen. Die Struktur ist hierarchisch, dient der Übersichtlichkeit und gibt es seit der dritten Unix-Version, die 1973 geschrieben wurde. Am Anfang war sie noch sehr schlicht: Es gab nur /bin, /dev, /etc, /tmp, /lib und /usr. Mitte der 90er Jahre ist sie standardisiert worden (POSIX) und ist in fast jedem modernen Betriebssystem vorhanden (sogar in Windows wird sie eingerichtet, wenn man die Unix-Tool-Suite für Windows von Microsoft installiert).

/ root
/bin binaries - Verzeichnis, in dem alle Programme stehen, die von den Benutzern ausgeführt werden dürfen
/config
/dev devices - Gerätedateien = symbolische Namen für die Treiberendpunkte der Geräte
/etc et cetera - alle wichtigen Konfigurationsdateien des Betriebssystems
/etc.defaults die originalen Konfigurationsdateien des Betriebssystems
/initrd (leer) enthält während des Bootens (Startphase) das initialisierende root-directory, welches später zu / wird
/lib libraries - alle wichtigen Standard-Funktionen der Programme, die, da sie wiederverwendbar sind, in sogenannten libraries (Bibliotheken) ausgelagert sind
/lib32
/lib64
/lost+found wird als Directory vom fsck (file-system-check) genutzt, falls verwaiste Blöcke gefunden werden, werden sie hier abgelegt
/mnt mount point - Standard-Mount-Verzeichnis. Ist meist leer. Kann aber für temporäre Mounts benutzt werden. Was ist Mounten? Mounten ist die Verknüpfung zweier Dateisysteme unter Linux.
/opt optional packages - wird durch die Installation des ipkg (Itsy Package Management System) angelegt und enthält die optional hinzugeladenen Programme und Dateien. Ist eine Verknüpfung auf das Verzeichnis /volume1/opt (mount --bind /volume1/opt /opt).
/proc virtuelles Dateisystem, welches ein allgemeines Interface (Schnittstelle, die sich wie ein Dateisystem verhält) zu Kernel und Prozess-Informationen ist
/root Home-Directory des Benutzers root (Systemadministrator)
/run
/sbin system binaries - Verzeichnis, in dem alle Programme stehen, die spezielle Privilegien benötigen um ausgeführt werden zu dürfen, Systemverwaltungsprogramme, Daemon-Programme (=Server-Programme, Dienste)
/sys virtuelles Dateisystem, welches ein allgemeines Interface (Schnittstelle, die sich wie ein Dateisystem verhält) zu Kernel-Einstellungen ist. Hier kann man zur Laufzeit Werte abfragen, aber auch setzen bzw. ändern.
/tmp virtuelles Dateisystem für temporäre Dateien (werden nicht auf der Platte gespeichert). Ist standardmäßig 50% des RAMs groß. Da es im virtuellen Speicher liegt, kann es ausgelagert werden (swap). Wird u.a. benutzt für die Interprozeß-Kommunikation (ähnlich shared Memory).
/usr Directory der User-Verzeichnisse. Hier werden auch die Programme und Einstellungen der Anwendungen abgelegt. Unter Anwendung versteht man die Programme, die nicht direkt zum Linux-Betriebssystem gehören. Ein wenig schwammige Abgrenzung, weil darunter auch die Benutzeroberflächen fallen und viele andere Programme, die man heut zu Tage eher zum Betriebssystem zählen würde
/var various - Verzeichnis, in dem alle Hilfs- oder Protokoll-Dateien liegen.
/var.defaults Verzeichnis, das die Struktur für den Aufbau des various-Verzeichnisse enthält
/volume1 Dateisystem-Mount-Point für die Datenpartition der Platte 1 (bei RAID, des ersten DatenRAIDs)
/volumeUSB1 Dateisystem-Mount-Point für die erste Partition des externen USB-Laufwerks

DSM (DiskStation Manager) 5 und älter

Vor der Einführung des DiskStation Manager 6 wurde das Open-Source-Projekt BusyBox verwendet, um grundlegende UNIX/Linux-Befehle über ash (Almquist Shell) bereitzustellen, die sich in der Verzeichnisstruktur des DSM im Verzeichnis /linuxrc befanden.

lrwxrwxrwx    1 root     root           11 Aug 13 20:58 linuxrc -> bin/busybox

Nachfolgend eine kurze Beschreibung der Arbeitsweise

/ root
/linuxrc rc = run commands = Datei mit automatischen Startprogrammen. Ist hier ein Link auf die BusyBox, die sich so als init-Prozess startet. Sie besitzt eine eingebaute Liste der Aktivitäten (inittab), die während der Initialisierungsphase ausgeführt werden müssen. Dies wird bei anderen Unix-/Linux-Systemen oft durch eine externe Datei namens /etc/inittab vorgegeben. Für den init-Prozess der BusyBox gilt die Regel: fehlt die externe inittab, wird die intern eingebaute inittab verwendet.