SCROLL
Среднее время на прочтение: 1 мин.

Как запускать команды без пароля sudo в Linux

В различных ситуациях может понадобится выполнение sudo без ввода пароля. Рассмотрим как это сделать на Linux на нескольких примерах.

Для удобства рекомендую хранить файл настроек для каждого пользователя системы (если их много, то будет проще управлять) отдельно в /etc/sudoers.d.

К примеру для пользователя jakonda, разрешим выполнять абсолютно все команды без sudo пароля.

echo "jakonda ALL=(ALL:ALL) NOPASSWD:ALL" >> /etc/sudoers.d/jakonda

Пояснение по синтаксису:

jakonda Задаём имя пользователя, к которому нужно применить данное правило (в данном случае это jakonda).
Первое ALLОзначает, что правило будет применяться ко всем хостам.
Второе ALLОзначает, что указанный пользователь может запускать команды в сессии любого пользователя.
Третье ALLОзначает, что указанный пользователь может запускать команды в любой группе.
Последнее ALLУказывает, что эти правила нужно применять ко всем командам.

Если необходимо разрешить выполнять только определенные команды, к примеру chown, chmod.

jakonda ALL=(ALL) NOPASSWD:/usr/bin/chmod,/usr/bin/chown
Важно указывать полный путь к исполняемому файлу. Узнать расположение файла можно используя — which <имя команды>

Можно разрешить пользователю перезапускать какую либо службу (к примеру apache):

jakonda ALL=(ALL) NOPASSWD:/usr/bin/systemctl restart apache2

Обсуждение

0 комментариев

Нет комментариев.