Почему root должен запускать неограниченные команды как сам по doas?

Я просто сталкивался с doas , и, читая man-страницу для своей конфигурации, я нашел этот пример:

В следующем примере пользователи в группе wsrc могут создавать порты; колесо для выполнения команд как любой пользователь, сохраняя переменные окружения PS1 и SSH_AUTH_SOCK и отключая ENV; позволяет tedu запускать procmap как root без пароля; и дополнительно разрешает root запускать неограниченные команды как сам .

 # Non-exhaustive list of variables needed to # build release(8) and ports(7) permit nopass setenv { \ FTPMODE PKG_CACHE PKG_PATH SM_PATH SSH_AUTH_SOCK \ DESTDIR DISTDIR FETCH_CMD FLAVOR GROUP MAKE MAKECONF \ MULTI_PACKAGES NOMAN OKAY_FILES OWNER PKG_DBDIR \ PKG_DESTDIR PKG_TMPDIR PORTSDIR RELEASEDIR SHARED_ONLY \ SUBPACKAGE WRKOBJDIR SUDO_PORT_V1 } :wsrc permit setenv { -ENV PS1=$DOAS_PS1 SSH_AUTH_SOCK } :wheel permit nopass tedu as root cmd /usr/sbin/procmap permit nopass keepenv root as root 

root – это root, зачем ему нужны разрешения?

Примечание. Я отметил это как sudo поскольку doas является заменой / преемником, поэтому, возможно, рассуждения или концепции будут получены из sudo или применимы к обоим.

2 Solutions collect form web for “Почему root должен запускать неограниченные команды как сам по doas?”

Вы принимаете этот комментарий вне контекста. Эта строка полезна при построении портов :

 permit nopass keepenv root as root 

Построение портов всегда вызывает doas . Без строки выше это ограничило бы переменные среды даже при создании портов с root . С указанными портами построения строк, поскольку root выполняется с полной средой.

Я не согласен с частью другого ответа: создание портов by iself делает решительно не всегда вызывать sudo (или doas) и должно выполняться обычным (выделенным) пользователем. Только некоторые из целей make, например те, которые устанавливают или удаляют порты, например make install будут вызывать программу SUDO , если она указана в /etc/mk.conf или в среде. Причина упоминания этого параметра в руководстве – это массовые сборки с dpb (1).


Причина в том, что существует прямая совместимость с файлом sudoers по умолчанию OpenBSD, поскольку в сообщении о фиксации упоминается:

 CVSROOT: /cvs Module name: src Changes by: reyk@cvs.openbsd.org 2015/08/28 07:19:50 Modified files: usr.bin/doas : doas.conf.5 Log message: Document an example that lets root run unrestricted doas commands as root ("permit nopass keepenv root as root"), matching the old behaviour from OpenBSD's sudoers file ("root ALL=(ALL) SETENV: ALL"). OK sthen@ 

Почему это полезно? Представьте сценарий, который делает некоторые вещи, которые нуждаются в привилегиях root, примерно так:

 #!/bin/sh cmd1 doas cmd2 cmd3 

Вы можете запустить этот скрипт только как пользователь, у которого есть разрешение на использование doas. По умолчанию ни один пользователь, даже root, не имеет права использовать doas; вы должны выбрать явно, добавив правила в /etc/doas.conf . Если permit root as root , приведенный выше сценарий завершится неудачно, если вы запустите его как root, что, вероятно, удивительно и неудобно.

Теперь идет часть, где я согласен с другим ответом: как упоминалось выше, сценарии сборки по умолчанию в OpenBSD имеют переменную SUDO которую вы можете установить на sudo или doas для повышения привилегий. Если какая-либо команда запущена под $SUDO , вы хотите сохранить переменные среды, такие как префиксы каталога и другие вещи, необходимые для правильной работы системы сборки.


Еще одна вещь: обратите внимание, что только большой первый пример в цитируемой ручной выдержке предназначен для построения портов. Прочтите цитируемый текст как маркированный список с четырьмя независимыми элементами:

Следующий пример

  • позволяет пользователям в группе wsrc создавать порты;
  • колесо для выполнения команд как любой пользователь, сохраняя переменные окружения PS1 и SSH_AUTH_SOCK и отключая ENV;
  • позволяет tedu запускать procmap как root без пароля;
  • и дополнительно разрешает root запускать неограниченные команды как сам.

Очевидно, что пример, связанный с procmap, не имеет ничего общего с созданием портов, а второй пример – обычное, что члены группового колеса – это те, кому разрешено повышать привилегии до root (например, через su, sudo или doas).

Теперь зачем вам это делать? Ну, некоторые скрипты или make-файлы содержат переменную SUDO. По умолчанию ни один пользователь не имеет права использовать doas. Вы должны явно /etc/doas.conf добавив правила в /etc/doas.conf .

  • Команда sudo не работает, когда strace прилагается с PID bash
  • Подавление "sudo: извините, для запуска sudo требуется пароль"
  • Отредактированный файл после вызова `sudo visudo`
  • Команда «Судо» с префиксом не работает; без sudo делает.
  • Как использовать sudo для запуска нескольких команд в качестве другого пользователя в части скрипта?
  • Как вставить текст в файл root, используя sudo?
  • Я больше не могу получить доступ к учетной записи root: пользователь не находится в файле sudoers
  • Запускать и останавливать команду мониторинга как sudo в течение секунд каждые минуты
  • Su как root и запустить команду в одной строке
  • LDAP Sudoers с AD & SSSD (возвращает только основную группу)
  • Как sudo прерывается в xterm на Ctrl-C?
  • Сумерский черный список
  • Interesting Posts

    Сделать статистику биграмм

    Как отредактировать раскладку Cinnamon без использования настроек Cinnamon?

    что такое цель группы «nogroup»

    Как я могу создать двухстороннюю систему речевой связи, которая работает по локальной сети?

    Контроль приоритетов процессов

    Как правильно применить патч?

    Загрузка Fedora 17 после перехода на CDM

    Что может сделать 64-разрядный Linux для 32-разрядного Linux-устройства?

    Когда я должен создать новую группу томов вместо нового логического тома?

    AES-GCM 256bit для SSL на nginx

    Есть ли способ заставить COMPREPLY выводиться как вертикальный список слов вместо одной строки?

    Сценарий оболочки, выполняющий два сценария Perl на основе ввода

    Rsync устанавливает новое соединение ssh каждый раз для нескольких файлов или использует одно и то же соединение?

    «Не обычный файл» при попытке просмотреть файл .gitignore

    Просмотр файлов из зеркального RAID вне устройства

    Linux и Unix - лучшая ОС в мире.