Scénario - Liaison ou jonction symbolique NTFS?

17

Différences

┌───────────────┬──────────┬──────────┬──────┬──── ───────┬─────┐
│ │ Absolu │ Relatif │ Fichier │ Répertoire │ UNC │
├───────────────┼──────────┼──────────┼──────┼──── ───────┼─────┤
│ Lien symbolique │ Oui │ Oui │ Oui │ Oui │ Oui │
│ Jonction │ Oui │ - │ - │ Oui │ - │
└───────────────┴──────────┴──────────┴──────┴──── ───────┴─────┘

Scénario

Supposons que nous créons un point d'analyse pour créer la redirection C:\SomeDir => D:\SomeDir

Comme ce scénario ne nécessite que des chemins locaux absolus, une jonction ou un lien symbolique fonctionnerait. Dans cette situation, y a-t-il un avantage à utiliser l'un ou l'autre?

Supposons que Windows 7 pour le système d'exploitation, sans tenir compte de la compatibilité descendante. (Avant Vista, les liens symboliques ne sont pas pris en charge en mode natif, bien qu'il existe un pilote tiers qui prend en charge les liens symboliques sur Windows XP.)

Mise à jour

J'ai trouvé une autre différence.

  • Lien symbolique - Les autorisations du lien n'affectent que les opérations de suppression / renommage sur le lien lui-même, l'accès en lecture / écriture (à la cible) est régi par les autorisations de la cible
  • Junction - Les autorisations de la jonction affectent l'énumération, la révocation des autorisations sur la jonction refusera la liste des fichiers via cette jonction, même si le dossier cible a des ACL plus permissives

Les autorisations le rendent intéressant, car les liens symboliques peuvent permettre aux applications héritées d'accéder aux fichiers de configuration dans les zones restreintes UAC (telles que %ProgramFiles%) sans modifier les autorisations d'accès existantes, en stockant les fichiers dans un emplacement non restreint et en créant des liens symboliques dans le répertoire restreint.

Update 2

Windows 8.1 résoudra les liens de répertoire symboliques lors de la navigation dans l'un via la zone de texte dans une Save As...boîte de dialogue. Les jonctions ne sont pas développées.


la source
Avez-vous un lien vers les informations de différence des autorisations? C'est tout à fait la découverte.
surfasb
Mes tests confirment que l'accès en lecture au répertoire cible (c'est-à-dire la liste du contenu du répertoire) est limité par les autorisations sur le point de jonction en plus de celles sur le répertoire cible. Cependant, aucun autre accès ne semble affecté. En particulier, vous pouvez créer des fichiers et des sous-dossiers si les autorisations du répertoire cible le permettent, quelles que soient les autorisations du point de jonction.
Harry Johnston
@HarryJohnston: Au départ, je soupçonnais une certaine incohérence car je bloque les autorisations de suppression et d'écriture sur les juctions, mais les éléments et les sous-dossiers en dessous fonctionnent très bien.
surfasb
Je ne ferai pas de cette réponse une réponse complète à moins que cela ne soit demandé, mais si vous utilisez un GNU ou un autre système non Windows pour accéder au volume via mount.cifs, alors les liens symboliques apparaîtront comme tels tandis que les jonctions seront considérées comme des répertoires normaux - probablement à cause du point où se produit la résolution d'E / S, c'est-à - dire localement sur l'hôte Windows.
can-ned_food

Réponses:

4

Je comprends que les liens symboliques NTFS remplacent les jonctions sur les nouveaux systèmes d'exploitation Windows (Vista / 7/8) car ils fonctionnent de la même manière mais fournissent également des fonctionnalités supplémentaires (points distants). Donc, à condition de ne travailler qu'avec des systèmes d'exploitation plus récents, il n'y a aucune raison de ne pas utiliser l'option de lien symbolique.

Garrett
la source
Par défaut, les liens symboliques sur les serveurs seront ignorés, et même s'ils sont suivis sont limités par les règles d'accès au niveau du partage du serveur: ainsi, par exemple, vous ne pouvez pas créer de lien symbolique vers un emplacement sur le serveur qui n'est pas partagé, ou si le le partage ne donne pas accès à l'utilisateur. Les liens symboliques ne peuvent donc pas remplacer les points de jonction dans tous les contextes.
Harry Johnston
2

Je pense que les points de jonction ont un support plus large dans les logiciels de sauvegarde que les liens symboliques. Vous devez vérifier avec le programme de sauvegarde que vous utilisez quelle fonctionnalité est prise en charge.

S'il n'est pas pris en charge, le lien symbolique / point de jonction sera soit sauvegardé en tant que répertoire distinct (et restauré en tant que tel), soit pas du tout sauvegardé.

À part le problème de sauvegarde, je ne vois pas de raison de préférer l'un à l'autre, dans votre cas spécifique (répertoire local).

haimg
la source
Les points de jonction et les liens symboliques sont tous deux implémentés via NTFS à l'aide de points d'analyse. Selon MSDN, ils sont tous deux traités de la même manière par les opérations sur les fichiers via l'API.
surfasb
2
@surfasb: Cependant, si les liens symboliques ne sont pas spécifiquement pris en charge (et reconnus comme tels), ils ne seront pas recréés en tant que liens symboliques lors de la restauration à partir de la sauvegarde.
haimg
Ah, très bon point! Je ne pensais pas assez loin.
surfasb
Pour autant que je sache, cela est plus important si le volume sera accessible par les anciens systèmes d'exploitation Windows.
can-ned_food
1

Les jonctions NTFS ne peuvent être pointées que vers des répertoires, tandis que les liens symboliques fonctionnent également sur les fichiers.

user1686
la source
Mais pour les fichiers, vous pouvez utiliser un lien physique à la place.
paradroid
0

Voici une différence que j'ai remarquée:

J'ai un répertoire synchronisé de scripts, d'applications portables, etc. J'utilise un script batch pour créer une jonction dans le répertoire du menu Démarrer qui pointe vers un répertoire de raccourcis pour les applications portables.

Une jonction permet aux raccourcis d'apparaître dans le menu Démarrer. Lorsque j'utilise un lien symbolique à la place, cela ne fonctionne pas.

paradroid
la source
Étrange, cela fonctionne bien pour moi. J'ai également des liens symboliques vers des lecteurs flash connectés à ma machine.
surfasb
@surfasb: Êtes-vous sûr de faire ce que j'ai décrit? Les raccourcis dans un répertoire pointé par un lien symbolique avec le répertoire du menu Démarrer n'apparaissent pas dans mon menu Démarrer. Ils le font lorsqu'une jonction est utilisée à la place.
paradroid
Je ne sais pas si j'ai bien lu. Donc, dans le menu Démarrer, un lien symbolique qui pointe vers un dossier qui contient des raccourcis? Je l'ai essayé tout à l'heure. J'ai même obtenu le lien symbolique pour pointer vers un autre lien symbolique sur un chemin unc qui pointait vers le dossier sur un chemin UNC avec des raccourcis. Bien sûr, cela brise les raccourcis. Mais une traversée de lien symbolique "de distance à distance" est désactivée par défaut dans Windows.
surfasb
0

Je l'ai peut-être manqué quelque part dans les commentaires, mais une différence très importante entre les liens symboliques et les jonctions dans Windows est pour moi les privilèges nécessaires pour créer les deux. Bien que les liens symboliques ne soient par défaut créables qu'à l'aide d'autorisations spéciales que les utilisateurs par défaut n'ont pas, les jonctions peuvent être créées facilement par tous les utilisateurs par défaut OOB et sont donc mon type de lien préféré pour les répertoires.

Par défaut, les membres du groupe Administrateurs ont ce droit.

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

Thorsten Schöning
la source