No se puede editar el archivo '/etc/network/interfaces' mediante el script bash en Ubuntu

No se puede editar el archivo '/etc/network/interfaces' mediante el script bash en Ubuntu

Posible duplicado:
permiso sudo denegado

Necesito editar /etc/network/interfaces a través del script bash, estoy haciendo algo como lo siguiente...

sudo echo something > /etc/network/interfaces

Cuando se ejecuta esta línea, aparece el error que se menciona a continuación: bash: /etc/network/interfaces: Permission denied

Pero si edito el mismo archivo con algún editor, funciona perfectamente... es decir

sudo nano /etc/network/interfaces

arriba déjame editar este archivo.

Respuesta1

Esta pregunta ya está respondida en algún lugar de este sitio, aunque no pude encontrarla.

Pero básicamente todo se reduce a esto:

sudo nano /etc/network/interfacesempiezanano /etc/red/interfacescomo uid 0. Dado que nano se ejecuta en uid 0 y tiene permiso para escribir en /etc/network/interfaces.

sudo echo something > /etc/network/interfacesempiezahacer eco de algocomo uid 0. Esa parte tiene éxito. La salida se redirige a >/etc/network/interfaces`. Sin embargo, esta redirección se realiza con su propia cuenta. Y ese no tiene permiso para escribir en esa ubicación.


Pruebe esto en su lugar:
sudo bash -c "echo something > /etc/network/interfaces"

Eso debería ejecutar bash como uid 0 y permitir que bash ejecute todo el comando como uid 0.

O simplemente su -rootear. No se recomienda ejecutar todo el tiempo como root; sin embargo, hay ocasiones en las que simplemente desea tener suficientes derechos sin escribir un comando sudo delante de cada línea. Simplemente no utilice root como usuario principal. Usarlo para instalar y configurar un sistema está bien.

información relacionada