GNU/Linux >> Tutoriels Linux >  >> Linux

Erreur lors de l'utilisation de l'assistant d'identification Git avec gnome-keyring en tant que Sudo

A côté de l'utilisation de sudo, notez qu'en 2016, libgnome-keyring est spécifique à GNOME et est désormais obsolète (depuis janvier 2014, en fait).

Option 2022 :git-credential-manager

Microsoft fournit un assistant d'identification multiplateforme nommé GCM (Git Credential Manager) , que vous pouvez installer (pas besoin de le compiler) et configurer :

git-credential-manager-core configure

Vous aurez besoin de Git 2.27+ pour l'utiliser.

Option 2016 :git-credential-libsecret

Git 2.11+ (Q4 2016) incluait un nouvel assistant d'identification utilisant libsecret .

Voir commit 87d1353 (09 octobre 2016) par Mantas Mikulėnas (grawity ).

Un nouvel assistant d'identification qui parle via "libsecret " avec les implémentations de l'API XDG Secret Service a été ajouté à contrib/credential/ .

il utilise libsecret qui peut prendre en charge d'autres implémentations de l'API XDG SecretService.

Mais en 2022, ce n'est plus nécessaire. Voir ci-dessus

Comme noté par mati865 dans les commentaires :

Il convient de noter que certaines distributions comme Arch et Fedora fournissent des assistants disponibles à la fois en binaire et en source.

  • Binaire Libsecret sur Arch :/usr/lib/git-core/git-credential-libsecret , et
  • Binaire Libsecret sur Fedora :/usr/libexec/git-core/git-credential-libsecret .

Remarque : Comme @rugk l'ajoute dans les commentaires, pour Fedora et Git v2.25.2-1 ou supérieur, vous devez installer un paquet supplémentaire avec ce binaire, car il a été séparé du paquet git principal :

dnf install git-credential-libsecret

Utilisation de sudo exécute la commande en tant que root. C'est comme demander à votre administrateur système, si vous en avez un, d'exécuter une commande pour vous. Le root l'utilisateur n'est pas destiné à faire quoi que ce soit lié au développement, et donc git n'est pas destiné à être utilisé en tant que root.

Une fois que vous exécutez une commande en tant qu'un autre utilisateur (root ou autre), il est prévu que cet autre utilisateur ne puisse pas communiquer normalement avec votre utilisateur habituel (en particulier, il ne trouve pas votre gnome-keyring-daemon ici).

Donc, la réponse est :"ne fais pas ça". Si vous avez vraiment besoin de cloner dans un répertoire particulier, accordez-vous des autorisations sur ce répertoire comme suggéré dans la réponse de CodeWizard. En fait, si vous avez besoin de cloner dans un répertoire où vous n'avez pas la permission, demandez-vous si vous faites quelque chose de mal :en principe, cela ne devrait pas arriver (je suppose :vous avez déjà utilisé sudo trop dans le passé et c'est la raison pour laquelle vous avez des répertoires inscriptibles ici et là).


J'ai parfois besoin d'exécuter sudo git clone car parfois le répertoire dans lequel je dois créer un clone l'exige. Toute aide serait appréciée

Le dossier dans lequel vous essayez de cloner le référentiel a été créé par root, vous n'avez donc pas l'autorisation d'écrire ou de créer un dossier sous celui-ci, sauf si vous êtes root (sudo ), définissez les autorisations (chmod ou chown ) et vous pourrez cloner dans le dossier.

chmod 755 /path

Linux
  1. Utiliser Notify-send avec Cron ?

  2. Auto-complétion Git ?

  3. Erreur de clé Ssh invalide dans Juju lors de son utilisation avec Maas ?

  4. dynamic_cast échoue lorsqu'il est utilisé avec dlopen/dlsym

  5. Erreur d'installation de Pyaudio - 'la commande 'gcc' a échoué avec le statut de sortie 1'

Correction de "l'erreur de format Exec" lors de l'exécution de scripts avec la commande run-parts

Pourquoi mon $LD_LIBRARY_PATH est-il désactivé lors de l'utilisation de screen avec bash ?

sudo sans mot de passe lorsqu'il est connecté avec des clés privées SSH

Ignorer l'invite du nom d'utilisateur lors de l'utilisation de git

'Étiquette de disque non reconnue' - lors de l'utilisation d'images séparées avec qemu

commande linux trouvée mais introuvable lors de l'utilisation de sudo