Почему 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 или применимы к обоим.

  • Какой сценарий может позволить обычным пользователям использовать пространства имен в сети?
  • Как выполнить команду, требующую разрешения root без sudo?
  • Невозможно отредактировать / proc / sys / net / core / wmem_max
  • bash не автозаполняет мою команду при использовании sudo?
  • Файл, доступный только с правами root
  • как передать переменную среды в sudo su
  • sudo: пароль запрашивается, даже если NOPASSWD установлен
  • Процесс приостанавливается при асинхронном запуске
  • 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 .

    Interesting Posts

    «Список аргументов слишком длинный» для цикла

    Как заблокировать доступ к «частной» сети только для хоста из интерфейса VirtualBox nat (отдельные сети только для хоста)?

    Как разрешить ssh-соединение отказано в AIX?

    Правило Iptables допускает только один порт и блокирует другие

    Почему я получаю «Нет виртуальной папки, прерывая», когда пытаюсь помечать сообщения в Mutt?

    Есть ли инструмент командной строки unix, который может анализировать файлы шрифтов?

    Gentoo virt-manager на системе без GNOME не может подключиться к libvirtd из-за того, что polkit бросает недостающую ошибку файла

    Решение для получения данных из памяти процесса

    Должен ли я стереть предыдущий Linux на загрузочном live usb, когда я хочу создать другой?

    В то время как Loop Breaking Half Way Through File

    OpenWRT – Невозможно заблокировать порт DNS (53) из направления WAN-LAN

    Как просматривать веб-сайт, как если бы я был в США?

    sudo: «эффективный uid не равен 0, sudo установлен setuid root?» на малине Pi

    Вставка пустой строки после изменения в первом алфавите с помощью awk

    tee stdout to stderr?

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