C语言 如何在内核空间中获取文件的元数据 - linux 3.5



给定文件路径,如何获取其元数据。这是我的问题:我必须真正隐藏一个文件(即使使用 ls -a,它也不应该显示在任何地方),并且我不需要知道它在返回时将具有相同的状态。现在我虽然可以复制元数据并将其存储在某个地方,只是在需要时将其写回,这将解决我的问题

  1. 我必须创建该元数据的副本并将其存储在另一个地方。
  2. 我必须能够在需要时复制回元数据。

那么如何获取文件的元数据呢?如果有更好的方法来完全隐藏文件,我该怎么做?

这是一个个人项目,我不会在上游有任何代码。

我正在使用 linux 内核 3.5.4v

我又想了一下这个问题。

当然,有一些特定于文件系统的方法可以创建真正隐藏文件的可能性,但我对探索这些完全不感兴趣。但是,有一种不同的方法,一种变体,可能适合您的需求。

您可以通过仅拦截open系统调用(准确地说,扩展现有系统调用)来实现类似的效果。如果打开的文件解析为不存在的文件,但目录和文件名匹配,则不会失败,而是构造一个指向"隐藏"文件的特殊路径,然后打开该文件。

然后,现有文件将是一个完全正常的文件,实际上是在其他地方。当然,你可以把它放在一个只有root的可访问目录(drwx------ root:root),打开它时省略访问安全检查,使其"隐藏"。

最新更新