La guía o código que hallarás en este artículo es la resolución más rápida y válida que encontramos a esta duda o dilema.
Solución:
Solución 1:
no puedes usar sudo
para afectar la redirección de salida; >
y >>
(y, para completar, <
) se efectúan con el privilegio del usuario que llama, porque la redirección la realiza el shell que llama, no el subproceso llamado.
O hazlo
cp /etc/sysctl.conf /tmp/
echo "net.ipv4.ip_forward = 1" >> /tmp/sysctl.conf
sudo cp /tmp/sysctl.conf /etc/
o
sudo /bin/su -c "echo 'net.ipv4.ip_forward = 1' >> /etc/sysctl.conf"
Solución 2:
Puede que le resulte más sencillo utilizar este comando:
echo net.ipv4.ip_forward = 1 | sudo tee -a /etc/sysctl.conf
Solución 3:
sudo
ejecuta solo su comando, no la redirección, como root. Deberá envolverlo todo en un comando donde todo se ejecuta como root:
sudo sh -c 'echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf'
Solución 4:
El comando sudo echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf
se interpreta como que tú (no root) escribir el resultado de sudo echo "net.ipv4.ip_forward = 1"
en /etc/sysctl.conf.
Correr
sudo -s 'echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf'
o
sudo su -c 'echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf'
correr echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf
como raíz.
Solución 5:
sudo sed -i "$ a "
-i
: editar archivo en su lugar.$ a
: añadir texto a la última línea
Usando sed
El comando le evita la molestia de las redirecciones y las canalizaciones.
En tu caso: sudo sed -i "$ a net.ipv4.ip_forward = 1" /etc/sysctl.conf
Más adelante puedes encontrar las crónicas de otros usuarios, tú asimismo puedes mostrar el tuyo si te gusta.