为什么我不能使用 geany 编辑具有 append-only 属性的文件?

fix*_*it7 2 filesystem permissions

我将 append-only 属性添加到文本文件中。

但是当我尝试使用 Geany 对其进行编辑时,我得到了不允许的操作

但我可以使用echo new >> test.txt它并附加。

我不明白什么?

fil*_*den 6

因此,您可以使用以下命令在文件上设置 append-only 属性:

chattr +a test.txt
Run Code Online (Sandbox Code Playgroud)

并在诸如 Geany 之类的文本编辑器上编辑它不起作用......

这有点在意料之中,因为文本编辑器不会通过附加到文件来将其缓冲区保存到文件中,而是在完成编辑后重写文件。

虽然技术上可以让文本编辑器支持编辑仅附加文件,但实现起来并不容易,因为首先他们必须专门检测到这一点(使用等效的lsattr命令),然后在兼容的模式下工作使用该设置,跟踪原始文件中有多少,然后在编辑文件时防止对这些行进行修改,并实现一个单独的例程来保存仅附加文件,这将打开文件进行附加并只写入在此编辑会话中添加的行。

这是文本编辑器的一个非常小众的用例,所以我真的不知道有任何文本编辑器实现了这一点,即使它在技术上是可能的......

append-only 属性并不是真正被应用程序使用的标志(换句话说,正常程序通常不会查询文件是否具有该属性集),而是作为一种安全措施,以防止错误破坏重要数据。

例如,此属性在日志文件中很有意义,其中 syslog 应用程序应该只附加到文件中,而不要覆盖或截断它。如果 syslog 应用程序(或其他操作日志文件的程序)有错误或配置错误,并且会触发破坏文件的操作,则设置此标志很有用。在这种情况下,该属性可以防止程序破坏重要数据,而只是简单地向行为不端的程序返回一个错误。