Гид по технологиям

doas — простая альтернатива sudo в Linux

4 min read Linux Обновлено 10 Dec 2025
doas — простая альтернатива sudo
doas — простая альтернатива sudo

Руки печатают на клавиатуре ноутбука

Что такое doas?

doas — это утилита для выполнения команд от имени другого пользователя (обычно root). Её разработали в проекте OpenBSD как минималистичную, простую и безопасную альтернативу sudo. С точки зрения поведения пользователя она выполняет те же задачи: позволяет запускать административные команды без полного входа под root.

Коротко:

  • permit — правило авторизации;
  • nopass — пропуск запроса пароля;
  • persist — кратковременная «временная авторизация» после ввода пароля;
  • cmd — ограничение списка разрешённых команд.

Установка

doas доступен в официальных репозиториях большинства дистрибутивов. Названия пакетов могут отличаться.

Debian / Ubuntu (в новых выпусках):

sudo apt install doas

Примечание: пакет присутствовал в репозитории Ubuntu начиная с 21.04; в старых LTS-релизах его могло не быть.

Arch Linux:

sudo pacman -S opendoas

Fedora / CentOS (DNF):

sudo dnf install opendoas

После установки сам исполняемый файл обычно называется doas (пакет может быть opendoas).

Базовая конфигурация: /etc/doas.conf

Файл /etc/doas.conf управляет правилами. Формат прост и читаем.

Примеры правил:

Разрешить пользователю username выполнять любые команды от root и включить «grace period»:

permit persist username as root

Разрешить группе wheel (если на системе есть группа с таким названием):

permit persist :wheel as root

Разрешить запуск только apt/apt-get без пароля:

permit nopass user cmd apt cmd apt-get as root

Рекомендации по написанию правил:

  • указывайте полные пути к программам, если хотите быть точнее (например, /usr/bin/apt);
  • предпочитайте ограниченные cmd-правила вместо глобального доступа;
  • избегайте nopass для привилегированных операций, если это не обосновано;
  • храните резервные копии /etc/doas.conf перед изменением.

Как использовать doas

Синтаксис похож на sudo:

doas apt update

Запуск от имени другого пользователя (например, testuser):

doas -u testuser command

Если у вас включён persist, после одного успешного ввода пароля последующие doas-команды в течение короткого времени не потребуют пароль.

Когда doas удобен

  • Простые сценарии делегирования прав — дать пользователю несколько команд без сложной политики.
  • Среда с небольшим количеством администраторов, где читаемость конфигурации важнее богатства возможностей.
  • Когда нужен лёгкий, быстрый бинарник с малым числом зависимостей.

Когда лучше оставить sudo

  • Нужны сложные правила (контекстные условия, фильтры по хосту, временные ограничения и др.).
  • Используются внешние плагины, логирование в специализированные системы или централизованное управление (LDAP, SSSD и пр.).
  • Требуется совместимость со скриптами/инструментами, которые ожидают именно sudo.

Миграция и чеклист администратора

Чеклист перед переходом с sudo на doas:

  • Проверьте наличие doas в репозиториях целевых хостов.
  • Переведите самые простые правила из /etc/sudoers в /etc/doas.conf (ограниченные cmd).
  • Тестируйте на отдельной машине: аутентификация, persist, отказ в доступе.
  • Проверьте логи и мониторинг (как регистрируются вызовы doas). Если нужно, настройте syslog/rsyslog для записи сообщений.
  • Подготовьте откатный план: сохраните и верните файл /etc/sudoers и установите sudo обратно.

Пример шаблона миграции для одной функции (обновление пакетов):

  1. В sudoers было: give group wheel ALL=(ALL) NOPASSWD: /usr/bin/apt
  2. В doas.conf добавить:
permit nopass :wheel cmd /usr/bin/apt cmd /usr/bin/apt-get as root
  1. Проверить: пользователь из wheel запускает doas apt update без пароля.

Критерии приёмки

  • Пользователь запускает doas apt update и получает ожидаемый результат.
  • Неавторизованные команды блокируются.
  • Логи фиксируют попытки запуска привилегированных команд.
  • Откатная процедура восстанавливает sudo-конфигурацию без потерь доступа.

Безопасность и рекомендации

  • Минимизируйте список разрешённых команд.
  • Используйте полные пути к бинарникам в правилах cmd.
  • По возможности избегайте nopass для команд, меняющих систему.
  • Держите doas и систему в актуальном состоянии.

Сравнение doas и sudo

Критерийdoassudo
Простота конфигурациивысокаяниже
Размер и зависимостмалбольше
Богатство возможностейограниченоочень много
Наличие в репозиторияхрастётвезде
Подходит для крупных инсталляцийлишь частичнода

Примеры команд и сниппет

Разрешить конкретному пользователю запуск systemctl без пароля:

permit nopass username cmd /bin/systemctl as root

Запуск от имени другого пользователя:

doas -u postgres psql

Чеклист для ролей:

  • Операторы: проверяют работу правил и логи.
  • Администраторы: пишут безопасные правила cmd с полными путями.
  • Инженеры безопасности: контролируют использование nopass и аудит.

Когда doas не подойдёт (галерея краевых случаев)

  • Необходимы правила, зависящие от имени хоста или времени суток.
  • Требуется интеграция с SSO или внешней системой авторизации.
  • Большая инфраструктура с централизованным управлением политик.

Глоссарий (1 строка каждая)

  • doas — минималистичная программа для выполнения команд от имени другого пользователя.
  • permit — директива в /etc/doas.conf, дающая право на выполнение.
  • nopass — опция, позволяющая пропустить ввод пароля.
  • persist — опция, предоставляющая короткий период повторного доступа без пароля.

Краткое резюме

doas хорош там, где важна простота, читаемость конфигурации и низкая эксплуатационная сложность. Для простых задач по делегированию прав он часто предпочтительнее sudo. Однако в крупных средах и при требованиях к тонкой политике безопасности sudo пока остаётся более универсальным и распространённым решением.

Важно: перед массовым переходом протестируйте конфигурации и подготовьте план отката.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Отключить Protected View в Microsoft Word
Безопасность

Отключить Protected View в Microsoft Word

Устранение двойного NAT: роутер + модем ISP
Сети

Устранение двойного NAT: роутер + модем ISP

Исправить Microsoft.Photos.exe: высокое использование памяти
Windows

Исправить Microsoft.Photos.exe: высокое использование памяти

Включить «Разрешить ненадёжные команды» на iPhone
iOS Команды

Включить «Разрешить ненадёжные команды» на iPhone

Водяной знак на PDF на Mac — Automator Quick Action
Mac руководство

Водяной знак на PDF на Mac — Automator Quick Action

Висячий отступ в Microsoft Word — как установить
Microsoft Word

Висячий отступ в Microsoft Word — как установить