Ansible,Vagrant,sudo和ssh-agent

所以我已经看到了这个问题 ,并将Defaults env_keep+=SSH_AUTH_SOCK到我的/etc/sudoers文件中,但是仍然无法使用sudo: truesudo_user: <user>在我的ansible playbook中从我的Vagrant框中的github克隆。 我想克隆代码作为我创build的用户来运行它,但它被certificate是非常令人沮丧的。 当我通过vagrant sshlogin时,我可以做ssh [email protected] ,但是当我做sudo -u <user> ssh [email protected]我得到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 [email protected] 

这可能工作,因为根可以读取文件

为了解决这个作为stream浪者用户运行

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

这应该让其他otheruser权限进入目录并读取文件。