estendendo o escopo do sudo?

1

Não há problema em usar sudo em um único comando para executá-lo com privilégios de superusuário:

sudo echo "hi"

Mas quando eu uso pipes com o comando:

sudo echo "hi" > /a.txt

O privilégio de superusuário não se estende à parte do pipe ( > /a.txt ) e eu recebo um erro de permissão negada:

bash: /a.txt: Permission denied

Minha pergunta é:

Existe uma sintaxe na qual eu possa estender o escopo de sudo acima para também trabalhar na parte do pipeline?

    
por tinlyx 11.04.2017 / 05:20

1 resposta

6

Execute o comando em um shell com raiz elevada e, em seguida, seu redirecionamento de E / S também será feito como root:

sudo bash -c 'echo "hi" > /a.txt'

Se você não quiser criar um subshell para fazer isso, aqui está uma solução alternativa com tee :

echo "hi" | sudo tee /a.txt > /dev/null

Recursos adicionais:

por 11.04.2017 / 06:12

Tags