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

Согласно комментариям в /etc/sudoers (Fedora 13):

 ## Syntax: ## ## user MACHINE=COMMANDS ## ## The COMMANDS section may have other options added to it. 

Мои два смежных вопроса:

  1. Что означает ALL=(ALL) ALL в следующей строке:

     root ALL=(ALL) ALL 
  2. Я тестировал эти две строки, но я не могу понять, как они функционально отличаются:

     superadm ALL=(ALL) ALL superadm ALL=ALL 

Я прочитал руководство, но спецификацию синтаксиса трудно выполнить. Я понял, что часть (ALL) ALL – это спецификация команд и тегов, но я все еще не могу обойти ее.

  • sudo не сохраняет PS1
  • Разрешить пользователю запускать команду с аргументами (которая содержит пробелы)
  • Попросите пароль пользователя, чтобы он переключился на
  • Запустить команду sudo с пользователем без полномочий root в контейнере Docker
  • Неизвестный параметр Флаг при работе с sudo
  • Специальная команда Sudo без пароля
  • sudo: ошибка синтаксического анализа в / etc / sudoers около строки 27
  • Должен ли пользователь снова выйти из системы, если я изменю / etc / sudoers?
  • 2 Solutions collect form web for “Каков правильный синтаксис sudoers для добавления пользователя?”

    Примечание: Я отвечаю 1. , поскольку Игнасио уже ответил 2 ..

    В следующей записи sudo :

     superadm ALL=(ALL) ALL 

    существует четыре поля:

    • Первый указывает пользователя, которому будут предоставлены привилегии для некоторых команд.
    • Второй вариант редко используется. Это список имен хостов, на которых эта запись sudo будет эффективной. При стандартных настройках имеет значение только один хост (localhost), поэтому это поле обычно остается как ALL .
    • Четвертое поле – это список команд, которые superadm сможет выполнять с повышенными привилегиями. ALL означает все команды. В противном случае используйте список команд, разделенных запятыми.
    • Третье поле (одно написанное (…) которое является необязательным) указывает, какие пользователи (и группы) могут использовать команды superadm для выполнения следующих команд. ALL означает, что они могут выбрать что угодно (неограниченное). Это поле опущено, это значит, что (root) .

    Пример:

     alan ALL = (root, bin : operator, system) /bin/ls, /bin/kill 

    Здесь alan разрешено запускать две команды /bin/ls и /bin/kill как root (или bin ), возможно, с дополнительными привилегиями operator или system групп.

    Таким образом, alan может выбрать запуск ls в качестве пользователя bin и с такими групповыми привилегиями operator как это:

     sudo -u bin -g operator /bin/ls /whatever/directory 

    Если -u опущено, это то же самое, что и -u root . Если -g опущено, дополнительных привилегий группы не предоставляется.

    На странице руководства sudoers(5) , раздел DESCRIPTION , подраздел Runas_Spec :

    Первый Runas_List указывает, какие пользователи могут выполнять эту команду, как с помощью опции -u sudo .

    Если Runas_Spec не указан, команда может быть запущена как root и никакая группа не может быть указана.

    Таким образом, нет никакой функциональной разницы при попытке запуска команд как root , т. Е. Когда не используется -u с sudo . Разница имеет значение при попытке запуска команд в качестве других пользователей; последнее предотвратит это, но первое это позволит.

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