Comment les clés SSH de l'utilisateur d'accès du programme qui est exécuté avec sudo?
-
15-10-2019 - |
Question
Le dilemme: un programme Linux que je travaille doit:
- Fetch un "paquet" sur git + ssh:. // protocole (en utilisant Git)
- 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
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.