Me gustaría que un script que realice migraciones automáticas de sitios web desde otro pueda agregar Incluye al archivo /etc/httpd/conf.d/vhosts.conf.
Sin embargo, cuando intento usar echo para agregar una cadena al final del archivo, aparece esto:
$ sudo echo "Include thing" >> /etc/httpd/conf.d/vhosts.conf
-bash: /etc/httpd/conf.d/vhosts.conf: Permission denied
y aún así puedo vi /etc/httpd/conf.d/vhosts.conf, agregar la línea y :wq el archivo para guardarlo y cerrarlo.
¿Qué me estoy perdiendo?
Respuesta1
Sudo eleva el proceso que llama, no eleva ninguno de los procesamientos del shell actual, como redirección, globbing, etc.
La redirección de archivos >> /etc/httpd/conf.d/vhosts.conf
está siendo procesada por suactualshell, que todavía se está ejecutando con sus privilegios actuales.
Podrías intentar algo como esto.
sudo bash -c 'echo "Include thing" >> /etc/httpd/conf.d/vhosts.conf'
O
echo "Include thing" | sudo tee -a /etc/httpd/conf.d/vhosts.conf