Ansible、Vagrant、sudo、ssh-agent

Ansible、Vagrant、sudo、ssh-agent

私は見てきましたこの質問Defaults env_keep+=SSH_AUTH_SOCKをファイルに追加しましたが、Vagrant ボックスのとAnsible プレイブックを/etc/sudoers使用して github からクローンすることはできません。実行するために作成したユーザーとしてコードをクローンしたいのですが、非常にイライラしています。経由でログインするとできますが、その場合、権限が拒否されましたというエラーが表示されます。特定のユーザーとして値をエコーすると、次のように設定されていることがわかります。sudo: truesudo_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]

ルートはファイルを読み込めるので、うまくいくかもしれない

これを修正するには、vagrantユーザーとして以下を実行します。

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

これによりotheruser、ディレクトリにアクセスしてファイルを読み取る権限が付与されるはずです。

関連情報