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