echo para / etc / sudoers causando erro de pasrse

1

Usando fabric se eu fizer um eco para o arquivo sudoers pela segunda vez, o arquivo corrompido funciona bem para o primeiro eco. Qual poderia ser o motivo?

Primeiro eco:

sudo('echo "django    ALL=(ALL:ALL) ALL" | sudo tee -a /etc/sudoers')

Segundo eco:

sudo('echo "celery    ALL(www-data) NOPASSWD: /usr/bin/unoconv" | sudo tee -a /etc/sudoers')

Após o segundo comando echo e ao tentar fazer o sudo estou recebendo erro de análise e não consigo recuperar o arquivo sudoers novamente, tenho que criar uma nova instância infelizmente:

>>> /etc/sudoers: syntax error near line 28 <<<
sudo: parse error in /etc/sudoers near line 28
sudo: no valid sudoers sources found, quitting

Não há problema de sintaxe como tal no segundo comando, porque se eu digitar manualmente usando visudo , tudo funcionará bem. E eu não acho que isso seja problema relacionado ao tecido. Fabric está apenas executando comandos no servidor remoto.

    
por Aamir Adnan 06.08.2014 / 22:30

1 resposta

3

Como postado, a linha no seu segundo eco está errada; Eu tentei adicionar manualmente

django ALL=(ALL:ALL) ALL 
celery ALL(www-data) NOPASSWD: /usr/bin/unoconv 

para meus sudoers usando visudo e também recebo um erro de sintaxe. Você precisa = antes (www-data) na segunda linha.

Uma dica para validar a sintaxe do sudo sem destruir o arquivo sudoers: echo 'blah blah' | visudo -f - -c . Isso pelo menos informará se a linha parece OK ou tem erros, sem tocar no arquivo sudoers.

    
por roadmr 06.08.2014 / 23:14