Выполнение команд с sudo без пароля позволяет получить доступ к системе пользователям, не являющимся администратором или владельцем. Список команд для таких пользвателей может быть ограничен.
Обслуживающий сервера персонал часто имеет не полные права доступа и может выполнять из под sudo определенные операции от имени root. Обычно, запускать заранее написанные скрипты.
Список команд можно задать в /etc/sudoers. В примере ниже показан универсальный полный доступ к системе, для пользователей, отличных от root.
Рассмотрим как настроить sudo без пароля в Ubuntu. Ограничения в sudoers задаются для одной или нескольких групп.
Настройка sudo без пароля в Ubuntu
Группа sudo, в которую мы будем добавлять пользователей в Ubuntu существует по-умолчанию, добавлять ее не нужно. В других дистрибутивах может потребоваться установить пакет sudo и добавить группу sudo.
Добавляем пользователя в группу sudo (команда выполняется с правами root или с sudo)
sudo usermod -a -G sudo username
где username — имя пользователя в системе
Далее открываем файл /etc/sudoers для редактирования. В файле задаются привилегии пользователей
sudo visudo -f /etc/sudoers
Использовать нужно visudo, в обычном текстовом редакторе файл изменять не рекомендуется.
Строку для sudo нужно привести к следующему виду:
%sudo ALL=(ALL:ALL) NOPASSWD: ALL
Изначально в ней нет опции NOPASSWD: ALL за счет которой команды и выполняются без запроса пароля. Также не может быть и самой строки — ее в этом случае следует добавить.
Вместо ALL в файле может быть задан список команд или скриптов, которые пользователь с ограниченными правами может выполнять.
Авторизовавшись на сервере по ssh пользователь может увидеть доступные ему команду выполнив sudo -l
Пример для пользователя test приведен на скриншоте:
В последней строке видно, что в системе пользователю test доступны любые команды из-под sudo без пароля. Это те настройки, которые мы задали ранее.
Читайте о том, как добавить пользователя в систему.