Вы должны использовать утилиту tee
для перенаправления или добавления потоков в файл, для которого требуются некоторые разрешения, например:
echo something | sudo tee /etc/file
или для добавления
echo something | sudo tee -a /etc/file
поскольку по умолчанию ваша оболочка работает с вашими собственными правами пользователя, а перенаправление >
или >>
будет выполняться с теми же разрешениями, что и ваш пользователь, вы фактически запускаете echo
, используя sudo
и перенаправляя без разрешения root
.
В качестве альтернативы вы также можете получить корневую оболочку, а затем попробовать обычное перенаправление:
sudo -i
echo something >> /etc/pat/to/file
exit
или sudo -s
для оболочки входа без -.
вы также можете запустить неинтерактивную оболочку с правами суперпользователя:
sudo bash -c 'echo something >> /etc/somewhere/file'
Что касается проблемы «Файл существует», как упоминалось в этом вопросе о сбое сервера , я считаю, что это регресс в последних ядрах, и переход на 5.7.7
позволяет избежать проблемы на данный момент.