Выбор ответа Senior SSH и безопасность обновлено
sudo на одну команду
Вопрос
Пользователю выдали deploy ALL=(root) NOPASSWD: /usr/bin/less /var/log/*. Почему это фактически полный root?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Из less можно запустить shell через !sh, и он будет от root. Многие программы умеют запускать внешние команды: less, vim, find -exec, awk, tar --checkpoint-action.
Варианты ответа
- Маска
*позволяет читать любые файлы через.., но менять их нельзя - NOPASSWD отключает журналирование sudo, и действия не отследить
- Права root нужны less для любых файлов, и sudo выдаёт их на весь сеанс
- Из
lessможно запустить shell через!sh, и он будет от rootправильный ответ
Разбор
Многие программы умеют запускать внешние команды: less, vim, find -exec, awk, tar --checkpoint-action. Если разрешить их под sudo, пользователь получит root-shell. Плюс маска в sudoers сопоставляется со строкой аргументов, и .. её обходит. Для просмотра логов правильнее дать группу adm или sudoedit/journalctl с ограничениями. NOPASSWD не отключает журналирование.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.