我正在使用带有 KDE 的 Debian 9.1,并且想要运行自动搜索和删除操作来完全删除所有“已被删除但文件句柄尚未关闭”的文件。
我对 GNU/Linux 还不熟悉,并且我了解到此类文件存在安全风险(即恶意软件利用它来隐藏其存在)。
显然,该ls
命令显示此类文件的“引用计数为 0”,这不是我想要的。
答案1
你误会了一些事。
彻底删除所有已删除的文件
嗯...如果文件被删除了,它就被删除了。
如果您希望删除文件会使所有句柄失效,那是不可能的。太多程序和数百万行代码依赖于此语义。至于防止删除打开的文件的可能性,就像 Windows 所做的那样,情况也是一样的:Linux 世界中有太多东西依赖于此。
手动强制关闭外部进程中的文件句柄(例如使用 GDB 或脚本解决方案)会导致进程崩溃或造成更糟糕的后果。在内核端使句柄无效也存在同样的问题(并且需要修改内核)。
简而言之,没有明智的方法可以做到这一点。
而且,我不会称之为安全风险。如果恶意软件利用这一点来隐藏某些东西,那么恶意软件已经存在于您的计算机上,并且可以创建和删除文件。那么您面临的问题远不止这些。