Question

Le dilemme: un programme Linux que je travaille doit:

  1. Fetch un "paquet" sur git + ssh:. // protocole (en utilisant Git)
  2. Installer que "package" dans le système.

Pour git + ssh au travail, Git a besoin de voir mes clés.

Pour l'installation "package", le programme doit avoir des privilèges de super-utilisateur.

Une limitation: le programme ne devrait pas les privilèges Elevate (appel de Sudo) par lui-même. L'utilisateur doit appeler explicitement avec sudo. (Permet d'ignorer le cas lorsque l'utilisateur exécute le programme tout begin connecté en tant que root -. En supposant qu'il installera correctement puis les touches)

Alors, la question est: comment faire un accès ssh avec des clés de l'utilisateur du programme qui est appelé avec sudo

Était-ce utile?

La solution

utilisez les paramètres ssh -i identity_file. Pour dire git d'utiliser la commande appropriée, vous devez définir la variable GIT_SSH dans un fichier qui appellera ssh -i « $ @ ».

Si vous ne pouvez pas faire cela, alors vous devez supprimer des privilèges pendant que vous faites la commande git pull.

sudo -u <original_user> git fetch git+ssh:// 

Vous pouvez utiliser la variable $ {enviroment de SUDO_USER} pour savoir qui était l'utilisateur d'origine.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top