sudoers - простое объяснение требуют

Каждый раз я хочу смочь выполнить что-то, что требует, чтобы я был a sudoer слишком много раз я должен погуглить для форматирования /etc/sudoers напомнить мне снова, что точно является надлежащим способом записать это.

Теперь я вижу различные стили записи в моем sudoers файл, который является последствием различных результатов Google за месяцы. Я также заметил, что второй пример (ниже), кажется, работает в XFCE, но не в Корице (Gnome 3). Это могло быть полностью не связано, но nontheless, который я хотел бы знать раз и навсегда, какова корректная грамматика sudoer строки, и каково различие между данными примерами?

  1. redsandro ALL=NOPASSWD:/path/to/command
  2. redsandro ALL=(ALL) NOPASSWD:/path/to/command
  3. redsandro ALL=(ALL:ALL) NOPASSWD:/path/to/command

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

Конечно, исключение NOPASSWD: заставляет Вас ввести свой пароль, прежде чем Вам разрешат выполнить команду, но одна точка беспорядка является использованием = и :, для заключительной команды, которая является предметом строки, может предварительно ожидаться также =, :, , или ), путание грамматики для подобной семантики.

24
задан 2 April 2012 в 18:52

2 ответа

Это - больше, чем просто пользователь и команда:


redsandro host=(user:group) tag:commands
  • host указывает имена хостов, для которых эта строка допустима. Если Вы не совместно используете asudoers файл среди различных хостов, которым нужны различные правила с помощью специального значения ALL значение "всех хостов" является хорошим выбором.

  • user указывает, каких пользователей можно использовать с -u опции выполнить команду. При исключении этого, Вы не можете использовать -u опция.

  • group указывает, какие группы можно использовать с -g опции. При исключении его, Вы не можете использовать -g опция.

Оба user и group поймите специальное значение ALL как "все пользователи/группы"

Если Вы опускаете целое (user:group) вещь Вы не можете использовать -u и -g но только выполненный команда как корень.

  • tag позволяет Вам указать некоторые опции, как NOPASSWD

Таким образом с Вашим первым примером Вы можете выполнить команду как корень, но не можете использовать -u и -g выполнять его как любого другого пользователя или группу.

С примером 2. можно выполнить команду как корень или использование -u выполнять его как любого другого пользователя.

С 3. можно выполнить команду как корень или использование -u или -g выполнять команду как любого другого пользователя или группу.

35
ответ дан 2 April 2012 в 18:52

Давайте разберем это на части:
redsandro ALL=(ALL:ALL) NOPASSWD:/path/to/command

redsandro - это имя пользователя, которому мы даем разрешение. Поместите% на передний план, чтобы применить его к группе.

ALL - это имя для этого правила. Судоши могут сделать гораздо больше, чем просто предоставить глобальные разрешения. Вот где это все сложнее, хотя.

= не требует объяснения

ALL: ALL читается как (who_to_run_it_as: what_group_to_run_it_as). Таким образом, вы можете разрешить запуск команды, но только в контексте определенного пользователя или группы.

NOPASSWD: говорит отключить запрос пароля.

/ path / to / command позволяет вам указывать определенные команды привилегий, он может быть и используется для управления доступом к определенным командам гораздо более детальным образом.

0
ответ дан 2 April 2012 в 18:52

Другие вопросы по тегам:

Похожие вопросы: