Como dar para uma habilidade do usuário como root com visudo? [duplicado]

4

Eu adiciono esta linha a visudo , para dar permissões completas ao usuário yael:

  yael ALL=(ALL) NOPASSWD: ALL

Mas quando quero atualizar o arquivo /etc/hosts , recebo permissão negada:

 su – yael
 echo "10.10.10.10 yael_host">>/etc/hosts
 -bash: /etc/hosts: Permission denied


 sudo  echo "10.10.10.10 yael_host">>/etc/hosts
-bash: /etc/hosts: Permission denied


 ls -ltr /etc/hosts
 -rw-r--r--. 1 root root 185 Aug  7 09:29 /etc/hosts

Como posso dar ao usuário yael capacidade como root?

    
por yael 07.08.2017 / 11:39

2 respostas

21

A fonte do problema é que o redirecionamento de saída é feito pelo shell (user yael) e não pelo sudo echo .

Para garantir que a gravação em /etc/hosts será feita pelo usuário root em vez do usuário yael - você pode usar o seguinte formato:

echo "10.10.10.10 yael_host" | sudo tee --append /etc/hosts

ou

sudo sh -c "echo '10.10.10.10 yael_host'>>/etc/hosts"
    
por 07.08.2017 / 11:49
1

Edite seu /etc/sudoers ( visudo ) da seguinte forma:

# User privilege specification
root    ALL=(ALL:ALL) ALL
yael  ALL=(ALL:ALL) ALL

Em seguida, execute:

sudo -- sh -c 'echo "10.10.10.10 yael_host">> /etc/hosts'

Ou

sudo sh -c 'echo "10.10.10.10 yael_host">> /etc/hosts'
    
por 07.08.2017 / 11:55