Назад | Перейти на главную страницу

Ansible, Vagrant, sudo и ssh-agent

Так я видел этот вопрос и добавил Defaults env_keep+=SSH_AUTH_SOCK в мой /etc/sudoers файл, но я все еще не могу клонировать из github в моем ящике Vagrant, используя sudo: true и sudo_user: <user> в моем доступном сценарии. Я хотел бы клонировать код как пользователь, которого я создал для его запуска, но это действительно разочаровывает. я могу сделать ssh git@github.com когда я вхожу через vagrant ssh но когда я тогда сделаю sudo -u <user> ssh git@github.com Я получаю сообщение об ошибке Permission Denied. Когда я повторяю SSH_AUTH_SOCK значение как конкретный пользователь я вижу, что он установлен:

vagrant@vagrant-ubuntu-trusty-64:/tmp$ sudo -u derp echo $SSH_AUTH_SOCK
/tmp/ssh-w3XYbqlMnX/agent.1592

Я думаю, проблема в том, что у файла / tmp нет разрешений. если ты

 sudo -u root ssh git@github.com

Это может сработать, поскольку root может читать файлы

Чтобы исправить это, когда бродячий пользователь запустил

setfacl -m otheruser:x   $(dirname "$SSH_AUTH_SOCK")
setfacl -m otheruser:rwx "$SSH_AUTH_SOCK"

Это должно дать otheruser права попасть в каталог и прочитать файл.