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