2012-03-16 62 views
0

运行PHP脚本:如何从网络服务器与我做这个脚本用户权限

#!/usr/bin/php 
<?php 


system('whoami'); 

这个脚本不属于用户名。

当我从一个网页浏览器中运行它,使用下面的PHP脚本:

<?php 
$cmd = 'php -f "/pathtomy/programm/whoami.php"'; 
system($cmd); 

它输出_www (我在Mac)。

从web浏览器调用时,我想脚本输出用户名, 。

这可能吗? 我看到这个论坛上, C++的包装解决方案,但我没有学习C的时间还++, 所以我想知道是否有其他的解决方案。

回答

1

Web服务器正在运行为(_www)的用户是作为任何和所有的脚本将被执行的用户。如果你想切换到不同的用户,可以使用su或类似机制切换用户在你执行命令,但也意味着_www必须有设置为能够切换到该用户的权限。这也是一般一个坏主意来执行任何作为另一个用户,Web服务器是专门为运行_www,应该在系统上非常非常有限的权限,最大限度地减少安全漏洞。

有可能是一个更好的解决方案,做你想做的事情,它不需要你切换用户带来什么。