Softlink
Softlink - Zeiger auf einen anderen Punkt im Dateisystem (symbolic link)
Beschreibung
Softlinks werden auch als symbolische Links bezeichnet
- Ein Softlink ist im Prinzip ein Zeiger, der auf eine Datei zeigt
- Er belegt nur wenig Speicherplatz auf dem Datenträger, auf dem er angelegt wurde
- Die Besonderheiten eines Softlinks sind
- Er kann sowohl auf Dateien als auch auf Verzeichnisse verweisen
- Er kann auf Dateien und Verzeichnisse einer anderen oder der Partition angewandt werden, auf der er sich selbst befindet
- Er verwendet die Dateiberechtigungen der Zieldatei und ist deshalb immer mit Lese-, Schreib- und Ausführungsrechten versehen
- Ein Softlink bleibt bestehen, wenn die Zieldatei gelöscht wird
- Man bezeichnet einen solchen verwaisten Link auch als gebrochenen Link
Anwendung
Die folgenden kommentierten Kommandos demonstrieren das Verhalten von Softlinks
Softlink erstellen
Das erste Kommando ln-s erzeugt einen Softlink mit der Bezeichnung
- softlink,der auf die existierende Datei file1 verweist
- Mit dem zweiten Kommando wird das Ergebnis der Aktion überprüft
sudo ln -s file1 softlink
sudo ls -l
total 44
drwxr-xr-x 2 root root 4096 Jan 2 18:00
drwxr-xr-x 24 root root 4096 Jan 2 17:55
-rw-r--r-- 1 root root 35184 Jan 2 17:55 file1
lrwxrwxrwx 1 root root 5 Jan 2 18:00 softlink -> file1
Die erste Spalte der letzten Zeile des Kommandos ls-l zeigt an, dass es sich um einen Link handelt
- Beachten Sie bitte auch, dass in der Zugriffssteuerungsliste alle Rechte gesetzt sind
Wenn Sie nun den Modus dieses Links verändern, ändert sich stattdes-sen der Modus der Zieldatei
sudo chmod a+w softlink
sudo ls -l
total 44
drwxr-xr-x 2 root root 4096 Jan 2 18:00
drwxr-xr-x 24 root root 4096 Jan 2 17:55
-rw-rw-rw- 1 root root 35184 Jan 2 17:55 file1
lrwxrwxrwx 1 root root 5 Jan 2 18:00 softlink -> file1
Das erste Kommando fügt zu softlink Schreibrechte für alle hinzu
- Diese Rechte werden aber stattdessen der Datei file1 hinzugefügt,wie Sie sehen.Es gibt mehrere Methoden, sich die Auswirkungen von Links anzusehen
Mit dem Kommando ls-li kann z. B. nachgewiesen werden, dass die Zieldatei und der Softlink zwei verschiedene Inodes verwenden
sudo ls -li
total 44
1896834 drwxr-xr-x 2 root root 4096 Jan 2 18:00
2 drwxr-xr-x 24 root root 4096 Jan 2 17:55
1896921 -rw-rw-rw- 1 root root 35184 Jan 2 17:55 file1
1896920 lrwxrwxrwx 1 root root 5 Jan 2 18:00 softlink -> file1
Die Datei file1 verwendet den Inode 1896921, während der Softlink softlink den Inode 1896920 belegt
Mit dem Kommando stat kann Ähnliches nachgewiesen werden
sudo stat softlink
File: `softlink' -> `file1'
Size: 5 Blocks: 0 IO Block: 4096 symbolic link
Device: 302h/770d Inode: 1896920 Links: 1
Access: (0777/lrwxrwxrwx) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2017-01-02 18:26:45.000000000 +0100
Modify: 2017-01-02 18:00:07.000000000 +0100
Change: 2017-01-02 18:00:07.000000000 +0100
In der zweiten Zeile der Kommandoausgabe wird angezeigt, dass es sich um einen symbolischen Link handelt
- Die Zugriffsrechte sind auch noch einmal deutlich dargestellt
- Wenden Sie dasselbe Kommando auf die Zieldatei des Links an, ergibt sich folgendes Bild
sudo stat file1
File: `file1'
Size: 35184 Blocks: 72 IO Block: 4096 regular file
Device: 302h/770d Inode: 1896921 Links: 1
Access: (0666/-rw-rw-rw-) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2017-01-02 17:55:38.000000000 +0100
Modify: 2017-01-02 17:55:38.000000000 +0100
Change: 2017-01-02 18:01:03.000000000 +0100
Die zweite Zeile besagt, dass es sich um eine gewöhnliche Datei handelt
- Auch hier sieht man deutlich, dass die Zieldatei und der Softlink zwei verschiedene Inodes verwenden
Mit den nächsten Kommandos wird demonstriert, was geschieht, wenn Sie die Zieldatei eines symbolischen Links löschen, den Link selbst aber nicht
sudo rm file1
Die Zieldatei ist nun gelöscht
sudo ls -l
total 8
drwxr-xr-x 2 root root 4096 Jan 2 18:40
drwxr-xr-x 24 root root 4096 Jan 2 17:55
lrwxrwxrwx 1 root root 5 Jan 2 18:00 softlink -> file1
Der Softlink ist, wie Sie sehen, bestehen geblieben
- Wenn Sie nun versuchen, über diesen Link auf die nicht mehr existieren
de Datei zuzugreifen, erhalten Sie jedoch eine Fehlermeldung
sudo cat softlink
cat: softlink: No such file or directory
Ein typisches Beispiel für die praktische Verwendung von Softlinks sind die Verlinkungen der init-Skripte, die beim Systemstart abgearbeitet werden. »Runlevel wechseln und das System anhalten oder neu starten«, behandelt
- Sie sehen hier einen Teil der Links, die zum Runlevel 3 eines Systems gehören
/etc/rc.d/rc3.d # ls -l
total 8
drwxr-xr-x 2 root root 4096 Oct 19 21:53 ./
drwxr-xr-x 11 root root 4096 Dec 19 11:04 ../
lrwxrwxrwx 1 root root 7 Jul 20 2017 K03cron -> ../cron*
lrwxrwxrwx 1 root root 8 Jul 20 2017 K03smbfs -> ../smbfs*
lrwxrwxrwx 1 root root 6 Jul 20 2017 K05smb -> ../smb*
lrwxrwxrwx 1 root root 8 Jul 20 2017 K05squid -> ../squid*
- weitere Zeilen wurden entfernt
Problembehebung
Anhang
Siehe auch
Dokumentation
Man-Page
Info-Pages
Links
Projekt
Weblinks