Sua abordagem com sudo tee
está bem. Uma boa consequência do uso de sudo tee
é que o comando executado antes do pipe não será executado como root. Isso é útil se você precisar apenas da saída de um programa, que não requer privilégios de root.
Se você não se importa com a saída do programa usado antes do pipe ( echo 1
neste caso), redirecione o stdout para /dev/null
:
echo 1 | sudo tee /proc/sys/net/ipv4/ip_forward > /dev/null
O acima é equivalente a sudo sh -c 'echo 1 > /proc/sys/net/ipv4/ip_forward'
com a diferença de que echo 1
é executado como root.
Se você precisar anexar a um arquivo privilegiado, use sh -c 'echo 127.0.0.1 local.host >> /etc/hosts'
ou:
echo 127.0.0.1 local.host | sudo tee -a /etc/hosts
Observe o -a
, que é uma abreviação de --append
.