[英]Is there any secure method to run CordovaCLI commands from a bash script as www-data?
我應該怎么做才能安全地運行一些CordovaCLI命令,例如: cordova prepare
, cordova clean
, cordova platform add android
通過運行bash腳本在Linux Ubuntu Web服務器中cordova platform add android
帶有Apache Cordova 5+的cordova platform add android
,或者甚至可以從php腳本中更好地運行?
我解決了這個問題(雖然不確定這是否是最安全的方法)。
我加了
NOPASSWD:path/to/bash/script
我的/etc/sudoers
文件中的www-data部分的指令
然后我將bash-script.sh
的所有者設置為www-data
最后,我使用以下命令在php中執行了一個shell
sudo -u www-data /path/to/bash/script/bash-script.bash
而且,到目前為止,它是可行的,盡管我不確定這是否是將其視為最終解決方案的安全方法。
這是一個為您提供真正的Bash Shell的項目: https : //github.com/merlinthemagic/MTS
安裝后,您將通過以下方式獲得外殼:
$shellObj = \MTS\Factories::getDevices()->getLocalHost()->getShell('bash', false);
現在,$ shellObj包含一個與執行php相同的用法登錄的shell對象。
現在,您可以通過以下方式針對該shell執行命令:
$returnData1 = $shellObj->exeCmd("cordova clean");
//or
$returnData2 = $shellObj->exeCmd("cordova platform add android");
您的問題集中在安全性上,shell以運行php的同一用戶身份登錄,因此不執行提升操作。 但是,如果您需要提升的權限才能執行cordova二進制文件,則允許您的Web服務器用戶sudo訪問該二進制文件。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.