Есть ли безопасный способ запуска команд CordovaCLI из скрипта bash как www-data?

Что я должен сделать для безопасного запуска некоторых команд CordovaCLI, таких как: cordova prepare, cordova clean, cordova platform add android с Apache Cordova 5+ в Linux на веб-сервере Ubuntu с помощью скрипта bash, или даже лучше из скрипта php?

0

Решение

Я решил это (не уверен, если это самый безопасный способ, хотя).

я добавил

NOPASSWD:path/to/bash/script

директива к моему разделу www-данных на /etc/sudoers файл

Затем я установил владельца bash-script.sh в www-data

Наконец я выполнил оболочку в php используя

sudo -u www-data /path/to/bash/script/bash-script.bash

И до сих пор это работает, хотя я не уверен, что это безопасный метод, чтобы считать его окончательным решением.

0

Другие решения

Вот проект, который дает вам настоящую Bash Shell: https://github.com/merlinthemagic/MTS

После установки вы получаете оболочку следующим образом:

$shellObj    = \MTS\Factories::getDevices()->getLocalHost()->getShell('bash', false);

$ ShellObj теперь содержит объект оболочки, вошедший в систему с тем же использованием, что и php.

Теперь вы можете выполнять команды для этой оболочки следующим образом:

$returnData1 = $shellObj->exeCmd("cordova clean");
//or
$returnData2 = $shellObj->exeCmd("cordova platform add android");

Ваш вопрос сосредоточен на безопасности, и оболочка вошла как тот же пользователь, который запускает php, поэтому повышение прав не выполняется. Однако, если вам требуется повышенный доступ для выполнения двоичного файла cordova, тогда предоставьте пользователю вашего веб-сервера sudo доступ к двоичному файлу.

0

По вопросам рекламы [email protected]