Não é possível editar o arquivo '/etc/network/interfaces' através do script bash no Ubuntu

Não é possível editar o arquivo '/etc/network/interfaces' através do script bash no Ubuntu

Possível duplicata:
permissão sudo negada

Preciso editar /etc/network/interfaces através do script bash, estou fazendo algo como abaixo ...

sudo echo something > /etc/network/interfaces

Quando esta linha é executada, recebo o erro mencionado abaixo: bash: /etc/network/interfaces: Permission denied

Mas se eu editar o mesmo arquivo com algum editor, ele funcionará perfeitamente... ou seja

sudo nano /etc/network/interfaces

acima, deixe-me editar este arquivo.

Responder1

Esta pergunta já foi respondida em algum lugar deste site, mas não consegui encontrá-la.

Mas basicamente tudo se resume a isto:

sudo nano /etc/network/interfacescomeçanano /etc/rede/interfacescomo uid 0. Como o nano é executado em uid 0 e tem permissão para gravar em /etc/network/interfaces.

sudo echo something > /etc/network/interfacescomeçaecoar algocomo uid 0. Essa parte foi bem-sucedida. A saída é redirecionada para >/etc/network/interfaces`. Porém esse redirecionamento é feito com sua própria conta. E esse não tem permissão para escrever para esse local.


Em vez disso, tente isto:
sudo bash -c "echo something > /etc/network/interfaces"

Isso deve executar o bash como uid 0 e deixar o bash executar todo o comando como uid 0.

Ou simplesmente su -para fazer root. Executar o tempo todo como root não é recomendado, no entanto, há momentos em que você simplesmente deseja ter direitos suficientes sem digitar um comando sudo na frente de cada linha. Apenas não use root como usuário principal. Usá-lo para instalar e configurar um sistema é adequado.

informação relacionada