sudo ведет себя иначе, чем при обычном выполнении скрипта

#php #docker #shell #sudo #synology

Вопрос:

У меня есть скрипт, который перезапускает контейнер docker.

  1. Если я выполню этот скрипт от имени root, он будет работать идеально.
  2. Я установил sudoers, чтобы другим пользователям не требовался пароль для выполнения этого скрипта от имени root
  3. Я хочу, чтобы мое веб-приложение (на основе php) могло выполнить его, если я нажму кнопку

Но вот в чем проблема.

Мой PHP файл включает в себя:

 <?php
    echo passthru("sudo /volume1/web/VPN/vpnSwitchLocation.sh $location 2>amp;1");
?>
 

И скрипт выполняется без пароля! Но в скрипте есть команда docker

 docker run ...
 

Когда я когда-либо вызываю скрипт с php, возникает эта ошибка:

 docker: command not found
 

Но если я выполню его без sudo (вручную из оболочки), он будет работать отлично. Поэтому мой вопрос таков:
как я могу выполнять сценарии с помощью sudo в PHP, которые содержат команды docker?

С уважением

Комментарии:

1. Похоже, что (уменьшенное) значение ПУТИ sudo не включает путь к docker . Где установлен двоичный файл docker? ( type -a docker должен это сделать)