Descargo de responsabilidad: soy bastante novato en sysadmin.
Estoy tratando de configurar el reenvío de puertos en una instancia de AWS EC2, esto debe hacerse en la línea de comandos porque no quiero entrar y editar nada, tiene que ser automático (es parte de un proceso de compilación )
sudo echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf
Permiso denegado
Lo extraño es que he estado usando (con éxito) sudocasi todos los comandos que requieren suprivilegios. Si lo hago sudo suantes del comando (probarlo a mano en una sshsesión), entonces funciona.
¿Razones detrás de esto? ¿Posibles soluciones que no involucren sudo suo ediciones manuales?
ubuntu
ssh
amazon-ec2
sudo
bevacqua
fuente
fuente

sudo -iRespuestas:
No puede usar
sudopara afectar la redirección de salida;>y>>(y, para completar,<) se efectúan con el privilegio del usuario que realiza la llamada, porque la redirección se realiza mediante el shell de la llamada, no el subproceso llamado.Tampoco
o
fuente
Puede que le resulte más sencillo usar este comando:
fuente
sudoejecuta solo su comando, no la redirección, como root. Tendrá que envolverlo todo en un comando donde todo se ejecuta como root:fuente
El comando
sudo echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.confse interpreta como que usted (no raíz) escribe el resultadosudo echo "net.ipv4.ip_forward = 1"en /etc/sysctl.conf.correr
o
para correr
echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.confcomo root.fuente
-i: edita el archivo en su lugar.$ a: agrega texto a la última líneaUsar el
sedcomando evita la molestia de las redirecciones y las tuberías.En tu caso:
sudo sed -i "$ a net.ipv4.ip_forward = 1" /etc/sysctl.conffuente