Что такое sudo-rs и для чего оно нужно
sudo-rs — это переосмысленное sudo на Rust с упором на безопасность и понятные defaults. Для большинства пользователей поведение команд не меняется, но администраторам стоит знать о нюансах конфигурации и совместимости.
В материале разбираем, зачем появилась новая реализация, что в ней иначе и как безболезненно работать с ней рядом с классическим sudo.
Зачем переходить на sudo-rs
Если посмотреть поверхностно, то изменений не так уж и много. Однако для обновления все еще есть причины:
- Безопасность памяти. Механизмы Rust (borrow checker и др.) минимизируют типовые уязвимости.
- Современная кодовая база. Поддерживать и развивать её проще, чем 30-летний код на C.
- Более понятные настройки по умолчанию. Устаревшие, потенциально рискованные опции убраны.
- Приток новых контрибьюторов. Молодые разработчики охотнее работают с современными, безопасными языками.
Проще говоря, старый, разросшийся код sudo затрудняет правки и внедрение функций. Переписать ядро на современном, «безопасном» языке часто быстрее и перспективнее. И это повышает шансы на активное развитие проекта.
Что меняется между sudo и sudo-rs
Для рядового пользователя почти ничего не меняется. Вы по-прежнему вводите sudo, а в самой системе запускается sudo-rs. Тексты некоторых предупреждений и ошибок могут отличаться, но в целом поведение максимально похожее.
Для администраторов и продвинутых пользователей различий больше:
- В sudo-rs нет поддержки sendmail, через которую классический sudo умел отправлять уведомления о вызовах.
- Аутентификация всегда через PAM. Значит, система должна быть настроена на PAM; лимиты ресурсов, umask и т. п. задаются в PAM-профилях, а не в sudoers.
- Шаблоны (wildcards) в позициях аргументов не поддерживаются — чтобы избежать частых ошибок конфигурации sudoers.
sudo-rs — не единственная альтернатива
Альтернативы sudo существуют уже давно:
- doas — минималистичная, упрощённая замена sudo.
- RootAsRole — ещё одна реализация схожей функциональности на Rust.
- Некоторые рассматривают uid0 из systemd как альтернативу (хотя это не совсем одно и то же, задача похожая).
На официальном сайте sudo перечислены и другие варианты, но не все из них активно развиваются.
Итог
Если вы просто пользуетесь sudo и не трогали sudoers, переживать не о чем. А вот если вы управляете серверами с тонкой настройкой прав и собственными правилами, то рекомендуем присмотреться к новой утилите повнимательнее.
Похожее
Все статьи
Iptables: базовый файрвол на Ubuntu без риска потерять доступ
Iptables — стандартный инструмент управления файрволом в Linux, который фильтрует трафик по правилам в цепочках INPUT, OUTPUT и FORWARD. Главная опасность при настройке на удалённом VPS — заблокировать собственный SSH-доступ неправильным порядком правил. Эта статья построена так, чтобы этого не…
Nginx как reverse proxy: настройка и конфигурация
Reverse proxy на Nginx — это когда Nginx принимает внешние запросы на порту 80 или 443 и перенаправляет их на приложение которое работает на внутреннем порту (3000, 8000, 8080). Снаружи видно только Nginx, само приложение сети не касается. Три строки…