It does have sudo access, but it is restricted, namely it cannot use exec 
*/bin/sh.*
So if I do:
*napicella@localhost > ssh blablahost*
*napicella@blalahost> sudo cp /tmp/a  > /etc/yum.repos.d/a *

This works as expected, what it does not work is:

*napicella@blalahost> sudo /bin/bash -c 'cp /tmp/a  > /etc/yum.repos.d/a'*
*Sorry user napicella is not allowed to execute /bin/bash .....*

which appears to be exactly what Ansible does when the *become* property is 
set in the playbook task

On Friday, 28 September 2018 20:32:25 UTC+3, Karthik Chandrashekar wrote:
>
> Well, is that user been given sudo rights on remote machine if so, Could 
> you check if you are able to login as that user and execute the same task 
> manually without ansible.
>
> On Friday, September 28, 2018 at 10:58:44 PM UTC+5:30, Nicola Apicella 
> wrote:
>>
>> I am running the playbook without specifying an user:
>>
>>
>> *ansible-playbook --ask-become-pass -vvv test-playbook*
>> Running the command with -u flag does not change the error:
>>
>> *ansible-playbook -u napicella --ask-become-pass -vvv test-playbook*
>>
>> where *napicella *is an user on both the local machine and the remote one
>>
>> On Friday, 28 September 2018 20:08:28 UTC+3, Karthik Chandrashekar wrote:
>>>
>>> What is the username you are trying to connect as ? 
>>>
>>> On Friday, September 28, 2018 at 10:06:32 PM UTC+5:30, Nicola Apicella 
>>> wrote:
>>>>
>>>> Hi, 
>>>>
>>>> I am sorry for the newbie question, I ve just started looking into 
>>>> Ansible but I did not find any info in the docs or anywhere else that 
>>>> could 
>>>> help me find a resolution.
>>>> I have a bunch of hosts on which I have sudo access.  
>>>> *>sudo whoami*
>>>> *root*
>>>>
>>>> But I do not have permission to run
>>>> *> sudo /bin/sh -c echo "Hello!"*
>>>> *Sorry, user some-user is not allowed to execute '/bin/sh -c echo Hello 
>>>> world' as root on blabahost.*
>>>>
>>>> This is blocking me from executing a simple playbook which copies files 
>>>> under */etc/yum.repos.d*
>>>> The playbook like this:
>>>>
>>>> *---*
>>>> *- name: test-pl*
>>>> *  hosts: blablahost*
>>>>
>>>> *  tasks:*
>>>> *  - name: test*
>>>> *    become: yes*
>>>> *    become_method: sudo*
>>>> *    copy:*
>>>> *      content: ""*
>>>> *      dest: /etc/yum.repos.d/a*
>>>> *      force: no*
>>>> *      group: root*
>>>> *      owner: root*
>>>> *      mode: 0555*
>>>>
>>>> The error I get is basically the same one mentioned above. My user is 
>>>> not allowed to execute */bin/sh *as root.
>>>>
>>>> blablahost | FAILED! => {
>>>>     "changed": false, 
>>>>     "module_stderr": "Shared connection to blablahost closed.\r\n", 
>>>>     "module_stdout": "\r\nSorry, user some-user is not allowed to 
>>>> execute '/bin/sh -c echo BECOME-SUCCESS-rhzefxcamynrooqcpyqppdiqvzlqbmyt; 
>>>> /usr/bin/python 
>>>> /home/some-user/.ansible/tmp/ansible-tmp-1538151353.33-57836367165837/command.py'
>>>>  
>>>> as root on blablahost.\r\n", 
>>>>     "msg": "MODULE FAILURE", 
>>>>     "rc": 1
>>>> }
>>>>
>>>> The problem could be fixed if Ansible would allow to start the bash as 
>>>> a normal user and then run the copy command with *sudo.*
>>>> Basically, avoiding executing */bin/sh *as root.
>>>> Are you aware of a workaround for this case? Or am I missing something?
>>>>
>>>>
>>>> Thanks in advance.
>>>> -Nicola
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>

-- 
You received this message because you are subscribed to the Google Groups 
"Ansible Project" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/ansible-project/813c193a-0d8b-4ec2-87a8-6b052eb6126e%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to