防止Linux将文件添加到内存caching中?

我希望你们都看到了这个美妙的网站,Linux Ate My Ram。 这通常很棒,但对我来说却是一个问题。 我有一个安全的文件,我用gpg解密,然后读入内存进行处理。 未encryption的文件在短时间后被删除,但我希望将解密的文件保存在Linux的内存文件caching中。

有没有办法显式地阻止文件从Linux的caching保存?

谢谢!

使用gpg -d ,这将导致GPG输出文件到STDOUT,所以你可以把它全部放在内存中。

根据你是多么的偏执,你也可以使用mlock 。

如果你确实需要gpg的输出作为一个文件,你可以把这个文件放在一个ramfs文件系统上。 该文件的内容将只存在于不可交换的内存页面中。

您可以通过运行(以root身份)将ramfs文件系统附加到您的树:

 mount none /your/mnt/point -t ramfs 

你可能也听说过tmpfs 。 它的类似之处在于它的文件没有永久存储,通常只存在于RAM中。 但是,为了您的使用,您希望避免此文件系统,因为tmpfs文件可以交换到磁盘。

当然。 在删除文件时将文件碎化。

 shred -u $FILE 

当然,它不直接回答你的问题,但我仍然认为这是一个解决方案—无论生活在缓存中,现在是随机生成的垃圾。 🙂