Как запускать команды без пароля 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
Обсуждение
Нет комментариев.