Top.Mail.Ru

Что такое sudo-rs и для чего оно нужно

3.7k
Что такое 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, переживать не о чем. А вот если вы управляете серверами с тонкой настройкой прав и собственными правилами, то рекомендуем присмотреться к новой утилите повнимательнее.

Похожее

Все статьи
2903956 25854 (1) (1)

Что такое SSH и зачем он нужен

SSH — инструмент, с которым почти неизбежно сталкивается каждый, кто начинает работать с сервером. Сначала кажется, что это что-то из мира системных администраторов: терминал, команды, непонятные ключи, доступ по IP. Но на самом деле SSH — обычный рабочий инструмент. Просто…

20492

FrontAccounting: обзор бухгалтерской системы для тех, кто хочет держать учет под своим контролем

FrontAccounting может для многих пройти незамеченным, потому что многие сегодня оценивают даже бухгалтерские сервисы скорее по внешнему виду, а не по набору функций. FrontAccounting не может похвастаться модным лендингом и обещаниями простого учета, который можно настроить за 5 минут. Это…