我知道这是一种安全威胁,并且从安全方面来看是很糟糕的,但出于特定原因,我需要它才能正常工作。我有一个在 Ubuntu 16.04 上运行的程序。对于这个例子,假设它是一个 DNS 服务器或其他什么。
我正在尝试做的是从网页编辑位于/etc/xxx 中的 DNS 服务器配置文件,该文件使用 PHP fopen、fwrite 和 fclose。因为无论如何您都无法访问直接位于/etc/xxx/somecfg.cfg 中的文件,因为它没有 www-data 权限,所以我尝试将它链接到/var/www/html,无论是软链接(soft link)还是硬链接(hard link)链接它。当我创建硬链接(hard link)时,如果我手动编辑它也会更改原始 cfg 文件,但是一旦我通过 PHP 编辑它,只有硬链接(hard link)文件会更改,而不会更改原始文件。
周末我一直在尝试解决这个问题,但我似乎做不到。
有人知道我将如何解决这个问题吗?我也对其他想法持开放态度。主要目标是从网页中编辑包配置文件。
TL;DR:我正在尝试从/var/www/html/someaction.php 编辑/etc/xxx 中的配置文件并直接执行它不起作用(显然),但硬链接(hard link)和软链接(soft link)行为很奇怪 - 链接的内容发生变化,但原始 cfg 文件没有。
谢谢!
最佳答案
问题是我不小心把 unlink 放在了代码的开头,硬链接(hard link)被删除了,所以我基本上每次写入时都会创建一个新文件。
现在已经修复了。
关于php - 用PHP编辑硬链接(hard link)或软链接(soft link)的目标位置内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49730141/