web-dev-qa-db-fra.com

création d'un lien symbolique: erreur de protocole

J'ai créé linux (Centos) sur ma box virtuelle. Lorsque j'y accède et que j'essaye de créer un lien symbolique (sur mon dossier partagé avec accès complet):

ln -s path/folder/example myFolder

Je reçois une erreur:

ln: creating symbolic link `myFolder': Protocol error

Y a-t-il une raison ou une solution à cela?

29
TroodoN-Mike

C'est un problème avec le système de fichiers Host. Vérifiez que les autorisations sur le dossier Host sont adéquates et que le système de fichiers Host prend en charge les liens symboliques.

19
Paul Dixon

Faites un clic droit sur votre invite de commande et "Exécuter en tant qu'administrateur" (ou tout programme que vous utilisez pour créer ces liens symboliques doit être exécuté en tant qu'administrateur).

25
Angela Zenner

Voici la solution dans un ticket sur virtualbox.org: https://www.virtualbox.org/ticket/10085#comment:32 (Remarque: Exécutez "whoami/priv" dans la console avec des privilèges administratifs )

J'ai fait des recherches sur Windows sur ce bogue.

Si votre utilisateur est du type Administrateur (plutôt qu'un compte Standard), il n'y a aucun moyen d'exécuter VB avec des liens symboliques fonctionnant sans l'invite UAC.

Si vous avez un compte utilisateur Standard (ou si vous êtes prêt à passer votre compte à Standard et à créer un compte Admin distinct), la solution existe. Vous aurez cependant besoin de privilèges d'administrateur pour effectuer plusieurs étapes (pas nécessairement pour votre compte d'utilisateur).

  1. Exécutez la stratégie de sécurité locale (Win + R, tapez "secpol.msc", confirmez UAC). Ensuite, accédez à "Stratégies locales-> Attribution des droits utilisateur".
  2. Recherchez l'autorisation appelée "Créer des liens symboliques" et double-cliquez dessus. Ajoutez votre utilisateur à la liste des objets disposant de cette autorisation. Ou vous pouvez ajouter le groupe "Utilisateurs". Déconnectez-vous et connectez-vous. Vous pouvez vérifier le succès en exécutant dans la console:

    whoami /priv
    

    Si vous voyez le privilège SeCreateSymbolicLinkPrivilege activé, vous avez bien fait.

  3. Assurez-vous que votre utilisateur a un accès approprié au dossier partagé sur le système hôte.

  4. Comme mentionné précédemment, exécutez

    VBoxManage setextradata VM_NAME VBoxInternal2/SharedFoldersEnableSymlinksCreate/SHARE_NAME 1
    

    dans une console du dossier C:\Program Files\VirtualBox. N'oubliez pas de remplacer VM_NAME par le nom de votre VM et SHARE_NAME par le nom du dossier partagé (tel qu'il apparaît dans les paramètres VM).

  5. Vous avez terminé.

S'il vous arrive de posséder l'une des versions "inférieures" de Windows (par exemple 7 Home), vous n'avez pas l'utilitaire "secpol.msc". Voir Comment puis-je accorder SeCreateSymbolicLink sur Windows Vista Édition familiale pour obtenir de l'aide.

20
Hector GR

Si je comprends bien, les hôtes Windows VirtualBox ne prennent pas en charge les liens (de https://www.virtualbox.org/manual/ch04.html#sharedfolders )

Depuis la version 4.0, les dossiers partagés de VirtualBox prennent également en charge les liens symboliques (liens symboliques), dans les conditions suivantes:

Le système d'exploitation hôte doit prendre en charge les liens symboliques (c'est-à-dire qu'un hôte Mac, Linux ou Solaris est requis).

Actuellement, seuls Linux et Solaris Guest Additions prennent en charge les liens symboliques.

Pour des raisons de sécurité, le système d'exploitation invité n'est pas autorisé à créer des liens symboliques par défaut. Si vous faites confiance au système d'exploitation invité pour ne pas abuser de la fonctionnalité, vous pouvez activer la création de liens symboliques pour "nom de partage" avec:

VBoxManage setextradata "VM name" VBoxInternal2/SharedFoldersEnableSymlinksCreate/sharename 1

3
cancerbero