我正在尝试使用PHP脚本更改Linux主机名。我可以使用命令 hostname
直接在Linux机器上执行此操作但是当我使用下面的PHP语句时......它没有用。
system('sudo hostname '.trim($Host));
请提出解决方案。
答案 0 :(得分:3)
假设您的Apache用户可以在不输入密码的情况下运行sudo
命令(顺便说一下,这将是一个巨大的安全漏洞,所以请不要这样做)你可以这样做:
exec("sudo hostname " . $hostname);
为了确保您的www-user
可以执行此操作,请使用以下行修改/etc/sudoers
:
www-user ALL=NOPASSWD: /bin/hostname
无论你想通过改变主机名来完成什么,你都可能会发现你可以做到另一种更安全的方式。 对于阅读此内容的任何人,我完全不建议您按照这些说明进行操作,而是通过升级www-user
帐户的权限来打开您的服务器。
答案 1 :(得分:0)
使用exec()函数尝试此命令。 http://php.net/manual/de/function.exec.php