Как получить доступ к ssh-ключам пользователя из программы, которая запускается с помощью sudo? - PullRequest
1 голос
/ 04 января 2011

Дилемма: программа для Linux, над которой я работаю, должна:

  1. Выбрать "пакет" по протоколу git + ssh: // (используя Git).
  2. Установите этот «пакет» в системе.

Для работы git + ssh, Git должен увидеть мои ключи.

Для установки «пакета» программа должна иметь суперпользователяпривилегии.

Ограничение: программа не должна повышать привилегии (вызывать sudo) сама по себе.Пользователь должен явно вызвать его с помощью sudo.(Позволяет игнорировать случай, когда пользователь запускает программу, когда начинает входить в систему как root - при условии, что он правильно настроит ключи.)

Итак, вопрос: как сделать ssh-доступ с помощью пользовательских ключей из программы, котораявызывается с помощью sudo?

1 Ответ

3 голосов
/ 04 января 2011

использовать параметры -sh -i identity_file. Чтобы указать git использовать правильную команду, вы должны установить переменную GIT_SSH в файл, который будет вызывать ssh -i "$ @".

Если вы не можете этого сделать, вы должны отбросить привилегии при выполнении команды git pull.

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

Вы можете использовать переменную окружения $ {SUDO_USER}, чтобы узнать, кем был первоначальный пользователь.

...