Eu gostaria que o script que está fazendo migrações automatizadas de sites de outro pudesse anexar Inclui ao arquivo /etc/httpd/conf.d/vhosts.conf.
No entanto, quando tento usar echo para anexar uma string ao final do arquivo, recebo o seguinte:
$ sudo echo "Include thing" >> /etc/httpd/conf.d/vhosts.conf
-bash: /etc/httpd/conf.d/vhosts.conf: Permission denied
e ainda assim posso vi /etc/httpd/conf.d/vhosts.conf, adicionar a linha e :wq o arquivo para salvá-lo e fechá-lo.
o que estou perdendo?
Responder1
Sudo eleva o processo que ele chama, não eleva nenhum processamento do shell atual, como redirecionamento, globbing, etc.
O redirecionamento de arquivo >> /etc/httpd/conf.d/vhosts.conf
está sendo processado pelo seuatualshell, que ainda está em execução com seus privilégios atuais.
Você poderia tentar algo assim.
sudo bash -c 'echo "Include thing" >> /etc/httpd/conf.d/vhosts.conf'
Ou
echo "Include thing" | sudo tee -a /etc/httpd/conf.d/vhosts.conf