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/interfaces
começ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/interfaces
começ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.