doas (Русский) - ArchWiki

Jump to content
Toggle the table of contents

# doas (Русский)

3 languages

- English
- 日本語
- 中文（简体）

From ArchWiki

Состояние перевода: На этой странице представлен перевод статьи doas. Дата последней синхронизации: 26 января 2023. Вы можете помочь синхронизировать перевод, если в английской версии произошли изменения.

Ссылки по теме

- Пользователи и группы
- sudo (Русский)
- Список приложений/Безопасность#Повышение привилегий

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

Примечание: Функция persist отключена по умолчанию и потому, что она является новой и потенциально опасной. В оригинальном doas для установки и сброса таймаутов используется API ядра. Этот API специфичен для OpenBSD, и его аналогов в других операционных системах нет. В качестве обходного пути функция persist реализована с использованием timestamp-файлов аналогично sudo.

### Плавный переход от sudo к doas

Для плавного перехода от sudo к doas и для сохранения совместимости можно добавить:

    alias sudo='doas'
    alias sudoedit='doas rnano'

Или сделать символическую ссылку (sudoedit(8) не предоставляется):

    # ln -s $(which doas) /usr/bin/sudo

Примечание: По умолчанию sudo сохраняет некоторые переменные окружения, а doas — нет, в частности, XAUTHORITY, LANG и LC_ALL. Это означает, что вы не сможете запустить графические приложения под X или получить доступ к локали пользователя без дополнительной настройки. Например, чтобы разрешить членам группы wheel запускать графические приложения и получать доступ к локали пользователя, используйте опцию setenv:

    /etc/doas.conf

    permit setenv { XAUTHORITY LANG LC_ALL } :wheel

### Автодополнение в bash

По умолчанию Bash использует автодополнение по Tab только для файлов и каталогов внутри текущего или указанного каталога. Чтобы указать Bash заполнять аргументы, как если бы они были отдельными командами (также используя настройки автодополнения других команд), можно добавить следующее в пользовательский `.bashrc` или в общесистемный `/etc/bash.bashrc`:

    ~/.bashrc

    complete -cf doas

Categories:

- Security (Русский)
- Commands (Русский)