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

时间:2011-02-15 20:20:32

标签: linux caching memory file-io linux-kernel

我希望你们都见过这个精彩的网站,Linux Ate My Ram。这通常很棒,但它对我来说是一个问题。我有一个安全文件,我正在使用gpg进行解密,然后读入内存进行处理。未加密的文件会在很短的时间后删除,但我 NOT 希望将解密的文件保存在Linux的内存文件缓存中。

有没有办法明确阻止从Linux的缓存中保存文件?

谢谢!

3 个答案:

答案 0 :(得分:9)

使用gpg -d,这将导致GPG将文件输出到STDOUT,因此您可以将其全部存储在内存中。

根据您的偏执程度,您可能也想使用mlock

答案 1 :(得分:2)

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

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

mount none /your/mnt/point -t ramfs

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

答案 2 :(得分:0)

不确定。删除文件时剪切文件。

shred -u $FILE

当然,它并没有直接回答你的问题,但我仍然认为这是一个解决方案 - 生活在缓存中的任何东西现在都是随机生成的垃圾。 : - )