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

具有根访问权限的PHP脚本?,php,Php,我需要从远程计算机调用PHP脚本,该脚本将调用远程服务器来更改DNS记录。这可能吗?我在测试环境中一切正常,但PHP无法访问/var/namdd/mydomain.com.db。这是我的一个VPS,我有根访问权限,所以访问不是问题。我只是想让剧本帮我做。有什么想法吗?假设另一台服务器正在运行BIND,文件可能由named而不是root拥有。这将是一个简单得多的选择。此外,您可以将它们设置为777,然后让PHP简单地编辑它们。立即想到三种方法: 更改文件的权限 创建一个守护进程来完成它 创建命令并

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

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

立即想到三种方法:

  • 更改文件的权限
  • 创建一个守护进程来完成它
  • 创建命令并将
    sudo
    配置为在没有密码的情况下运行它

  • 更改文件的权限

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

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


    创建一个守护进程来执行此操作

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


    命令与
    sudo


    这可能是最好的方法之一。本质上,您需要创建一些命令来执行您需要对文件执行的任何操作;然后,一旦您知道它在以
    root
    身份运行时有效(或者最好是一些特权较低的用户,他们仍然拥有必要的特权),您可以配置
    sudo
    ,让PHP用户以特权较高的用户身份执行它,而无需密码。

    几种可能性:1。更改权限,使您不需要
    root
    访问;2.创建一个PHP文件可以与之通信的守护进程,其唯一目的是修改该记录;3.创建一个修改DNS记录的命令,并配置
    sudo
    ,以允许PHP用户在不使用密码的情况下运行该命令(并且只运行该命令)。更改权限以便PHP可以编辑它们可能是一个好主意,但777几乎从来都不是一个好主意。它们属于我的
    名为
    。我担心把它们设置为777,以为这会把其他事情搞砸。Cpanel通常是编辑它们的工具。我会试试看,最坏的情况是我将权限设置回正常状态。我知道777从来都不是个好主意,但它只适用于一个域。我在家里有一个服务器,它将调用一个php脚本,如果我的家庭ip更改,php脚本将编辑dns并重新启动。我的托管服务器有DNS,因为我想在上面保留邮件(MX记录),以防我的家庭服务器出错,我不会丢失电子邮件。几乎只是一个开发设置。没什么要紧的。所以我的邮件是在VPS上托管的,但其他的东西都到我家去了。