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

  • Чтение из / etc / environment с помощью sudo
  • Будет ли я запрашиваться пароль sudo второй раз?
  • Как я могу запускать программу в качестве другого пользователя во всех отношениях?
  • запускать команду как другого пользователя с доступными разрешениями sudo
  • Написать в файл без перенаправления?
  • Сделать суперпользователь действовать как какой-либо другой пользователь в определенном дереве каталогов
  • Получить команды, которые пользователь может запустить из / etc / sudoers?
  • запустить gvfs-mount как пользователь в скрипте, принадлежащем root для диспетчера сетевого менеджера
  • 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

    Командная подсистема Bash с переменной окружением

    Как сохранить пару ключей имени пользователя и пароля в SSH в GIT Bash?

    Specifiy Unix TimeStamp Range в параметре

    Ошибка Rsync 23: могу ли я сообщить, какие файлы не были переданы?

    vim поиск имени подстрочной переменной с помощью *

    Как можно вычесть 2 поплавки, которые были извлечены из 2 других файлов с помощью BASH

    Сообщения широковещания не отображаются на gnome-terminal, но отображаются на xterm

    Как скомпилировать программы на Linux-системах, когда у меня нет привилегий sudo для установки зависимостей dev

    Установите всю документацию TeXLive для установленных пакетов

    Невозможно изменить разрешение до 1680×1050

    rsyslog: make% syslogtag% равна длине

    Почему я все еще получаю предупреждения об отказе от pkg?

    Почему «cat ttyUSB0» не производит выход?

    автоматизировать построение gnuplot с помощью bash

    Отступление от удаленной директории

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