Linux Professional Institute Learning Logo.
Weiter zum Inhalt
  • Home
    • Alle Ressourcen
    • LPI Lernmaterialien
    • Mitmachen
    • Publishing Partner
    • Publishing Partner werden
    • Über uns
    • FAQ
    • Mitwirkende
    • Roadmap
    • Kontakt
  • LPI.org
5.4 Lektion 1
Thema 1: Die Linux-Community und Karriere im Open-Source-Umfeld
1.1 Die Entwicklung von Linux und gängige Betriebssysteme
  • 1.1 Lektion 1
1.2 Die wichtigsten Open-Source-Anwendungen
  • 1.2 Lektion 1
1.3 Open-Source-Software und -Lizenzen
  • 1.3 Lektion 1
1.4 IKT-Fähigkeiten und Arbeiten mit Linux
  • 1.4 Lektion 1
Thema 2: Sich auf einem Linux-System zurechtfinden
2.1 Grundlagen der Befehlszeile
  • 2.1 Lektion 1
  • 2.1 Lektion 2
2.2 Hilfe suchen über die Befehlszeile
  • 2.2 Lektion 1
2.3 Verzeichnisse verwenden und Dateien auflisten
  • 2.3 Lektion 1
  • 2.3 Lektion 2
2.4 Erstellen, Verschieben und Löschen von Dateien
  • 2.4 Lektion 1
Thema 3: Die Macht der Befehlszeile
3.1 Dateien mithilfe der Befehlszeile archivieren
  • 3.1 Lektion 1
3.2 Daten in Dateien suchen und extrahieren
  • 3.2 Lektion 1
  • 3.2 Lektion 2
3.3 Von Befehlen zum Skript
  • 3.3 Lektion 1
  • 3.3 Lektion 2
Thema 4: Das Linux-Betriebssystem
4.1 Ein Betriebssystem auswählen
  • 4.1 Lektion 1
4.2 Verständnis von Computer-Hardware
  • 4.2 Lektion 1
4.3 Wo Daten gespeichert werden
  • 4.3 Lektion 1
  • 4.3 Lektion 2
4.4 Der Rechner im Netzwerk
  • 4.4 Lektion 1
Thema 5: Sicherheit und Dateiberechtigungen
5.1 Sicherheitsgrundlagen und Identifizierung von Benutzertypen
  • 5.1 Lektion 1
5.2 Benutzer und Gruppen anlegen
  • 5.2 Lektion 1
5.3 Dateiberechtigungen und Dateieigentum verwalten
  • 5.3 Lektion 1
5.4 Besondere Verzeichnisse und Dateien
  • 5.4 Lektion 1
How to get certified
  1. Thema 5: Sicherheit und Dateiberechtigungen
  2. 5.4 Besondere Verzeichnisse und Dateien
  3. 5.4 Lektion 1

5.4 Lektion 1

Zertifikat:

Linux Essentials

Version:

1.6

Thema:

5 Sicherheit und Dateiberechtigungen

Lernziel:

5.4 Besondere Verzeichnisse und Dateien

Lektion:

1 von 1

Einführung

Unter Linux wird alles wie eine Datei behandelt, aber einige Dateien erhalten eine besondere Behandlung, entweder wegen des Ortes, an dem sie gespeichert sind, wie z.B. temporäre Dateien, oder wegen der Art und Weise, wie sie mit dem Dateisystem interagieren, wie z.B. Links. In dieser Lektion geht es darum, wo sich solche Dateien befinden, wie sie funktionieren und wie man sie verwaltet.

Temporäre Dateien

Temporäre Dateien sind Dateien, die von Programmen verwendet werden, um Daten zu speichern, die nur für eine kurze Zeit benötigt werden. Dies können die Daten laufender Prozesse, Crash-Protokolle, Scratch-Dateien von einem Autosave, Zwischendateien, die während einer Dateikonvertierung verwendet werden, Cache-Dateien und so weiter sein.

Speicherort temporärer Dateien

Version 3.0 des Filesystem Hierarchy Standard (FHS) definiert Standard-Speicherorte für temporäre Dateien auf Linux-Systemen. Jeder Speicherort hat einen anderen Zweck und ein anderes Verhalten, und es wird empfohlen, dass Entwickler den vom FHS festgelegten Konventionen folgen, wenn sie temporäre Daten auf die Festplatte schreiben.

/tmp

Laut FHS sollten Programme nicht davon ausgehen, dass hier abgelegte Dateien zwischen den Aufrufen eines Programms erhalten bleiben. Die Empfehlung ist, dass dieses Verzeichnis während des Systemstarts gelöscht wird (alle Dateien werden gelöscht), es ist also nicht zwingend.

/var/tmp

Ein anderer Speicherort für temporäre Dateien, der aber während des Systemstarts nicht gelöscht werden sollte, d.h. hier gespeicherte Dateien bleiben normalerweise zwischen den Neustarts erhalten.

/run

Dieses Verzeichnis enthält Daten von Laufzeitvariablen, die von laufenden Prozessen verwendet werden, wie z.B. Prozesskennungsdateien (.pid). Programme, die mehr als eine Laufzeitdatei benötigen, können hier Unterverzeichnisse anlegen. Dieser Ort muss während des Systemstarts gelöscht werden. Der Zweck dieses Verzeichnisses wurde einst durch /var/run erfüllt, und auf einigen Systemen kann /var/run ein symbolischer Link zu /run sein.

Beachten Sie, dass es nichts gibt, was ein Programm daran hindert, temporäre Dateien an anderer Stelle im System zu erstellen, aber es ist gute Praxis, den vom FHS festgelegten Konventionen zu folgen.

Berechtigungen für temporäre Dateien

Systemweite temporäre Verzeichnisse auf einem Mehrbenutzersystem stellen eine Herausforderung bezüglich der Zugriffsrechte dar. Zunächst könnte man denken, solche Verzeichnisse seien “welt-schreibbar”, d.h. jeder Benutzer könne darin Daten schreiben oder löschen. Aber wenn das so wäre, wie könnte man verhindern, dass ein Benutzer Dateien, die von einem anderen erstellt wurden, löscht oder verändert?

Die Lösung ist eine spezielle Berechtigung namens Sticky Bit, die sowohl für Verzeichnisse als auch für Dateien gilt. Aus Sicherheitsgründen ignoriert der Linux-Kernel jedoch das Sticky Bit für Dateien. Wenn dieses spezielle Bit für ein Verzeichnis gesetzt ist, verhindert es, dass Benutzer eine Datei innerhalb dieses Verzeichnisses entfernen oder umbenennen können, wenn sie die Datei nicht besitzen.

Verzeichnisse mit gesetztem Sticky Bit zeigen ein t anstelle des x in der Berechtigung für andere in der Ausgabe von ls -l. Betrachten wir zum Beispiel die Berechtigungen für die Verzeichnisse /tmp und /var/tmp:

$ ls -ldh /tmp/ /var/tmp/
drwxrwxrwt 25 root root 4,0K Jun  7 18:52 /tmp/
drwxrwxrwt 16 root root 4,0K Jun  7 09:15 /var/tmp/

Wie Sie an dem t erkennen, das das x in der Berechtigung für andere ersetzt, haben beide Verzeichnisse das Sticky Bit gesetzt.

Um das Sticky Bit eines Verzeichnisses mit chmod im numerischen Modus zu setzen, verwenden Sie die vierstellige Notation und 1 als erste Ziffer, zum Beispiel:

$ chmod 1755 temp

setzt das Sticky Bit für das Verzeichnis namens temp und die Berechtigungen auf rwxr-xr-t.

Im symbolischen Modus benutzen Sie den Parameter t, also +t, um das Sticky Bit zu setzen, und -t, um es zu deaktivieren:

$ chmod +t temp

Links verstehen

Wir haben bereits gesagt, dass unter Linux alles als Datei behandelt wird, aber es gibt eine spezielle Art von Datei, Link genannt, und es gibt zwei Arten von Links in einem Linux-System:

Symbolische Links (Symbolic Links)

Auch Softlinks genannt, zeigen auf den Pfad einer anderen Datei. Wenn Sie die Datei löschen, auf die der Link zeigt (Target oder Ziel genannt), existiert der Link zwar noch, aber er “funktioniert” nicht mehr, da er nun auf “nichts” zeigt.

Harte Links (Hard Links)

Stellen Sie sich einen Hard Link als zweiten Namen für die Originaldatei vor. Er ist kein Duplikat, sondern ein zusätzlicher Eintrag im Dateisystem, der auf dieselbe Stelle auf der Platte (Inode) zeigt.

Tip

Ein Inode ist eine Datenstruktur, die Attribute für ein Objekt (wie eine Datei oder ein Verzeichnis) auf einem Dateisystem speichert. Zu diesen Attributen gehören der Dateiname, die Berechtigungen, der Eigentümer und auf welchen Blöcken der Platte die Daten für das Objekt gespeichert werden. Stellen Sie sich das als einen Eintrag in einem Index vor, daher auch der Name: “Index Node”, also “Index-Knoten”.

Mit Hard Links arbeiten

Hard Links erstellen

Der Befehl zum Erstellen eines Hard Links unter Linux lautet ln mit der Syntax:

$ ln TARGET LINK_NAME

Das TARGET muss bereits existieren (dies ist die Datei, auf die der Link zeigen wird), und wenn das Ziel nicht im aktuellen Verzeichnis liegt oder wenn Sie den Link anderswo erstellen wollen, müssen Sie den vollständigen Pfad dorthin angeben, z.B.:

$ ln target.txt /home/carol/Documents/hardlink

Der Befehl erstellt eine Datei namens hardlink im Verzeichnis /home/carol/Documents/, die mit der Datei target.txt im aktuellen Verzeichnis verknüpft ist.

Wenn Sie den letzten Parameter (LINK_NAME) weglassen, wird ein Link mit demselben Namen wie das Ziel im aktuellen Verzeichnis erstellt.

Hard Links verwalten

Hard Links sind Einträge im Dateisystem, die unterschiedliche Namen haben, aber auf dieselben Daten auf der Festplatte zeigen. Alle diese Namen sind gleichwertig und können verwendet werden, um auf eine Datei zu verweisen. Wenn Sie den zu einem Namen gehörenden Inhalt ändern, ändert sich der Inhalt aller Namen, die auf diese Datei zeigen, da alle diese Namen auf dieselben Daten zeigen. Wenn Sie einen der Namen löschen, funktionieren die anderen Namen trotzdem.

Das geschieht, weil beim “Löschen” einer Datei deren Daten nicht wirklich von der Platte gelöscht werden. Das System löscht lediglich den Eintrag in der Dateisystemtabelle, der auf den Inode zeigt, der den Daten auf der Platte entspricht. Aber wenn Sie einen zweiten Eintrag haben, der auf denselben Inode zeigt, gelangen Sie immer noch an die Daten. Stellen Sie sich vor, dass zwei Straßen im selben Punkt zusammenlaufen. Selbst wenn Sie eine der Straßen blockieren oder umleiten, können Sie das Ziel immer noch über die andere erreichen.

Sie überprüfen dies mit dem Parameter -i von ls. Betrachten Sie den folgenden Inhalt eines Verzeichnisses:

$ ls -li
total 224
3806696 -r--r--r-- 2 carol carol 111702 Jun  7 10:13 hardlink
3806696 -r--r--r-- 2 carol carol 111702 Jun  7 10:13 target.txt

Die Zahl vor den Berechtigungen ist die Inode-Nummer. Sehen Sie, dass die Dateien hardlink und target.txt dieselbe Nummer haben (3806696). Das liegt daran, dass die eine ein Hard Link der anderen ist.

Welche das Original und welche der Link ist, kann man nicht sagen, da sie für alle praktischen Zwecke gleich sind.

Beachten Sie, dass jeder Hard Link, der auf eine Datei zeigt, den Link Count der Datei erhöht. Dies ist die Zahl direkt nach den Berechtigungen in der Ausgabe von ls -l. Standardmäßig hat jede Datei einen Link Count von 1 (Verzeichnisse haben einen Count von 2), und jeder Hard Link darauf erhöht den Count um eins. Das ist der Grund für den Link Count 2 auf die Dateien in der obigen Auflistung.

Im Gegensatz zu symbolischen Links können Sie harte Links nur auf Dateien erstellen, wobei sich der Link und das Ziel im selben Dateisystem befinden müssen.

Hard Links verschieben und entfernen

Da Hard Links wie normale Dateien behandelt werden, können sie mit rm gelöscht und mit mv umbenannt oder im Dateisystem verschoben werden. Und da ein Hard Link auf denselben Inode wie das Ziel zeigt, kann er frei bewegt werden, ohne dass der Link “bricht”.

Symbolic Links

Symbolic Links erstellen

Der Befehl zum Erstellen eines symbolischen Links ist ebenfalls ln, aber mit dem Parameter -s aufgerufen:

$ ln -s target.txt /home/carol/Documents/softlink

Der Befehl erstellt eine Datei namens softlink im Verzeichnis /home/carol/Documents/, die auf die Datei target.txt im aktuellen Verzeichnis verweist.

Wie bei harten Links können Sie den Linknamen weglassen, um einen Link mit demselben Namen wie das Ziel im aktuellen Verzeichnis zu erstellen.

Symbolic Links verwalten

Symbolische Links zeigen auf einen anderen Pfad im Dateisystem. Sie können Softlinks für Dateien und Verzeichnisse erstellen, sogar auf verschiedenen Partitionen. Ein symbolischer Link ist in der Ausgabe von ls leicht zu erkennen:

$ ls -lh
total 112K
-rw-r--r-- 1 carol carol 110K Jun  7 10:13 target.txt
lrwxrwxrwx 1 carol carol   12 Jun  7 10:14 softlink -> target.txt

Im obigen Beispiel ist das erste Zeichen in den Berechtigungen für die Datei softlink ein l, was auf einen symbolischen Link hinweist. Außerdem sehen wir direkt nach dem Dateinamen den Namen des Ziels, auf das der Link zeigt, die Datei target.txt.

Beachten Sie, dass in Datei- und Verzeichnisauflistungen Softlinks selbst immer die Berechtigungen rwx für den Benutzer, die Gruppe und andere anzeigen; tatsächlich sind die Zugriffsrechte für sie aber die gleichen wie die für das Ziel.

Symbolic Links verschieben und entfernen

Wie harte Links können auch symbolische Links mit rm entfernt und mit mv verschoben oder umbenannt werden. Allerdings sollten Sie bei der Erstellung besonders darauf achten, dass der Link nicht “bricht”, wenn er von seinem ursprünglichen Platz verschoben wird.

Bei der Erstellung symbolischer Links sollten Sie sich bewusst sein, dass der Speicherort des Ziels als relativ zum Speicherort des Links interpretiert wird, wenn der Link oder die Datei, auf die er zeigt, nicht vollständig angegeben wird. Das kann zu Problemen führen, wenn der Link oder die Datei, auf die er zeigt, verschoben wird.

Das ist an einem Beispiel einfacher nachzuvollziehen: Angenommen wir haben eine Datei namens original.txt im aktuellen Verzeichnis und wollen einen symbolischen Link darauf erstellen, der softlink heißt:

$ ln -s original.txt softlink

Alles scheint in Ordnung, wie auch ls zeigt:

$ ls -lh
total 112K
-r--r--r-- 1 carol carol 110K Jun  7 10:13 original.txt
lrwxrwxrwx 1 carol carol   12 Jun  7 19:23 softlink -> original.txt

Sehen Sie, wie der Link aufgebaut ist: softlink zeigt auf (→) original.txt. Schauen wir, was passiert, wenn wir den Link in das Elternverzeichnis verschieben und versuchen, seinen Inhalt mit dem Befehl less anzuzeigen:

$ mv softlink ../
$ less ../softlink
../softlink: No such file or directory

Da der Pfad zu original.txt nicht angegeben wurde, geht das System davon aus, dass sich die Datei im selben Verzeichnis wie der Link befindet. Ist das nicht der Fall, funktioniert der Link nicht mehr.

Um das zu vermeiden, sollten Sie bei der Erstellung des Links immer den vollständigen Pfad zum Ziel angeben:

$ ln -s /home/carol/Documents/original.txt softlink

Auf diese Weise wird der Link, egal wohin Sie ihn verschieben, immer noch funktionieren, weil er auf die absolute Position des Ziels zeigt. Überprüfen Sie dies mit ls:

$ ls -lh
total 112K
lrwxrwxrwx 1 carol carol   40 Jun  7 19:34 softlink -> /home/carol/Documents/original.txt

Geführte Übungen

  1. Angenommen ein Programm muss eine temporäre Datei zur einmaligen Verwendung erstellen, die nach dem Beenden des Programms nie wieder benötigt wird. In welchem Verzeichnis sollte diese Datei erstellt werden?

  2. Welches ist das temporäre Verzeichnis, das während des Bootvorgangs gelöscht werden muss?

  3. Wie lautet der Parameter für chmod im symbolischen Modus, um das Sticky Bit für ein Verzeichnis zu aktivieren?

  4. Angenommen es gibt eine Datei namens document.txt im Verzeichnis /home/carol/Documents. Wie lautet der Befehl, um einen symbolischen Link mit dem Namen text.txt im aktuellen Verzeichnis darauf zu erstellen?

  5. Erklären Sie den Unterschied zwischen einem harten Link auf eine Datei und einer Kopie dieser Datei.

Offene Übungen

  1. Angenommen Sie erstellen in einem Verzeichnis eine Datei namens recipes.txt. In diesem Verzeichnis erstellen Sie zudem einen Hard Link namens receitas.txt zu dieser Datei sowie einen symbolischen Link namens rezepte.txt.

    $ touch recipes.txt
    $ ln recipes.txt receitas.txt
    $ ln -s receitas.txt rezepte.txt

    Der Inhalt des Verzeichnisses sollte so aussehen:

    $ ls -lhi
    total 160K
    5388833 -rw-r--r-- 4 carol carol 77K jun 17 17:25 receitas.txt
    5388833 -rw-r--r-- 4 carol carol 77K jun 17 17:25 recipes.txt
    5388837 lrwxrwxrwx 1 carol carol  12 jun 24 10:12 rezepte.txt -> receitas.txt

    Denken Sie daran, dass receitas.txt als Hard Link auf denselben Inode wie recipes.txt zeigt. Was würde mit dem Softlink rezepte.txt passieren, wenn der Name receitas.txt gelöscht wird? Warum?

  2. Angenommen Sie haben ein Flash-Laufwerk an Ihr System angeschlossen und unter /media/youruser/FlashA gemountet. Sie möchten in Ihrem Home-Verzeichnis einen Link namens schematics.pdf erstellen, der auf die Datei esquema.pdf im Hauptverzeichnis des Flash-Laufwerks verweist. Sie geben also den folgenden Befehl ein:

    $ ln /media/youruser/FlashA/esquema.pdf ~/schematics.pdf

    Was würde passieren? Warum?

  3. Betrachten Sie die folgende Ausgabe von ls -lah:

    $ ls -lah
    total 3,1M
    drwxr-xr-x 2 carol carol 4,0K jun 17 17:27 .
    drwxr-xr-x 5 carol carol 4,0K jun 17 17:29 ..
    -rw-rw-r-- 1 carol carol 2,8M jun 17 15:45 compressed.zip
    -rw-r--r-- 4 carol carol  77K jun 17 17:25 document.txt
    -rw-rw-r-- 1 carol carol 216K jun 17 17:25 image.png
    -rw-r--r-- 4 carol carol  77K jun 17 17:25 text.txt
    • Wie viele Links zeigen auf die Datei document.txt?

    • Sind es Soft oder Hard Links?

    • Welchen Parameter sollten Sie an ls übergeben, um zu sehen, welchen Inode jede Datei belegt?

  4. Angenommen Sie haben in Ihrem ~/Documents-Verzeichnis eine Datei namens clients.txt, die einige Kundennamen enthält, und ein Verzeichnis namens somedir. Darin befindet sich eine andere Datei, die ebenfalls clients.txt heißt und andere Namen enthält. Um diese Struktur zu replizieren, benutzen Sie die folgenden Befehle:

    $ cd ~/Documents
    $ echo "John, Michael, Bob" > clients.txt
    $ mkdir somedir
    $ echo "Bill, Luke, Karl" > somedir/clients.txt

    Sie erstellen dann einen Link in somedir mit dem Namen partners.txt, der auf diese Datei zeigt:

    $ cd somedir/
    $ ln -s clients.txt partners.txt

    Die Verzeichnisstruktur ist dann die folgende:

    Documents
    |-- clients.txt
    `-- somedir
        |-- clients.txt
        `-- partners.txt -> clients.txt

    Jetzt verschieben Sie partners.txt von somedir nach ~/Documents und listen den Inhalt auf.

    $ cd ~/Documents/
    $ mv somedir/partners.txt .
    $ less partners.txt

    Funktioniert der Link noch? Wenn ja, welcher Dateiinhalt wird angezeigt? Warum?

  5. Betrachten Sie die folgenden Dateien:

    -rw-r--r-- 1 carol carol 19 Jun 24 11:12 clients.txt
    lrwxrwxrwx 1 carol carol 11 Jun 24 11:13 partners.txt -> clients.txt

    Wie lauten die Zugriffsrechte für partners.txt? Warum?

Zusammenfassung

In dieser Lektion haben Sie gelernt:

  • Wo temporäre Dateien gespeichert werden.

  • Welche speziellen Berechtigungen für diese gelten.

  • Was Links sind.

  • Den Unterschied zwischen symbolischen und harten Links.

  • Wie man Links erstellt.

  • Wie man Links verschiebt, umbenennt oder entfernt.

Die folgenden Befehle wurden in dieser Lektion behandelt:

  • ln

  • Der Parameter -i für ls

Lösungen zu den geführten Übungen

  1. Angenommen ein Programm muss eine temporäre Datei zur einmaligen Verwendung erstellen, die nach dem Beenden des Programms nie wieder benötigt wird. In welchem Verzeichnis sollte diese Datei erstellt werden?

    Da die Datei keine Rolle mehr spielt, nachdem das Programm beendet ist, ist /tmp das richtige Verzeichnis.

  2. Welches ist das temporäre Verzeichnis, das während des Bootvorgangs gelöscht werden muss?

    Das Verzeichnis ist /run oder, auf einigen Systemen, /var/run.

  3. Wie lautet der Parameter für chmod im symbolischen Modus, um das Sticky Bit für ein Verzeichnis zu aktivieren?

    Das Symbol für das Sticky Bit im symbolischen Modus ist t. Da wir diese Berechtigung für das Verzeichnis aktivieren (hinzufügen) wollen, sollte der Parameter +t sein.

  4. Angenommen es gibt eine Datei namens document.txt im Verzeichnis /home/carol/Documents. Wie lautet der Befehl, um einen symbolischen Link mit dem Namen text.txt im aktuellen Verzeichnis darauf zu erstellen?

    ln -s ist der Befehl, um einen symbolischen Link zu erstellen. Da wir den absoluten Pfad zu der Datei, auf die wir verlinken, angeben sollten, lautet der Befehl:

    $ ln -s /home/carol/Documents/document.txt text.txt
  5. Erklären Sie den Unterschied zwischen einem harten Link auf eine Datei und einer Kopie dieser Datei.

    Ein Hard Link ist nur ein anderer Name für eine Datei. Auch wenn er wie ein Duplikat der Originaldatei aussieht, sind Link und Original für alle Zwecke gleich, da sie auf die gleichen Daten auf der Festplatte zeigen. Änderungen am Inhalt des Links werden auf das Original übertragen und umgekehrt. Eine Kopie ist eine völlig unabhängige Einheit, die einen anderen Platz auf der Festplatte einnimmt. Änderungen an der Kopie werden nicht auf das Original übertragen und umgekehrt.

Lösungen zu den offenen Übungen

  1. Angenommen Sie erstellen in einem Verzeichnis eine Datei namens recipes.txt. In diesem Verzeichnis erstellen Sie zudem einen Hard Link namens receitas.txt zu dieser Datei sowie einen symbolischen Link namens rezepte.txt.

    $ touch recipes.txt
    $ ln recipes.txt receitas.txt
    $ ln -s receitas.txt rezepte.txt

    Der Inhalt des Verzeichnisses sollte so aussehen:

    $ ls -lhi
    total 160K
    5388833 -rw-r--r-- 4 carol carol 77K jun 17 17:25 receitas.txt
    5388833 -rw-r--r-- 4 carol carol 77K jun 17 17:25 recipes.txt
    5388837 lrwxrwxrwx 1 carol carol  12 jun 24 10:12 rezepte.txt -> receitas.txt

    Denken Sie daran, dass receitas.txt als Hard Link auf denselben Inode wie recipes.txt zeigt. Was würde mit dem Softlink rezepte.txt passieren, wenn der Name receitas.txt gelöscht wird? Warum?

    Der Softlink rezepte.txt würde nicht mehr funktionieren. Das liegt daran, dass Softlinks auf Namen und nicht auf Inodes verweisen und der Name receitas.txt nicht mehr existiert, auch wenn die Daten noch unter dem Namen recipes.txt auf der Festplatte vorhanden sind.

  2. Angenommen Sie haben ein Flash-Laufwerk an Ihr System angeschlossen und unter /media/youruser/FlashA gemountet. Sie möchten in Ihrem Home-Verzeichnis einen Link namens schematics.pdf erstellen, der auf die Datei esquema.pdf im Hauptverzeichnis des Flash-Laufwerks verweist. Sie geben also den folgenden Befehl ein:

    $ ln /media/youruser/FlashA/esquema.pdf ~/schematics.pdf

    Was würde passieren? Warum?

    Der Befehl würde fehlschlagen. Die Fehlermeldung wäre Invalid cross-device link, und sie macht den Grund klar: Hard Links können nicht auf ein Ziel auf einer anderen Partition oder einem anderen Gerät zeigen. Der einzige Weg, einen solchen Link zu erstellen, ist ein symbolischer Link, wobei ln mit dem Parameter -s aufgerufen wird.

  3. Betrachten Sie die folgende Ausgabe von ls -lah:

    $ ls -lah
    total 3,1M
    drwxr-xr-x 2 carol carol 4,0K jun 17 17:27 .
    drwxr-xr-x 5 carol carol 4,0K jun 17 17:29 ..
    -rw-rw-r-- 1 carol carol 2,8M jun 17 15:45 compressed.zip
    -rw-r--r-- 4 carol carol  77K jun 17 17:25 document.txt
    -rw-rw-r-- 1 carol carol 216K jun 17 17:25 image.png
    -rw-r--r-- 4 carol carol  77K jun 17 17:25 text.txt
    • Wie viele Links zeigen auf die Datei document.txt?

      Jede Datei beginnt mit einer Linkzahl von 1. Da die Anzahl der Links für die Datei 4 ist, gibt es drei Links, die auf diese Datei zeigen.

    • Sind es Soft oder Hard Links?

      Es handelt sich um Hard Links, da Softlinks die Linkzahl einer Datei nicht erhöhen.

    • Welchen Parameter sollten Sie an ls übergeben, um zu sehen, welchen Inode jede Datei belegt?

      Der Parameter ist -i. Der Inode wird als erste Spalte in der Ausgabe von ls angezeigt:

      $ ls -lahi
      total 3,1M
      5388773 drwxr-xr-x 2 rigues rigues 4,0K jun 17 17:27 .
      5245554 drwxr-xr-x 5 rigues rigues 4,0K jun 17 17:29 ..
      5388840 -rw-rw-r-- 1 rigues rigues 2,8M jun 17 15:45 compressed.zip
      5388833 -rw-r--r-- 4 rigues rigues  77K jun 17 17:25 document.txt
      5388837 -rw-rw-r-- 1 rigues rigues 216K jun 17 17:25 image.png
      5388833 -rw-r--r-- 4 rigues rigues  77K jun 17 17:25 text.txt
  4. Angenommen Sie haben in Ihrem ~/Documents-Verzeichnis eine Datei namens clients.txt, die einige Kundennamen enthält, und ein Verzeichnis namens somedir. Darin befindet sich eine andere Datei, die ebenfalls clients.txt heißt und andere Namen enthält. Um diese Struktur zu replizieren, benutzen Sie die folgenden Befehle:

    $ cd ~/Documents
    $ echo "John, Michael, Bob" > clients.txt
    $ mkdir somedir
    $ echo "Bill, Luke, Karl" > somedir/clients.txt

    Sie erstellen dann einen Link in somedir mit dem Namen partners.txt, der auf diese Datei zeigt:

    $ cd somedir/
    $ ln -s clients.txt partners.txt

    Die Verzeichnisstruktur ist dann die folgende:

    Documents
    |-- clients.txt
    `-- somedir
        |-- clients.txt
        `-- partners.txt -> clients.txt

    Jetzt verschieben Sie partners.txt von somedir nach ~/Documents und listen den Inhalt auf.

    $ cd ~/Documents/
    $ mv somedir/partners.txt .
    $ less partners.txt

    Funktioniert der Link noch? Wenn ja, welcher Dateiinhalt wird angezeigt? Warum?

    Das ist knifflig, aber der Link wird funktionieren und die aufgelistete Datei wird die in ~/Documents sein, die die Namen John, Michael, Bob enthält.

    Da wir beim Erstellen des Soft Links partners.txt nicht den vollständigen Pfad zum Ziel clients.txt angegeben haben, wird der Zielort als relativ zum Ort des Links interpretiert, der in diesem Fall das aktuelle Verzeichnis ist.

    Wenn der Link von ~/Documents/somedir nach ~/Documents verschoben wurde, sollte er nicht mehr funktionieren, da sich das Ziel nicht mehr im selben Verzeichnis wie der Link befand. Allerdings gibt es zufällig eine Datei namens clients.txt in ~/Documents, so dass der Link auf diese Datei zeigt, statt auf das ursprüngliche Ziel in ~/somedir.

    Um dies zu vermeiden, geben wir bei der Erstellung eines symbolischen Links immer den vollständigen Pfad zum Ziel an.

  5. Betrachten Sie die folgenden Dateien:

    -rw-r--r-- 1 rigues rigues 19 Jun 24 11:12 clients.txt
    lrwxrwxrwx 1 rigues rigues 11 Jun 24 11:13 partners.txt -> clients.txt

    Wie lauten die Zugriffsrechte für partners.txt? Warum?

    Die Zugriffsberechtigungen für partners.txt sind rw-r—​r--, da Links immer dieselben Zugriffsberechtigungen wie das Ziel haben.

Linux Professional Insitute Inc. Alle Rechte vorbehalten. Besuchen Sie die LPI Learning Website: https://learning.lpi.org
Dieses Werk steht unter der Lizenz Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International.

Linux Professional Insitute Inc. Alle Rechte vorbehalten. Besuchen Sie die LPI Learning Website: https://learning.lpi.org
Dieses Werk steht unter der Lizenz Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International.

LPI ist eine Non-Profit-Organisation.

© 2023 Linux Professional Institute (LPI) ist eine globale Organisation für Zertifizierungsstandards und zur Karriereplanung für Open-Source-Profis. Mit mehr als 200.000 Zertifikatsinhabern ist es die weltweit erste und größte herstellerneutrale Linux- und Open-Source-Zertifizierungsstelle. LPI verfügt über zertifizierte Fachleute in über 180 Ländern, bietet Prüfungen in mehreren Sprachen an und hat Hunderte von Trainingspartnern.

Unser Ziel ist es, wirtschaftliche und kreative Möglichkeiten für alle zu ermöglichen, indem wir Open-Source-Wissens- und Kompetenzzertifizierungen allgemein zugänglich machen.

  • LinkedIn
  • flogo-RGB-HEX-Blk-58 Facebook
  • Twitter
  • Kontaktieren Sie uns
  • Datenschutz und Cookie-Richtlinien

Haben Sie einen Fehler entdeckt oder möchten Sie helfen, diese Seite zu verbessern? Lassen Sie es uns wissen.

© 1999–2023 The Linux Professional Institute Inc. Alle Rechte vorbehalten.