Scenario: collegamento simbolico NTFS o giunzione?


17

differenze

┌───────────────┬──────────┬──────────┬──────┬──── ───────┬─────┐
│ │ Assoluto │ Relativo │ File │ Directory │ UNC │
├───────────────┼──────────┼──────────┼──────┼──── ───────┼─────┤
│ Collegamento simbolico │ Sì │ Sì │ Sì │ Sì │ Sì │
│ Giunzione │ Sì │ - │ - │ Sì │ - │
└───────────────┴──────────┴──────────┴──────┴──── ───────┴─────┘

Scenario

Supponiamo che stiamo creando un punto di analisi per creare il reindirizzamento C:\SomeDir => D:\SomeDir

Poiché questo scenario richiede solo percorsi locali e assoluti, funzionerebbe una giunzione o un collegamento simbolico. In questa situazione, c'è qualche vantaggio nell'usare l'uno o l'altro?

Supponi Windows 7 per il sistema operativo, ignorando la compatibilità con le versioni precedenti. (Prima di Vista, i collegamenti simbolici non erano supportati in modo nativo, anche se esiste un driver di terze parti che fornisce supporto per i collegamenti simbolici su Windows XP.)

Aggiornare

Ho trovato un'altra differenza.

  • Collegamento simbolico: le autorizzazioni del collegamento influiscono solo sulle operazioni di eliminazione / rinomina sul collegamento stesso, l'accesso in lettura / scrittura (alla destinazione) è regolato dalle autorizzazioni della destinazione
  • Giunzione: le autorizzazioni della giunzione influiscono sull'enumerazione, la revoca delle autorizzazioni sulla giunzione negherà l'elenco dei file attraverso quella giunzione, anche se la cartella di destinazione ha ACL più permissivi

Le autorizzazioni lo rendono interessante, poiché i collegamenti simbolici possono consentire alle applicazioni legacy di accedere ai file di configurazione in aree riservate al controllo dell'account utente (come %ProgramFiles%) senza modificare le autorizzazioni di accesso esistenti, archiviando i file in una posizione non riservata e creando collegamenti simbolici nella directory riservata.

Aggiornamento 2

Windows 8.1 risolverà i collegamenti alla directory simbolica durante la navigazione in uno tramite la casella di testo in una Save As...finestra di dialogo. Le giunzioni non sono espanse.


Hai un link alle informazioni sulla differenza di autorizzazioni? Questa è piuttosto la scoperta.
Surfasb,

I miei test confermano che l'accesso in lettura alla directory di destinazione (ovvero l'elenco dei contenuti della directory) è limitato dalle autorizzazioni sul punto di giunzione oltre a quelle sulla directory di destinazione. Tuttavia, nessun altro accesso sembra essere interessato. In particolare, è possibile creare file e sottocartelle se le autorizzazioni della directory di destinazione lo consentono, indipendentemente dalle autorizzazioni del punto di giunzione.
Harry Johnston,

@HarryJohnston: Inizialmente, sospettavo alcune incoerenze mentre blocco le autorizzazioni di cancellazione e scrittura per le giostre, ma gli elementi e le sottocartelle sottostanti vanno bene.
surfasb,

Non farò una risposta completa a meno che non sia richiesto, ma se si utilizza una GNU o un altro sistema non Windows per accedere al volume tramite mount.cifs, i collegamenti simbolici appariranno come tali mentre le giunzioni saranno viste come directory normali, probabilmente a causa del punto in cui si verifica la risoluzione IO, cioè localmente sul host Windows.
can-ned_food,

Risposte:


4

Capisco i collegamenti simbolici NTFS come sostituti di giunzioni sui nuovi sistemi operativi Windows (Vista / 7/8) poiché funzionano allo stesso modo ma forniscono anche funzionalità aggiuntive (punti remoti). Quindi, a condizione che tu stia lavorando solo con i sistemi operativi più recenti, non c'è motivo di non utilizzare l'opzione di collegamento simbolico.


Per impostazione predefinita, i collegamenti simbolici sui server verranno ignorati e anche se seguiti sono limitati dalle regole di accesso a livello di condivisione del server: quindi, ad esempio, non è possibile collegare simbolicamente a una posizione sul server che non è condivisa, oppure se il la condivisione non dà l'accesso all'utente. Quindi i collegamenti simbolici non possono sostituire i punti di giunzione in tutti i contesti.
Harry Johnston,

2

Penso che i punti di giunzione abbiano un supporto più ampio nel software di backup rispetto ai collegamenti simbolici. È necessario verificare con qualsiasi programma di backup che si sta utilizzando quale funzione è supportata.

Se non supportato, verrà eseguito il backup del punto di giunzione / collegamento simbolico come directory separata (e ripristinato come tale) oppure non verrà eseguito il backup.

A parte il problema del backup, non vedo un motivo per preferire l'uno all'altro, nel tuo caso specifico (directory locale).


I punti di giunzione e i collegamenti simbolici sono entrambi implementati tramite NTFS utilizzando punti di analisi. Secondo MSDN, entrambi sono trattati allo stesso modo dalle operazioni sui file tramite l'API.
Surfasb,

2
@surfasb: Tuttavia, se i collegamenti simbolici non sono specificamente supportati (e riconosciuti come tali), non verranno ricreati come collegamenti simbolici durante il ripristino dal backup.
haimg

Ah, ottimo punto! Non pensavo abbastanza lontano.
Surfasb,

Per quanto ne so, questo è più importante se al sistema operativo Windows accederà il volume.
can-ned_food,

1

Le giunzioni NTFS possono essere indirizzate solo alle directory, mentre i collegamenti simbolici funzionano anche sui file.


Ma per i file potresti usare invece un hardlink.
paradroid

0

Ecco una differenza che ho notato:

Ho una directory sincronizzata di script, app portatili, ecc. Uso uno script batch per creare una giunzione nella directory del menu Start che punta a una directory di collegamenti per le app portatili.

Una giunzione consente di visualizzare le scorciatoie nel menu Start. Quando uso invece un collegamento simbolico, non funziona.


Strano, questo funziona bene per me. Ho anche dei collegamenti simbolici alle unità flash collegate alla mia macchina.
surfasb,

@surfasb: sei sicuro di fare quello che ho descritto? I collegamenti all'interno di una directory a cui punta un collegamento simbolico con la directory del menu Start non vengono visualizzati nel mio menu Start. Lo fanno quando viene utilizzato un Junction.
paradroid

Non sono sicuro di averlo letto correttamente. Quindi, nel menu di avvio, un collegamento simbolico che punta a una cartella che contiene collegamenti? L'ho provato proprio ora. Ho anche ottenuto il link simbolico per puntare a un altro link simbolico su un percorso unc che puntava alla cartella su un percorso UNC con collegamenti. Naturalmente questo rompe le scorciatoie. Ma un attraversamento simbolico "da remoto a remoto" è disabilitato per impostazione predefinita in Windows.
Surfasb,

0

Forse l'ho perso da qualche parte nei commenti, ma una differenza molto importante tra i collegamenti simbolici e le giunzioni in Windows per me sono i privilegi necessari per creare entrambi. Mentre i collegamenti simbolici sono per impostazione predefinita solo creabili utilizzando autorizzazioni speciali che gli utenti predefiniti non hanno, le giunzioni possono essere create facilmente da tutti gli utenti OOB predefiniti e sono quindi il mio tipo di collegamento preferito per le directory.

Per impostazione predefinita, i membri del gruppo Administrators hanno questo diritto.

https://docs.microsoft.com/en-us/windows/device-security/security-policy-settings/create-symbolic-links

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.