有没有什么方法可以监听文件的更改,并且
a)立即恢复文件
或
b)使编辑程序(例如sed -i
,truncate
)相信它已写入文件,同时丢弃任何编辑
基本上我希望程序能够读取文件,甚至认为它们正在修改它,同时保持文件不变(或尽快替换为原始文件)
编辑:有人询问我的使用案例,
我正在使用两个程序。第一个 ( master
) 是为了管理第二个程序 ( ) 而设置的slave
。部分master
工作是为slave
.我需要更改master
似乎已硬编码的配置文件的属性。不幸的是,master
它仅作为编译的二进制文件提供,因此我无法更改它写入的文件或写入的内容。slave
只能接受master
生成的文件中的配置,虽然它永远不会改变,但如果从文件中撤销编辑访问权限(例如chmod 444
),则会master
崩溃。这导致需要在master
更改文件和slave
启动之间进行本质上的竞争攻击。
答案1
一些想法:
- 看一下联合文件系统。有一个(至少 2 个)保险丝。
- 为 编写一个包装脚本
slave
,让它恢复文件,然后执行 execslave
。
答案2
如果您可以选择以不同的用户身份运行主服务器和从服务器。然后 chmod 644 将允许主机写入(因此不会崩溃),并允许从机读取。