Wo ist was im Linux-System
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. |