具有root访问权限的PHP脚本?

时间:2013-10-12 17:43:53

标签: php

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

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

立即想到三种方式:

  1. 更改文件的权限。
  2. 创建一个守护进程来执行此操作。
  3. 创建命令并配置sudo以在没有密码的情况下运行它。

  4. 更改文件的权限

    最简单的情况是更改文件的权限。要做到这一点,你可能至少想知道

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


      创建守护进程

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


      使用sudo

      的命令

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