我正在尝试使用 PHP 脚本更改 Linux 主机名。我可以使用命令主机名直接在 Linux 机器上执行此操作
但是当我使用下面的 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