doas (Русский)
OpenDoas — Linux-порт команды doas из OpenBSD, которая известна тем, что имеет значительно меньший размер по сравнению с sudo. Как и sudo, doas используется для выполнения команд от имени других пользователей.
Установка
Установите пакет opendoas.
Использование
Для запуска doas от имени обычного пользователя требуется предварительная #Настройка.
Для использования doas просто добавьте doas
и пробел перед нужной командой:
$ doas команда
Пример запуска pacman:
$ doas pacman -Syu
Запуск интерактивной облочки root:
$ doas -s
Смотрите doas(1) для более подробной информации.
Настройка
Вместе с doas устанавливается модуль PAM, но по умолчанию для него нет конфигурации или примеров.
Чтобы разрешить членам группы wheel выполнять команды от имени других пользователей, создайте файл настроек со следующим содержимым:
/etc/doas.conf
permit :wheel
Владелец и группа файла /etc/doas.conf
должны быть 0
, права доступа к файлу должны быть установлены на 0400
:
# chown -c root:root /etc/doas.conf # chmod -c 0400 /etc/doas.conf
Для проверки синтаксиса файла /etc/doas.conf
выполните команду:
# doas -C /etc/doas.conf && echo "config ok" || echo "config error"
/etc/doas.conf
не должно быть синтаксических ошибок!Чтобы разрешить членам группы plugdev
запускать smartctl от имени root без запроса пароля:
/etc/doas.conf
permit nopass :plugdev as root cmd /usr/bin/smartctl
Базовый синтаксис файла /etc/doas.conf
такой:
permit|deny [опции] личность [as цель] [cmd команда [аргументы ...]]
Смотрите doas.conf(5) для более подробной информации.
Советы и рекомендации
Запоминание
doas имеет функцию запоминания: после успешной аутентификации пользователя не запрашивать пароль снова в течение некоторого времени. По умолчанию она отключена, включить её можно с помощью опции persist
:
/etc/doas.conf
permit persist :wheel
Плавный переход от sudo к doas
Для плавного перехода от sudo к doas и для сохранения совместимости можно добавить:
alias sudo='doas' alias sudoedit='doas rnano'
Или сделать символическую ссылку (sudoedit(8) не предоставляется):
# ln -s $(which doas) /usr/bin/sudo
/etc/doas.conf
permit setenv { XAUTHORITY LANG LC_ALL } :wheel
Автодополнение в bash
По умолчанию Bash использует автодополнение по Tab только для файлов и каталогов внутри текущего или указанного каталога. Чтобы указать Bash заполнять аргументы, как если бы они были отдельными командами (также используя настройки автодополнения других команд), можно добавить следующее в пользовательский .bashrc
или в общесистемный /etc/bash.bashrc
:
~/.bashrc
complete -cf doas