Symbolic Links in einem Share
-
20 decembrie 2010 21:45
Ich habe folgende Konfiguration:
Einen Win7 Rechner, der als Server fungiert und eine Freigabe hat z.B: C:\share
In dieser Freigabe gibt es zahlreiche symlinks zu Dateien auf anderen lokalen Festplatten.
z.B. C:\share\file.txt(link) <-> D:\file.txt
Der Zugriff auf file.txt funktioniert nun über
\\server\share\file.txt
Wenn ich den selben pfad mit den selben Berechtigungen über einen anderen PC anspreche, können die symlinks nicht aufgelöst werden und der Filezugriff wird verweigert.
löschen, rename usw funktioniert aber (auf den link) ohne probleme.
Kann man der Windows freigabe irgendwie verklickern, dass sie symlinks auflösen soll. In samba gibt es eine eigene Variable mit der man das konfiguriert. Unter windows würde ich einen Registryeintrag erwarten...
Hoffe es gibt eine Lösung.
Toate mesajele
-
21 decembrie 2010 14:18
Kann man der Windows freigabe irgendwie verklickern, dass sie symlinks
auflösen soll.Das ist kein Symlink, sondern eine Verknüpfung (das ist etwas anderes als
ein Unix-Symlink!) und die zeigt nunmal nach D:\file.txt, das ist ein
lokaler Pfad und diesen Pfad gibt es auf dem lokalen PC nicht.In samba gibt es eine eigene Variable mit der man das
konfiguriert. Unter windows würde ich einen Registryeintrag erwarten..
Das wird sicherlich nur auf einem Samba-Share gehen, der nicht auf einem
Windows-System liegt. Und zwar deswegen, weil da kein Laufwerksname
benutzt wird. Evtl. läßt sich das Problem mit einem Junction Point lösen.
Sofern dann nicht die Rechteverwaltung dazwischenspringt.
IEFAQ: http://iefaq.info -
21 decembrie 2010 14:34
Junction Point kann ich nicht verwenden weil Junctions bekanntlich nur mit Ordnern funktionieren.
btw... Junktions werden bei einem share zugriff vom server prozessiert (im gegensatz zu symbolischen links wie's scheint)
Und die sachen mit Verknüpfung... Ich verwende definitiv einen symbolischen link und keine Verknüpfung (Shortcut). Mir ist klar, dass Unix Symlinks anders implementiert sind aber es gibt trotzdem einen switch im smb wo man umschalten kann ob diesen gefolgt werden soll oder nicht. Ich hoffe dass es sowas auch unter Win7 gibt, wenn ihm jetzt schon dieses feature nachgerüstet wurde... Ich weiß dass samba nur für linux/unix ist! Es war nur ein vergleich.
-
21 decembrie 2010 15:30
-
21 decembrie 2010 15:43Ich habe ein C# programm geschrieben, dass MKLINK verwendet. Ich kann das ganze aber auch händisch mit MKLINK reproduzieren.
-
23 decembrie 2010 11:48
Wenn ich mit MKLINK einen Hardlink erzeuge funktioniert das ohne Probleme.
Nur damit wir vom selben reden:
Ich habe auf dem Zielrechner in C:\Shared\ eine Datei angelegt (Test.txt). Dann habe ich im Order C:\Shared\Temp einen Hardlink bingo.txt auf ..\Test.txt angelegt.
Der Ordner c:\Shared\Temp ist freigegeben. C:\Shared nicht.
Ich kann Bingo.txt öffnen und dessen Inhalt anzeigen.
Martin Richter -- MVP for VC++ [Germany] -- http://blog.m-ri.de -
23 decembrie 2010 13:30
-
24 decembrie 2010 11:01
Ich habe auf dem Zielrechner in C:\Shared\ eine Datei angelegt (Test.txt).
Dann habe ich im Order C:\Shared\Temp einen Hardlink bingo.txt auf
...\Test.txt angelegt.Er linkt aber auf D:, das ist relativ nicht auflösbar (bzw. nur lokal). ".."
ist relativ auflösbar.
IEFAQ: http://iefaq.info
Ganz genau das ist das Problem Kai.Ich kann keine Hardlinks verwenden weil ich zwischen unterschiedlichen platten linken muss.
Ich kann auch keine Junctions verwenden weil ich files und keine ordner linken muss.
Anscheinend verhalten sich Symbolische links komplett anderes als Hardlinks und Junctions. Diese werden nämlich durch shares aufgelöst. Symbolische links sehe ich auch am client und diese zeigen dann natürlich auf die lokale platte des clients, was falsch ist.