嗨,我正试图使用exec命令并更改目录以执行特定命令,但更改目录不起作用
when i execute exec('whoami'); i get proper output
当我执行以下代码时
<?php
ini_set('error_reporting', E_ALL);
$var = exec('cd /root/');
echo exec("pwd");
?>
我的目录没有更改为根
我认为您需要使用chdir()
而不是exec('cd /root/')
:
<?php
ini_set('error_reporting', E_ALL);
$var = chdir('/root/');
echo exec('pwd'); // Prints /root
如果这是在网站上运行的,并且HTTP服务器正在运行的用户无法访问/root
,则这可能不起作用。
exec()
不起作用的原因是它每次都打开一个新的子流程。在一个目录中更改当前目录不会影响之后派生的其他目录。