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
Владелец и группа файла должны быть 0
, права доступа к файлу должны быть установлены на :
# chown -c root:root /etc/doas.conf # chmod -c 0400 /etc/doas.conf
Для проверки синтаксиса файла выполните команду:
# doas -C /etc/doas.conf && echo "config ok" || echo "config error"
/etc/doas.conf
не должно быть синтаксических ошибок!Чтобы разрешить членам группы запускать smartctl от имени root без запроса пароля:
Базовый синтаксис файла такой:
permit|deny [опции] личность [as цель] [cmd команда [аргументы ...]]
Смотрите для более подробной информации.
Также полезно настроить автодополнение для команды doas.
Советы и рекомендации
Запоминание
doas имеет функцию запоминания: после успешной аутентификации пользователя не запрашивать пароль снова в течение некоторого времени. По умолчанию она отключена, включить её можно с помощью опции :
Плавный переход от sudo к doas
Для плавного перехода от sudo к doas и для сохранения совместимости можно добавить:
alias sudo='doas' alias sudoedit='doas rnano'
Или сделать символическую ссылку (sudoedit(8) не предоставляется):
# ln -s $(which doas) /usr/bin/sudo
Пакет также предоставляет такую символическую ссылку.
Автодополнение в bash
По умолчанию bash использует автодополнение по Tab только для файлов и каталогов внутри текущего или указанного каталога. Чтобы указать bash заполнять аргументы, как если бы они были отдельными командами (также используя настройки автодополнения других команд), можно добавить следующее в пользовательский или в общесистемный /etc/bash.bashrc
: