php - 用PHP编辑硬链接(hard link)或软链接(soft link)的目标位置内容

标签 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,无论是软链接(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/

相关文章:

regex - 使用 sed 提取子字符串

在终端上找不到 Python 模块,但在 Python shell、Linux 上找到

php - 批量删除大量文件

bash - 如何为 gcloud 获取 shell 命令完成(自动完成)?

java - 为 .NET 开发人员推荐 Linux + Java 书籍和资源

php - 计数重定向

php - 如何通过电子邮件向所有用户发送用户特定信息。

php - 页面底部不明空间

php - OSCommerce tep_db_input 与 tep_db_prepare_input

linux - 为什么 RPC 调用在从 Linux 上的 Groovy 调用的 C 程序中失败?