"directory-junction" vs "- Verzeichnis, symbolische Verknüpfung"?

Im Kontext von NTFS:

MKLINK [[/D] | [/H] | [/J]] Link Target

/D Erstellt einen verzeichnissymbolischen Link. Default ist eine Datei mit symbolischen Links.
/H Erstellt einen harten Link anstelle eines symbolischen Links.
/J Erstellt einen Verzeichnisknoten.
Link gibt den neuen symbolischen Linknamen an.
Target gibt den Pfad (relativ oder absolut) an, auf den sich der neue Link bezieht zu.

  1. Ist ein directory junction nicht genau dasselbe wie ein directory symbolic link?

    Was ist der Unterschied zwischen mklink /D f1 f2 und mklink /J f1 f2 ?

  2. Da ein "Verzeichnis" eigentlich nur eine Datei ist, was wäre der Unterschied zwischen einem verzeichnissymbolischen Link und einem dateisymbolischen Link?

Author: Community, 2011-10-05

3 answers

Eine Kreuzung ist definitiv nicht dasselbe wie eine verzeichnissymbolische Verknüpfung, obwohl sie sich ähnlich verhalten. Der Hauptunterschied besteht darin, dass beim Betrachten eines Remote-Servers - Kreuzungen auf dem Server und - Verzeichnissymbolverbindungen auf dem Client verarbeitet werden. Siehe auch Matthews Kommentar zu der Tatsache, dass dies bedeutet, dass symbolische Links auf dem lokalen Dateisystem auf entfernte Dateisysteme verweisen können.

Angenommen, auf einer Maschine namens Alice sollten Sie eine junction point c:\myjp und ein Verzeichnis symbolischer Link c:\mysymlink, beide zeigen auf c:\targetfolder. Während Sie Alice verwenden, werden Sie keinen großen Unterschied zwischen ihnen bemerken. Aber wenn Sie eine andere Maschine namens Bob verwenden, dann ist der Verbindungspunkt

\\Alice\c$\myjp zeigt auf \\Alice\c$\targetfolder

Aber der symbolische link

\\Alice\c$\mysymlink zeigt auf \\Bob\c$\targetfolder

(Vorbehalt: Standardmäßig folgt das System Symlinks auf entfernten Volumes nicht, so dass in den meisten Fällen das zweite Beispiel tatsächlich zu entweder führt "Datei nicht gefunden" oder " Der symbolische Link kann nicht befolgt werden, da sein Typ deaktiviert ist.")

Der Unterschied zwischen einem verzeichnissymbolischen Link und einem dateisymbolischen Link besteht einfach darin, dass einer ein Verzeichnis und einer eine Datei darstellt. Da das Ziel des Links beim Erstellen des Links nicht vorhanden sein muss, muss das Dateisystem wissen, ob es Anwendungen mitteilen soll, dass es sich um ein Verzeichnis handelt oder nicht.

Es sollte auch beachtet werden, dass das Erstellen eines symbolischen link erfordert spezielle Berechtigungen (standardmäßig nur für erhöhte Prozesse verfügbar), während das Erstellen einer Junction nur Zugriff auf das Dateisystem erfordert.

 419
Author: Harry Johnston,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2020-02-07 07:59:33

Symbolische Verknüpfungen haben mehr Funktionalität, während Kreuzungen aufgrund ihrer Einschränkungen fast ein Legacy-Feature zu sein scheinen, aber die Sicherheitsauswirkungen dieser Einschränkungen sind insbesondere der Grund, warum eine Verbindung einer symbolischen Verknüpfung vorgezogen werden kann. Remote Targeting macht symbolische Links funktionaler, erhöht aber auch ihr Sicherheitsprofil, während Kreuzungen als sicherer angesehen werden können, da sie auf lokale Pfade beschränkt sind. Also, wenn Sie einen lokalen Link wollen und mit einem leben können absoluter Pfad, Sie sind wahrscheinlich besser dran mit einer Kreuzung; Andernfalls betrachten Sie einen symbolischen Link für seine zusätzlichen Fähigkeiten.

geben Sie hier die Bildbeschreibung ein

**Die Erklärung der Differenz in der Geschwindigkeit und Komplexität stammt von einem nicht verifizierten Erklärung im Wikipedia-Eintrag auf NTFS-Analysepunkte (gut zu Lesen).*


Andere NTFS Link Vergleiche

Hier sind einige andere Vergleiche zum Thema, aber diese können irreführend sein, wenn man Kreuzungen betrachtet, weil sie listen Sie nicht die Vorteile auf, die ich oben aufgeführt habe.

Von hier Entnommen (eine gute einführende Lesen)

geben Sie hier die Bildbeschreibung ein

Von SS64 Seite auf MKLink

geben Sie hier die Bildbeschreibung ein


Kommentare zu:

Kreuzungen sind symbolische Verbindungen

Kreuzungen und symbolische Links machen wirklich dasselbe auf die gleiche Weise (Reparse-Punkte), abgesehen von den oben genannten Unterschieden in der Verarbeitung. Tatsächlich, technisch gesehen ist eine Kreuzung eine symbolische Verbindung, und manchmal kann man eine Kreuzung als symbolische Verbindung bezeichnen, wie hier. Das ist also nur etwas, was man in Bezug auf Terminologie beachten sollte.

NTFS

Obwohl das OP dies angibt, ist es erwähnenswert, dass "symbolischer Link" ein sehr allgemeiner Begriff ist, der nicht spezifisch für NTFS ist. Um genau zu sein, handelt es sich bei diesem Vergleich um NTFS-Junctions vs. NTFS-symbolische Links.

 96
Author: u8it,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2019-03-22 00:08:57

Komplex sprechen, schadet Gehirn-ich mag-charts:

Angenommen, any MyLink ist eine symbolische Verbindung und any MyJunc ist eine Verbindung, die auf Target as created zeigt.

Z. B.

mklink /D MyLink C:\T_Dir zum Erstellen einer symbolischen Verknüpfung zum Zielverzeichnis

mklink /J MyJunc C:\T_Dir zum Erstellen einer Verzeichniskreuzung zum Zielverzeichnis

Wobei die Syntax mklink [/J,/D] [link path] [target path] ist, wie sie auf dem lokalen Computer eingegeben wurde


 link path    |   target path   |         When accessed ..
              |                 |  (locally)    |    (remotely)
              |                 |               |
C:\MyLink     |   C:\T_Dir      |  C:\T_Dir     |  [leads back to local]
C:\MyJunc     |   C:\T_Dir      |  C:\T_Dir     |  [leads to remote]
              |                 |
\\Svr\MyLink  |   C:\T_Dir      |   C:\T_Dir    |  [leads back to local]
\\Svr\MyJunc  |   C:\T_Dir      |  *** Must create and point local ***
              |                 |
C:\MyLink     |  \\Sv2\T_Dir    |  \\Sv2\T_Dir  |   Error*1
C:\MyJunc     |  \\Sv2\T_Dir    |  *** Error - Must point local ***
              |                 |
\\Svr\MyLink  |  \\Sv2\T_Dir    |  Error*1
\\Svr\MyJunc  |  \\Sv2\T_Dir    |  *** Must create link using target device ***

Fehler*1-Wenn Sie den Zugriff auf entfernte symbolische Links auf Ihrem lokalen Computer entsperrt haben ,funktioniert dies.. aber nur auf dem lokalen Computer, auf dem es entsperrt ist

 71
Author: Still.Tony,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2016-08-03 17:39:30