Выбор ответа Junior Потоки и пайпы обновлено
Почему sudo echo > файл не работает
Вопрос
Команда sudo echo "vm.swappiness=10" > /etc/sysctl.d/90-swap.conf падает с Permission denied. Почему?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Перенаправление делает текущий shell без root, sudo получает только echo. Shell обрабатывает до запуска команды и открывает файл со своими правами.
Варианты ответа
echoвстроен в shell, и sudo не может запустить его от root- Нужно сначала выполнить
sudo -i: без входа в сессию root sudo не пишет в файлы - Перенаправление делает текущий shell без root, sudo получает только
echoправильный ответ - Каталог
/etc/sysctl.dзащищён атрибутом immutable от записи
Разбор
Shell обрабатывает > до запуска команды и открывает файл со своими правами. Под sudo запускается только echo. Правильно: echo ... | sudo tee /etc/sysctl.d/90-swap.conf или sudo sh -c 'echo ... > file'. echo через sudo запускать можно, атрибут immutable тут ни при чём.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.