丢弃对文件的任何更改

丢弃对文件的任何更改

有没有什么方法可以监听文件的更改,并且
a)立即恢复文件

b)使编辑程序(例如sed -itruncate)相信它已写入文件,同时丢弃任何编辑

基本上我希望程序能够读取文件,甚至认为它们正在修改它,同时保持文件不变(或尽快替换为原始文件)

编辑:有人询问我的使用案例,
我正在使用两个程序。第一个 ( master) 是为了管理第二个程序 ( ) 而设置的slave。部分master工作是为slave.我需要更改master似乎已硬编码的配置文件的属性。不幸的是,master它仅作为编译的二进制文件提供,因此我无法更改它写入的文件或写入的内容。slave只能接受master生成的文件中的配置,虽然它永远不会改变,但如果从文件中撤销编辑访问权限(例如chmod 444),则会master崩溃。这导致需要在master更改文件和slave启动之间进行本质上的竞争攻击。

答案1

一些想法:

  • 看一下联合文件系统。有一个(至少 2 个)保险丝。
  • 为 编写一个包装脚本slave,让它恢复文件,然后执行 exec slave

答案2

如果您可以选择以不同的用户身份运行主服务器和从服务器。然后 chmod 644 将允许主机写入(因此不会崩溃),并允许从机读取。

相关内容