Warum können normale Benutzer unter Windows keine symbolischen Links erstellen?

4554
Joey

Beginnend mit Windows Vista konnte NTFS symbolische Links zu Dateien darstellen (im Gegensatz zu Directory Junctions). Auch das mklinkDienstprogramm erschien. Benutzer ohne Administratorrechte können jedoch standardmäßig keine symbolischen Links erstellen. Irgendwelche Erkenntnisse darüber, warum das so sein kann? Ich meine, welche Art von Schaden könnte ein Benutzer mit Symlinks anrichten, die er nicht mit Hardlinks oder Verzeichnisverknüpfungen anstellen kann (die beide ohne Administratorrechte ohne Probleme erstellt werden können)?

22
Siehe auch hier https://security.stackexchange.com/q/10194/ C. Yduqoli vor 6 Jahren 0

1 Antwort auf die Frage

11
GeneQ

Symlinks sind eigentlich weniger gefährlich als Hardlinks. Ich denke nicht, dass es hier um Sicherheit geht, sondern um administrative Effizienz. Ich denke, Microsoft hat die richtige Entscheidung getroffen, da es sysadmin Nüsse bringt, wenn Benutzer überall Symlinks erstellen, ohne zu wissen, was sie tun.

Unter Mac OS sind Verknüpfungen Symlinks. Konzeptionell ist es weniger verwirrend, da es von Anfang an so ist. Und für Linux-Fans müssen Sie nicht wissen, welche Symlinks vorhanden sind. ;-)

Dies trifft jedoch nicht auf Windows zu. Stellen Sie sich vor, Sie würden dem durchschnittlichen Benutzer den Unterschied zwischen einer guten alten Windows-Verknüpfung, einem Symlink und einem Verzeichnisknoten / Hardlink erläutern, und Sie werden schnell feststellen, dass die Nutzung einer solchen Macht für die Massen eine riesige Dose kriechender Würmer für technische Unterstützung eröffnen wird.

Das sind meine zwei Cent.

und deshalb sind fenster nicht für SUPERuser :-) Sander Versluys vor 15 Jahren 4
Tatsächlich ist es wahrscheinlich, dass der Durchschnittsbenutzer den Befehl "mklink" nicht finden kann. Die einzige Art von "Link", mit der ein normaler Benutzer konfrontiert ist, ist Ye Olde Shell Link. Für die große Mehrheit der Benutzer gibt es also kein * Bedürfnis *, Symlinks vs. Shell-Links vs. Reparse-Punkte zu erklären, da es (zu Recht wahrscheinlich) keine leicht zugängliche Methode gibt, um andere Arten von Links zu erstellen. Das erklärt jedoch nicht, warum normale Benutzer Hardlinks und Knotenpunkte erstellen können, aber keine Symlinks. Manchmal würde ich es wirklich gerne machen. Joey vor 15 Jahren 28
Guter Punkt, Johannes. GeneQ vor 15 Jahren 0
Da dies Wiki ist, lassen Sie uns dies zur Super-Antwort machen. random vor 15 Jahren 0
Ich betrachte mich als Power-User, aber bis zu dieser Frage dachte ich, Junctions wären Symlinks! (irgendein Link für den Unterschied zwischen ihnen und Symlinks?) hasen vor 15 Jahren 2
hasen j: Knotenpunkte sind eigentlich die gleichen wie Symlinks, funktionieren aber nur für Verzeichnisse. Bis zu Vista gab es keine Möglichkeit, einzelne Dateien zu verknüpfen. Die neuen Symlinks funktionieren zwar auch für Verzeichnisse: http://hypftier.de/dump/link.txt Joey vor 15 Jahren 0
Die größte Gefahr besteht darin, dass eine Endlosschleife entsteht. Benutzer müssen sich darauf beschränken, eine Verknüpfung zu einem übergeordneten Knoten zu erstellen, wodurch ein Programm, das Unterverzeichnisse durchläuft, in Kreisen geht. surfasb vor 13 Jahren 0
Ich denke, diese Antwort ist Unsinn. Durch die Einführung dieser willkürlichen Einschränkung hat Microsoft im Wesentlichen eine Funktion eingeführt, die immens nützlich sein könnte (es gibt einen Grund, warum Symlinks unter UNIX / Linux fast immer existieren), aber jetzt nicht wirklich viel verwendet werden können. Gut gemacht, Microsoft; Ich habe nichts weniger von dir erwartet. > 8 ^ ( antred vor 7 Jahren 1
@surfasb Ich habe viele Programme geschrieben, die Verzeichnisbäume durchqueren, und der Schutz vor zirkularen Links ist ziemlich einfach zu implementieren, indem einfach eine Liste der Verzeichnisse geführt wird, in denen Sie bereits waren. antred vor 7 Jahren 0
@antred verlangsamt nicht nur die Suche (Sie sagten sogar "Liste" anstatt "Hashtabelle" => quadratische Komplexität). Es gibt auch andere Implikationen. Zum Beispiel, ob Sie die Daten oder den Link beim Kopieren kopieren sollten (http://schinagl.priv.at/nt/hardlinkshellext/linkshellextension.html listet mindestens 4 mögliche Strategien auf). Oder ob bei der Meldung von belegtem Speicherplatz symbolisch verknüpfte Daten enthalten sein sollen. ivan_pozdeev vor 6 Jahren 0