如何使用用户权限从webserver运行php脚本

时间:2012-03-16 06:30:49

标签: php bash

我已经完成了这个脚本:

#!/usr/bin/php
<?php


system('whoami');

此脚本属于userName。

当我从webbrowser运行它时,使用以下php脚本:

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

它输出_www (我在Mac上)。

我希望脚本输出userName, 从webbrowser调用时。

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

1 个答案:

答案 0 :(得分:1)

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

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