Фух, закончились 2 часа партнерских интеграций… Недавно я делал пост по отличиям su от sudo, но есть еще одна вкусная альтернатива, которая называется doas.

doas – утилита, которая позволяет обычным пользователям выполнять задачи от имени root, так же как это делает sudo. Она была разработана проектом OpenBSD как минималистичная альтернатива sudo.

Интересно кстати звучит: do ass (делать жопу)

Утилита доступна в большинстве официальных репозиториев. Поэтому с установкой проблем не возникает.

Запускай apt install «делатьжопу» (или какой там у тебя пакетный менеджер) и погнали смотреть на эти булки поближе.

Так как doas не входит по умолчанию в коробочные версии linux, утилита требует немного бОльших настроек, в отличие от sudo. Но конфигурация намного проще для понимания чем sudo. Настраивается все это через файл /etc/doas.conf. Если файла нет, создай!

Цель doas - решить сложность sudo.

Давай эмитируем поведение sudo и позволим пользователю выполнять любые команды от пользователя root. Добавляем в конфиг такую херабору:

permit persist user as root

Теперь пользователь user сможет выполнять команды от root + пользователь получает льготный период, когда не нужно вводить пароль в течение нескольких минут после последовательных команд doas.

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

permit persist :wheel as root

Теперь все кто заключен в группу wheel смогут побыть рутом. Также и с белым списком команд, которые можно выдать для запуска без пароля:

permit persist user as root
permit nopass :user as root cmd apt
Роман Шубин
Роман Шубин
CEO & CTO, Главред в «Цифровой улей»
Задать вопрос
Да, конфиг более читабельный чем у sudo. И в обозримом будущем есть очень большая вероятность того, что sudo закинут в деприкейтед, а doas сделают основным рабочим инструментом. Так как sudo уже непроходимое гавно болото в плане поддержки кода, который трудно понимать и использовать.

Возьмем даже валидатор конфига visudo. Который проверяет синтаксис конфига. А это говорит о том, что синтаксис файла sudoers ну совсем фу и воняет. Требует проверки. Да и 99% пользователей используют sudo исключительно для установки софта.

Разница налицо (попахивает порнохабом):

Конфиг sudo

%wheel ALL=(ALL) NOPASSWD: ALL

Конфиг «делать жопу»

permit nopass :wheel as root

Ну и с помощью doas можно запустить root shell такой командой:

doas -s
Роман Шубин
Роман Шубин
CEO & CTO, Главред в «Цифровой улей»
Задать вопрос
Кстати был казус с портированием под FreeBSD, спустя несколько часов после публикации doas, в ней нашли критическую уязвимость. Которая позволяла выполнить привилегированные операции даже если был указан неверный пароль пользователя. Как обычно накосячил разработчик, который раздеплоился в прод без тестирования. Ну либо специально заложил бекдор, история умалчивает.

Вот такие пироги. Увидимся совсем скоро и сделаем что-нибудь полезное, например сломаем прод, ну или ногу…