2016-12-24 17 views
0

こんにちは私はちょっとphp/htmlページを書いていて、コマンドラインで動作しますが、ユーザに&パスワードを渡そうとしています。アドバイスはありますか?sudoを使ったphpはコマンドラインでは動作しますが、ブラウザでは動作しません

$user = "echo password!"; 

$row = exec('$user | sudo -u user_id -S /usr/bin/VBoxManage list vms',$output,$error); 

echo "\n"; 

while(list(,$row) = each($output)){ 
    echo sprintf($row) . "<BR>\n"; 
} 

if($error){ 
    echo "Error : $error<BR>\n"; exit; 
} 
+0

あなたは確認する必要があります。 exec関数はdisable_functions構成に存在してはいけません –

答えて

0

考えられる原因の1つは、sudoバイナリに完全パスも必要であるということです。

ただし、構文が正しくありません。一重引用符を使用すると、$userが展開されません。

でも、execはパイプ要求を守らない可能性があります。代わりに、visudoを使用して、パスワードなしでVBoxManageコマンドを発行するようにApacheを実行しているユーザーを承認する必要があります。または、proc_*の機能を調べることができます。

この作業する必要がありますphp.iniファイルは、exec関数を実行することができます場合

$output = shell_exec("/bin/sh -c '{$user} | sudo -u ...'"); 
関連する問題