2017-10-19 168 views
0

如果我做了下面的命令,我得到一個「嗨」輸出:PHP shell_exec不適用於某些命令?

echo shell_exec("echo 'hey'"); 

但是如果我做了下面的命令,它不會殺死任何screen

echo shell_exec("killall screen"); 

或者,如果我這樣做

echo shell_exec("sh /var/www/html/run.sh"); 

它不會運行在所有該文件(該文件是否在屏幕上殺死藏漢)

而且如果我甚至用獲取內容獲取該文件,它會成功讀取其中的內容。

如果它可以執行echo有啥錯?

+4

這或許權限。如果不是你自己的過程,'killall'通常需要su/sudo權限。 – aynber

+0

您的網站最有可能運行的用戶沒有執行'kill'和類似命令的權限。 – Mikk3lRo

+0

正在授予PHP的支持或服務器的權限? – Jony

回答

0

運行這樣強大的命令,我不得不使用this librarythis question規定。這使我能夠以root權限登錄到SSH並執行任何命令!

function ssh_script($script, $ip, $user, $pass) { 
      $ssh = new Net_SSH2($ip); 
    if (!$ssh->login($user, $pass)) { 
     exit('Login Failed'); 
    } 

    if ($ssh !== false) { 
     echo $ssh->exec("sh " . $script); 
    } 
    else { 
     echo "fail"; 
    } 
}