Ansible, Vagrant, sudo и ssh-agent

Ansible, Vagrant, sudo и ssh-agent

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

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

решение1

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

 sudo -u root ssh [email protected]

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

Чтобы исправить это, запустите как пользователь vagrant:

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

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

Связанный контент