Каков правильный синтаксис 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 – это спецификация команд и тегов, но я все еще не могу обойти ее.

  • Расширение переменной в файле sudoers
  • Почему я запрашивал пароль при установке NOPASSWD, но я могу переключиться на корневую оболочку и запустить ту же команду без пароля?
  • Как ограничить выполнение команд в определенном каталоге через SUDOERS?
  • Запустите команду a как определенный пользователь и несколько групп с sudo
  • Могу ли я настроить сообщение sudo «этот инцидент будет сообщен»?
  • Почему нам нужно использовать visudo вместо прямой модификации файла sudoers?
  • Добавление www-данных в / etc / sudoers dos не работает для PHP shell_exec () для запуска команды
  • sudoers: NOPASSWD в той же строке, что и PASSWD: ALL?
  • 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 - лучшая ОС в мире.