我试图用PHP脚本更改Linux主机名。我可以直接在Linux机器上使用命令hostname
但是当我使用下面的PHP语句…
system('sudo hostname '.trim($Host));
请提出解决方案
假设您的Apache用户可以在不输入密码的情况下运行sudo
命令(顺便说一下,这将是一个巨大的安全漏洞,所以请不要这样做)您可以这样做:
exec("sudo hostname " . $hostname);
为了确保您的www-user
可以做到这一点,用以下行编辑/etc/sudoers
:
www-user ALL=NOPASSWD: /bin/hostname
无论你想通过更改主机名来完成什么,你可能会发现你有另一种更安全的方法。对于任何正在阅读本文的人,我完全不建议您遵循这些说明,您正在通过升级www-user
帐户的特权来打开您的服务器,使其受到潜在的伤害。
用exec()函数试试这个命令。http://php.net/manual/de/function.exec.php