使用 PHP 编辑硬链接或软链接的目标位置内容



我知道这是一种安全威胁,从安全方面来看是坏的,但出于特定原因,我需要它来工作。我有一个在 Ubuntu 16.04 上运行的程序。假设在这个例子中,它是一个DNS服务器或其他什么。

我想做的是编辑DNS服务器配置文件,位于网页中的/etc/xxx,它使用PHP fopen,fwrite和fclose。因为你不能直接访问位于/etc/xxx/somecfg 中的文件.cfg无论如何,因为它没有 www-data 权限,我尝试将其链接到/var/www/html,软链接和硬链接它。当我创建硬链接时,如果我手动编辑它,它也会更改原始 cfg 文件,但是一旦我通过 PHP 编辑它,只有硬链接文件会更改,而不会更改原始文件。

我一直在尝试在周末解决这个问题,但我似乎无法做到这一点。

有没有人知道我将如何解决这个问题?我也对其他想法持开放态度。主要目标是从网页中编辑包配置文件。

TL;DR:我正在尝试从/var/www/html/someaction 编辑/etc/xxx 中的配置文件.php直接这样做不起作用(显然),但硬链接和软链接的行为很奇怪 - 链接的内容发生了变化,但原始 cfg 文件没有。

谢谢!

问题是我不小心在代码开头放了取消链接,硬链接被删除了,所以我基本上每次写入它时都会创建一个新文件。

现在已经修复了。

最新更新