Reputation: 2320
I am trying to create a settings page(for the clients) where in they can view the current up address,change the ip address etc. I have a php file to view the ip address
<?php
$res=shell_exec("ifconfig");
echo $res;
?>
This code works just fine and displays the expected result. However the code to change the ip address of the server is not working properly.
<?php
shell_exec("ifconfig eth0 192.168.163.136");
?>
After running this code when i check the ipaddress on the terminal using ipaddr i don't see any change in the ipaddress. Pls point out where i am going wrong. I think its a problem of apache not being a super/root user. If that is the case i don't know how to make apache run as a root user.
Upvotes: 0
Views: 4684
Reputation: 2320
Adding /srv/http
before ifconfig worked. All it needed was the root owned location.
Upvotes: 0
Reputation: 32240
Your PHP script doesn't have enough privileges to change the interface address. You may want to write a Shellscript, give it the right privileges (e.g., change its owner to root, and set the suid bit), then run it from your PHP script. Yet, I advise against doing such thing
Upvotes: 2
Reputation: 78961
IP address are configured in Network Layer of an Network Protocol, not in application layer where PHP runs. Simply, PHP does not have access to it and cannot changed them.
Just imagine the vulnerabilities it could create if this was possible.
Upvotes: 1