Каждый раз я хочу смочь выполнить что-то, что требует, чтобы я был a sudoer
слишком много раз я должен погуглить для форматирования /etc/sudoers
напомнить мне снова, что точно является надлежащим способом записать это.
Теперь я вижу различные стили записи в моем sudoers
файл, который является последствием различных результатов Google за месяцы. Я также заметил, что второй пример (ниже), кажется, работает в XFCE, но не в Корице (Gnome 3). Это могло быть полностью не связано, но nontheless, который я хотел бы знать раз и навсегда, какова корректная грамматика sudoer строки, и каково различие между данными примерами?
redsandro ALL=NOPASSWD:/path/to/command
redsandro ALL=(ALL) NOPASSWD:/path/to/command
redsandro ALL=(ALL:ALL) NOPASSWD:/path/to/command
Кроме того, что весь ALL
для? Один пользователь, одна команда, все же я должен использовать ALL
ключевое слово до трех раз? Я делаю эту несправедливость?
Конечно, исключение NOPASSWD:
заставляет Вас ввести свой пароль, прежде чем Вам разрешат выполнить команду, но одна точка беспорядка является использованием =
и :
, для заключительной команды, которая является предметом строки, может предварительно ожидаться также =
, :
, , или
)
, путание грамматики для подобной семантики.
Это - больше, чем просто пользователь и команда:
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
выполнять команду как любого другого пользователя или группу.
Давайте разберем это на части:
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 позволяет вам указывать определенные команды привилегий, он может быть и используется для управления доступом к определенным командам гораздо более детальным образом.