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

阻止Linux将文件添加到内存缓存中?,linux,caching,memory,file-io,linux-kernel,Linux,Caching,Memory,File Io,Linux Kernel,我希望你们都看过这个精彩的网站,Linux吃掉了我的Ram。这通常很好,但对我来说是个问题。我有一个安全的文件,我正在用gpg解密,然后读入内存进行处理。未加密的文件会在短时间后被删除,但我不希望解密的文件保存在Linux的内存文件缓存中 有没有一种方法可以明确地防止从Linux的缓存中保存文件 谢谢 当然。删除文件时将其撕碎 shred -u $FILE 当然,它不能直接回答您的问题,但我仍然认为这是一个解决方案——缓存中的任何内容现在都是随机生成的垃圾。:-) 使用gpg-d,这将导致gp

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

有没有一种方法可以明确地防止从Linux的缓存中保存文件


谢谢

当然。删除文件时将其撕碎

shred -u $FILE

当然,它不能直接回答您的问题,但我仍然认为这是一个解决方案——缓存中的任何内容现在都是随机生成的垃圾。:-)

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


根据你的偏执程度,你可能也想使用它。

如果你真的,真的需要gpg的输出成为一个文件,你可以将该文件放在一个文件系统中。文件内容将仅存在于不可交换内存页中

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


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

我想说的是,shred如何不能保证日志文件系统上的正常功能,但由于您只对刷新内存缓存感兴趣,这可能无关紧要。正如
shred(1)
将告诉您的,当与NFS、日志FS或RAID阵列一起使用时,不一定会从磁盘上清除文件。@Nathan Kidd:你可能是对的,但将敏感数据留在磁盘上而不是RAM中会带来更大的安全风险。@larsmans:他特别问到了磁盘缓存的问题。当然,从更大的安全角度来看,这是一个错误的问题嗨,伙计们,我有点认为该文件也会被安全删除,所以感谢各位的提醒。这个答案+1。如果你真的想安全,你应该使用mlock/mlockall防止包含你的密文的页面被交换到磁盘上。谢谢你的回答。我确实知道
gpg-d
,但由于奇怪的环境原因,我需要将文件写入磁盘,因此这并不能完全帮助我解决问题。
mount none /your/mnt/point -t ramfs