Ansible、Vagrant、sudo 與 ssh-agent

Ansible、Vagrant、sudo 與 ssh-agent

所以我看過這個問題並將其添加Defaults env_keep+=SSH_AUTH_SOCK到我的/etc/sudoers文件中,但我仍然無法使用我的 Ansible 劇本從我的 Vagrant 盒子上的 github 進行sudo: true克隆sudo_user: <user>。我想將程式碼複製為我創建的用戶來運行它,但事實證明這確實令人沮喪。當我通過登入時我可以執行此操作,但是當我這樣做時,我會收到“權限被拒絕”錯誤。當我以特定用戶的身份回顯該值時,我看到它已設定: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進入目錄並讀取文件的權限。

相關內容