【发布时间】:2011-05-30 01:06:33
【问题描述】:
嗯,我有这个程序,我需要通过任一功能运行,但它位于我的桌面(这个 ubuntu 11.04)。
我把它移到 /home/Username,但没有骰子。
我跑
$blah = exec('sudo | echo mypassword | /home/server1/program commandhere', $test);
var_dump($test);
var_dump($blah); ?>
输出什么都没有。
有人告诉我,如果我想通过 sudo 运行它,我需要将 www-data 的 Apache 用户添加到 sudoers 列表中,我添加了它,但又没有运气了。 基本上,我已经尝试了很多东西,它就是不会运行。为什么?
编辑: 如果我将其粘贴到终端中,它会很好用,只是不能使用 exec、system 或 passtrhu。
【问题讨论】:
-
为什么要将
sudo的输出传送到echo? -
因为当你执行 sudo 程序时它会要求你输入密码,所以你在执行 sudo 之前不要输入密码。
-
你在那里调用
sudo的方式真的行不通。要测试,试试这个:sudo | echo mypassword | echo test > /test.txt。它将显示Permission denied错误。确保您最近没有使用sudo,因为这会缓存您的凭据并改变测试结果。