我有 OpenBSD 5.6 和 php-fpm、nginx。
默认 chroot 在 /var/www 上
我尝试:(test.php)
<?php
if(function_exists('exec')) {
echo "exec is enabled";
}else{
// it's not
echo "exec is disabled";
}
echo "<br>";
if( ini_get('safe_mode') ){
// safe mode is on
echo "safe_mode is enabled";
}else{
// it's not
echo "safe_mode is disabled";
}
echo "<br>";
echo exec('whoami');
?>
浏览器仅打印:
exec is enabled
safe_mode is disabled
我尝试改变:
echo exec('whoami');
到
echo exec('/usr/bin/whoami');
但 exec 不起作用
我已经在终端尝试过了;
# sudo -u www php-5.5 test.php
exec is enabled<br>safe_mode is disabled<br>www
所以我认为整个问题出在 php-fpm 上。
我能帮忙吗?
答案1
它是 OpenBSD,并且默认情况下是 chrooted —— 你自己也这么说过。
whoami
您的 PHP 脚本无法访问诸如 之类的命令。这是设计使然。