настройка sudo

Для настройки sudo используйте команду visudo - данная команда открывает для редактирования файл /etc/sudoers, а поосле редактирования проверяет синтаксис файла и если есть ошибка, то сообщает об этом, предлагаю исправить, отменить или проигнорировать. При необходимости можно отредактировать этот файл и без команды visudo в любом редакторе, однако в случае ошибок могут быть неприятные последствия! Также стоит отметить, что для данной команды необходимы права root

sudo visudo

По умолчанию в файле sudo отсутствет описание параметры timestamp_timeout, поэтому он берётся со значением по умолчанию, т.е. после первого запроса пароля при выполнении команды sudo, ещё какое-то время пароль запрашиваться не будет, поэтому для большей безопасности этот параметр можно изменить, т.е. добавить в начало файла следующую строчку:

Defaults	timestamp_timeout=0

В этом случае при каждом вводе команды sudo будет запрашиваться пароль. Синтаксис самого описания прав для пользователей достаточно простой:

имя_пользователя хост=(пользователь:группа) опции команда

где

  • имя_пользователя - логин нужного нам пользователя
  • хост - имя машины, на которой можно выполнять последующие настройки, зачастую вместо него ставится служебное слово ALL - т.е. разрешить везде
  • пользователь:группа - пользователь и группа, под которым разрешено выполнять команду, можно поставить ALL или ALL:ALL, чтобы команда выполнялась из под любого пользователя
  • опции - дополнительные опции, разделённые : - например NOPASSWD: - означает, что команду можно выполнять без запроса пароля
  • команда - команда, которую можно выполнять, вместо неё можно использовать служебное слово ALL - выполнение любой команды. Тут следует отметить, что команда не должна быть описана полнём путём, без короткого алиаса, т.е. если вы хотите чтобы пользователь мог выполнять команду whoami вам необходимо выяснить где она находится командой whereis. Примеры:
test ALL=(ALL) ALL

Позволяет пользователю test выполнять любую команду, на любом хосте, от любого пользователя - т.е. выдаёт ему права root, при этом будет произведён запрос пароля при выполнении команды sudo

tester ALL=(ALL:ALL) NOPASSWD: /usr/bin/whoami

Позволяет пользователю tester выполнять команду whoami из под root, без ввода пароля. Т.е. в результат команды sudo whoami мы получим результат root, при этом пароль запрашиваться не будет. Следует отметить, что при необходимости можно изменить полльзователя, который будет использоваться по умолчанию для выполнении команд, по умолчанию это root