Я хотел бы иметь сценарий, который выполняет автоматическую миграцию веб-сайтов с другого, чтобы иметь возможность добавлять Includes в файл /etc/httpd/conf.d/vhosts.conf.
Однако, когда я пытаюсь использовать echo, чтобы добавить строку в конец файла, я получаю следующее:
$ sudo echo "Include thing" >> /etc/httpd/conf.d/vhosts.conf
-bash: /etc/httpd/conf.d/vhosts.conf: Permission denied
и все же я могу vi /etc/httpd/conf.d/vhosts.conf, добавить строку и: wq файл, чтобы сохранить и закрыть его.
Что мне не хватает?
Sudo улучшает процесс, который он вызывает, но не повышает уровень обработки текущей оболочки, такой как перенаправление, подстановка и т. Д.
Перенаправление файлов >> /etc/httpd/conf.d/vhosts.conf
обрабатывается вашим ток shell, который все еще работает с вашими текущими привилегиями.
Вы можете попробовать что-то подобное.
sudo bash -c 'echo "Include thing" >> /etc/httpd/conf.d/vhosts.conf'
Или
echo "Include thing" | sudo tee -a /etc/httpd/conf.d/vhosts.conf