我需要从远程计算机调用PHP脚本,该脚本将调用远程服务器来更改DNS记录。这可能吗?我在测试环境中一切正常,但PHP无法访问/var/namdd/mydomain.com.db
。这是我的VPS,我有root访问权限,因此获取访问权限不是问题。我只想让脚本为我做。有什么想法吗?
答案 0 :(得分:0)
假设其他服务器正在运行BIND,则文件可以由named而不是root拥有。这将是一个更简单的选择。此外,您可以将它们设为777然后让PHP简单地编辑它们。
答案 1 :(得分:0)
立即想到三种方式:
sudo
以在没有密码的情况下运行它。更改文件的权限
最简单的情况是更改文件的权限。要做到这一点,你可能至少想知道
如果用户是相同的,那么答案很简单:将所有者更改为该用户。否则,如果文件不包含敏感信息,您可以将所有者更改为PHP用户并授予所有用户读取权限。最后,您可以创建一个包含这两个用户的新组,并更改该文件的组。然后,您可以将文件的用户更改为PHP用户并授予写入权限,将组更改为您创建的组并授予读取权限,并且不向其他人授予任何权限。
创建守护进程
这是相当复杂的;我不能说我会推荐这个选项。从本质上讲,您有一个后台进程,运行所需的任何权限。此过程可以执行任何需要完成的操作,并与较低权限的进程进行通信。当PHP脚本需要修改该文件时,它可以向守护进程发送请求,该守护进程可以代表PHP脚本更改文件。
使用sudo
这可能是最好的方法之一。从本质上讲,您需要创建一些命令来执行文件所需的任何操作;然后,一旦你知道它作为root
运行时(或者最好是一些仍然具有必要权限的特权较少的用户),你可以配置sudo
让PHP用户以更多特权用户身份执行它没有密码。