-1

我正在尝试使用 PHP 脚本更改 Linux 主机名。我可以使用命令主机名直接在 Linux 机器上执行此操作

但是当我使用下面的 PHP 语句时 .. 它不起作用。

system('sudo hostname '.trim($Host));

请提出解决方案。

4

2 回答 2

3

假设您的 Apache 用户可以在sudo不输入密码的情况下运行命令(顺便说一句,这将是一个巨大的安全漏洞,所以请不要这样做),您可以这样做:

exec("sudo hostname " . $hostname);

为了确保您www-user可以执行此操作,请/etc/sudoers使用以下行进行编辑:

www-user ALL=NOPASSWD: /bin/hostname

无论您试图通过更改主机名来完成什么,您可能会发现您可以通过另一种更安全的方式来完成它。对于阅读本文的任何人,我完全不建议您遵循这些说明,您会通过升级www-user帐户的权限来打开您的服务器,从而造成潜在的危害。

于 2013-05-08T11:06:23.617 回答
0

用函数 exec() 试试这个命令。 http://php.net/manual/de/function.exec.php

于 2013-05-08T11:04:55.747 回答