使用php更改apache服务器的ip地址

使用php更改apache服务器的ip地址,php,linux,apache,ip,Php,Linux,Apache,Ip,我试图创建一个设置页面(为客户端),在那里他们可以查看当前的地址,更改ip地址等。我有一个php文件来查看ip地址 <?php $res=shell_exec("ifconfig"); echo $res; ?> 此代码工作正常,并显示预期结果。 但是,更改服务器ip地址的代码工作不正常 <?php shell_exec("ifconfig eth0 192.168.163.136"); ?> 运行此代码后,当我使用IPADR检查终端上的IP

我试图创建一个设置页面(为客户端),在那里他们可以查看当前的地址,更改ip地址等。我有一个php文件来查看ip地址

 <?php
  $res=shell_exec("ifconfig");
  echo $res;
 ?>

此代码工作正常,并显示预期结果。 但是,更改服务器ip地址的代码工作不正常

 <?php
 shell_exec("ifconfig eth0 192.168.163.136");
 ?>

运行此代码后,当我使用IPADR检查终端上的IPADR时,我看不到IPADR中有任何更改。
请指出我错在哪里。我认为这是apache不是超级/根用户的问题。如果是这种情况,我不知道如何让apache以root用户身份运行。

IP地址是在网络协议的网络层中配置的,而不是在PHP运行的应用层中配置的。简单地说,PHP无法访问它,也无法更改它们


试想一下,如果可能的话,它可能会造成哪些漏洞。

IP地址是在网络协议的网络层中配置的,而不是在运行PHP的应用程序层中配置的。简单地说,PHP无法访问它,也无法更改它们


想象一下,如果这是可能的,它可能会创建漏洞。

您的PHP脚本没有足够的权限更改接口地址。您可能希望编写一个shell脚本,赋予它正确的权限(例如,将其所有者更改为root,并设置suid位),然后从PHP脚本运行它。但是,我建议不要这样做,因为您的PHP脚本没有足够的权限更改接口地址。您可能希望编写一个shell脚本,赋予它正确的权限(例如,将其所有者更改为root,并设置suid位),然后从PHP脚本运行它。但是,我建议不要在ifconfig工作之前添加
/srv/http
,这样做。它所需要的只是根拥有的位置。

在ifconfig工作之前添加
/srv/http
。它所需要的只是根拥有的位置。

服务器上运行的任何代码都可以更改服务器上的IP地址,前提是它已授予足够的权限。通常PHP/Apache服务器没有这些功能,但可以提供给它们(尽管从安全角度来看,这并不过分明智)。不过,更改IP地址很可能会中断当前与已删除IP的HTTP连接。好吧,我知道这不是明智之举,但我仍然想知道如何获得apache运行该特定IP的权限script@apurvnerlekar,你没有抓住要点,如果你能改变IP,您将不会执行任何操作,因为活动连接已被断开。@apurvnerlekar,如果您坚持执行此操作,则之前似乎有一个问题需要解决。我想我没有说错话。为什么要进行向下投票?只要服务器上运行的任何代码具有足够的权限,就可以更改服务器上的IP地址。通常PHP/Apache服务器没有这些功能,但可以提供给它们(尽管从安全角度来看,这并不过分明智)。不过,更改IP地址很可能会中断当前与已删除IP的HTTP连接。好吧,我知道这不是明智之举,但我仍然想知道如何获得apache运行该特定IP的权限script@apurvnerlekar,你没有抓住要点,如果你能改变IP,您将不会执行任何操作,因为活动连接已被断开。@apurvnerlekar,如果您坚持执行此操作,则之前似乎有一个问题需要解决。我想我没有说错话。为什么否决票?好的,那么你能给我更多关于如何设置suid位的细节吗。有联系吗?谢谢。检查是否有帮助。还要确保阅读作者提供的第一个链接()。另一种方法是给运行你的脚本的用户sudo特权,这是一个更糟糕的主意-它可能会造成很大的损害!好的,那么你能给我更多关于如何设置suid位的细节吗。有联系吗?谢谢。检查是否有帮助。还要确保阅读作者提供的第一个链接()。另一种方法是给运行你的脚本的用户sudo特权,这是一个更糟糕的主意-它可能会造成很大的损害!你的意图可能重复,不清楚你想做什么!?!你的意图可能重复,不清楚你想做什么!?!