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

时间:2018-04-09 09:53:37

标签: php linux ubuntu symlink hardlink

我知道这是一个安全威胁,并且从安全方面来说完全不好,但出于特定原因,我需要这个工作。我有一个在Ubuntu 16.04上运行的程序。让我们说这个例子,它是一个DNS服务器或其他什么。

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

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

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

TL; DR:我正在尝试从/var/www/html/someaction.php编辑/ etc / xxx中的配置文件并直接执行它(显然),但硬链接和软链接表现得很奇怪 - 链接的内容发生了变化,但最初的cfg文件却没有。

谢谢!

1 个答案:

答案 0 :(得分:0)

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

现在已经解决了。