0

我需要从远程计算机调用 PHP 脚本,该脚本将调用远程服务器来更改 DNS 记录。这可能吗?我在测试环境中一切正常,但 PHP 无法访问/var/namdd/mydomain.com.db. 这是我的一个 VPS,我有 root 访问权限,所以获得访问权限不是问题。我只是想让脚本为我做这件事。有任何想法吗?

4

2 回答 2

0

三种方式立即浮现在脑海:

  1. 更改文件的权限。
  2. 创建一个守护进程来做到这一点。
  3. 创建命令并配置sudo为在没有密码的情况下运行它。

更改文件的权限

最简单的情况是更改文件的权限。为此,您可能至少想知道

  1. 读取文件的用户,以及
  2. 您的 PHP 脚本运行的用户。

如果用户相同,那么答案当然很简单:将所有者更改为该用户。否则,如果文件不包含敏感信息,您也许可以将所有者更改为 PHP 用户并授予所有用户读取权限。最后,您也许可以创建一个包含这两个用户的新组并更改文件的组。然后您可以将文件的用户更改为 PHP 用户并授予写入权限,将组更改为您创建的组并授予读取权限,并且不授予其他所有人权限。


创建一个守护进程来做到这一点

这是相当复杂的;我不能说我会推荐这个选项。本质上,您有一个后台进程以任何必要的权限运行。这个进程可以做任何需要做的事情,并与较低权限的进程进行通信。当 PHP 脚本需要修改该文件时,它可以向守护程序发送请求,然后它可以代表 PHP 脚本更改文件。


命令与sudo

这可能是最好的方法之一。本质上,您需要创建一些命令来执行您需要对文件执行的任何操作;然后,一旦你知道它在运行时可以工作root(或者最好是一些仍然具有必要权限的低权限用户),你可以配置sudo让 PHP 用户在没有密码的情况下以更高权限的用户身份执行它。

于 2013-10-12T18:05:31.997 回答
0

假设另一台服务器正在运行 BIND,则文件可能由 named 拥有,而不是 root。将是一个更简单的选择。此外,您可以将它们设为 777,然后让 PHP 简单地编辑它们。

于 2013-10-12T17:52:02.167 回答