Ubuntu 14 - incapaz de usar o sudo echo para sobrescrever arquivos [duplicados]

0

Para os scripts bash do Ubuntu 12.04, eu costumava ser capaz de executar comandos como o exemplo abaixo para sobrescrever arquivos:

sudo echo 'line1   
line2
line3' > /etc/some/config/file.conf

Desde o Ubuntu 14.04, agora tenho que dividi-lo para obter o mesmo comportamento:

sudo echo 'line1
line2
line3' | sudo tee /etc/some/config/file.conf

Eu estou supondo que esta é uma medida de segurança extra? Existe alguma maneira de voltar ao antigo comportamento?

UPDATE

Como alguns apontaram corretamente, esse comportamento é consistente no Ubuntu 12.04 e no Ubuntu 14.04. Acredito que eu tenha me misturado, mas porque se alguém executa o comando em um script bash chamado com sudo, ele executa bem, no entanto, colando o comando na CLI, resulta em permissão negada . Eu estava comparando maçãs com laranjas.

    
por Programster 20.06.2014 / 13:07

1 resposta

5

Você não pode usar diretamente > with sudo do jeito que você está fazendo, porque o redirecionamento é executado pelo shell e não pelo sudo e, portanto, o comando falhará ao gravar no arquivo devido a permissões.

Consulte esta pergunta para soluções apropriadas para isso:

Atualização:

Caso você copie:

sudo echo 'line1   
line2
line3' > /etc/some/config/file.conf

para um arquivo, digamos scrip.sh , e execute o script como

sudo bash script.sh

você não receberá um erro e o script será executado com êxito porque, nesse caso, você está executando o script fornecendo ao shell as permissões apropriadas ( sudo bash ).

    
por jobin 20.06.2014 / 13:15