# Ansible become\_user failing while logging-in as vagrant user

**URL:** <https://forum.ansible.com/t/ansible-become-user-failing-while-logging-in-as-vagrant-user/33222>\
**Category:** Ansible Project\
**Created:** [June 20, 2020, 4:22pm UTC](https://forum.ansible.com/t/ansible-become-user-failing-while-logging-in-as-vagrant-user/33222 "2020-06-20T16:22:27Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![Mukuntha\_rajaa](https://avatars.discourse-cdn.com/v4/letter/m/cab0a1/32.png) [@Mukuntha\_rajaa](https://forum.ansible.com/u/Mukuntha_rajaa)\
**Post date:** [June 20, 2020, 4:22pm UTC](https://forum.ansible.com/t/ansible-become-user-failing-while-logging-in-as-vagrant-user/33222/1 "2020-06-20T16:22:27Z")

</div>

Hello,

**Problem:**  
Via inventory, I am logging as “vagrant” user. I am trying to switch to another-user and then create .ssh directory with owner and group as this another-user. It is failing saying permission denied.

`TASK [Ensure dot-ssh directory exists] *********************************************************************************************fatal: [192.168.99.105]: FAILED! => {"changed": false, "msg": "There was an issue creating /home/mrajaa/.ssh as requested: [Errno 13]**Permission denied**: b'/home/mrajaa/.ssh'", "path": "/home/mrajaa/.ssh/"}`

“vagrant” user has sudo permission in the target cluster.

`  
sudo cat /etc/sudoers.d/vagrant-nopasswd  
vagrant ALL=(ALL) NOPASSWD: ALL

`

**Problem in detail:**  
I am trying to run a playbook on vagrant-provisioned-virtualbox, like

ap -i inventory-ansible main.yml --ask-vault-pass

Inventory is like this,

`  
[vagrant-demo]  
192.168.99.105

[vagrant-demo:vars]  
ansible\_user=vagrant  
ansible\_ssh\_private\_key\_file=~/.vagrant.d/insecure\_private\_key  
`

$ cat main.yml

`

---

<div class="post-metadata">

**Author:** ![vadud3](https://avatars.discourse-cdn.com/v4/letter/v/ecc23a/32.png) [@vadud3](https://forum.ansible.com/u/vadud3)\
**Post date:** [June 20, 2020, 5:40pm UTC](https://forum.ansible.com/t/ansible-become-user-failing-while-logging-in-as-vagrant-user/33222/2 "2020-06-20T17:40:25Z")

</div>

remove  
become\_user: ‘{{ username }}’

By default become\_user is root. [1]

[1] [https://docs.ansible.com/ansible/latest/user\_guide/become.html](https://docs.ansible.com/ansible/latest/user_guide/become.html)

---

<div class="post-metadata">

**Author:** ![Mukuntha\_rajaa](https://avatars.discourse-cdn.com/v4/letter/m/cab0a1/32.png) [@Mukuntha\_rajaa](https://forum.ansible.com/u/Mukuntha_rajaa)\
**Post date:** [June 21, 2020, 5:52am UTC](https://forum.ansible.com/t/ansible-become-user-failing-while-logging-in-as-vagrant-user/33222/3 "2020-06-21T05:52:01Z")

</div>

Hello,

I have added that step intentionally. So that all the tasks are executed under “user” privileges. So that directory/file permission, etc will be proper.

---

<div class="post-metadata">

**Author:** ![Dick\_Visser](https://avatars.discourse-cdn.com/v4/letter/d/d9b06d/32.png) [@Dick\_Visser](https://forum.ansible.com/u/Dick_Visser)\
**Post date:** [June 21, 2020, 6:54am UTC](https://forum.ansible.com/t/ansible-become-user-failing-while-logging-in-as-vagrant-user/33222/4 "2020-06-21T06:54:32Z")

</div>

This is probably because the parent directory isn’t there, and user mrajaa doesn’t have permission create it.

I don’t see any task to create that user.  
Those steps are missing from your playbook (or you didn’t post them)

---

<div class="post-metadata">

**Author:** ![Mukuntha\_rajaa](https://avatars.discourse-cdn.com/v4/letter/m/cab0a1/32.png) [@Mukuntha\_rajaa](https://forum.ansible.com/u/Mukuntha_rajaa)\
**Post date:** [June 21, 2020, 7:29am UTC](https://forum.ansible.com/t/ansible-become-user-failing-while-logging-in-as-vagrant-user/33222/5 "2020-06-21T07:29:24Z")

</div>

Hello,

Thanks for the e-mail. I have figured out the problem.

```auto
---
- hosts: all
  #become: yes
  #become_user: "{{ username }}"
  #become_method: sudo
- import_playbook: ../../main.yml

```

In the above case, becoming as another user is of no use. Once I have imported playbook ( ie., main.yml ), it was running as vagrant user somehow. So I have commented it out. Once I have added like this in …/…/main.yml, then everything is working fine. main.yml is the one which downloads and adds ssh keys.

```auto
$ head -6 ../../main.yml
---
- hosts: all

  become: yes
  become_user: "{{ username }}"
  become_method: sudo

```

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/ansible/original/1X/1882d9a01da5d8996a862359b0913cc568a39b84.svg) [@system](https://forum.ansible.com/u/system)\
**Post date:** [June 22, 2020, 6:46pm UTC](https://forum.ansible.com/t/ansible-become-user-failing-while-logging-in-as-vagrant-user/33222/6 "2020-06-22T18:46:55Z")

</div>

become ONLY affects the play/task it is enabled for, you only set it  
in the first play, the imported play does not inherit become settings.
