簡體   English   中英

有沒有安全的方法可以將bash腳本中的CordovaCLI命令作為www-data運行?

[英]Is there any secure method to run CordovaCLI commands from a bash script as www-data?

我應該怎么做才能安全地運行一些CordovaCLI命令,例如: cordova preparecordova cleancordova 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM