无法删除文件夹或里面的文件

无法删除文件夹或里面的文件

我遇到了一个相当奇怪的问题。我遇到了一个文件夹,里面有一个文件,我既看不到也无法删除。我相信这是一个 rootkit,我迫切希望将其从我的机器上删除。我以 root 身份登录服务器。该文件夹名为 silver,位于目录中var。我所做的一切都无法列出该文件夹。ls -la没有显示该文件夹,但我可以通过访问该目录cd silver。文件夹中有一个名为~.b- 我再次看不到它或访问它,但我知道它存在,因为我的dmesg日志中充满了由此文件引起的分段错误。

trivial-rewrite[24096]: 在 2 ip 00007f65c5457e65 sp 00007fff596e5360 处发生段错误,在 ~.b[7f65c5455000+6000] 中发生错误 4
cleanup[24097]: 2 ip 00007fd614f29e65 sp 00007ffffe7ad2c0 处发生段错误,~.b[7fd614f27000+6000] 中出现错误 4

尝试更改文件或文件夹的属性似乎没有任何效果

chattr -sia ~.b

chattr:尝试 stat ~.b 时没有此文件或目录

我如何删除这个文件和目录?

答案1

对于尝试修复,需要重新启动并本地访问服务器。由于您没有提供有关文件系统或底层驱动器/raid/lvm 的信息,因此这些是通用说明。

最有可能的问题只是驱动器损坏且存在不可写入的块,但也可能存在其他情况。第一种情况是您的文件系统损坏且该链接无法更改。另一种情况是您确实有一个 rootkit,并且该 rootkit 阻止了对文件的访问,正如您所说。

解决所有这些问题的最简单方法是使用独立救援磁盘重新启动服务器。我建议使用名为 systemrescueCD 的应用程序,但您的原始操作系统安装磁盘也应该有救援模式。您应该获取映像并将其刻录到另一个系统上的磁盘上。从干净的媒体重新启动可能会删除任何 rootkit 或文件系统锁。

启动后,运行适当的 fsck 检查文件系统类型,以尝试解决任何错误。如果您正在运行 raid 或 lvm,则需要在运行 fsck 之前手动重新创建它。在 fsck 之前,此时不要挂载文件系统。

如果 fsck 无法完成,则表明驱动器有故障。

假设 fsck 成功完成(即使它必须纠正一些错误),您将需要手动挂载文件系统并检查可疑文件是否仍然存在。

如果它消失了,则您很可能遇到了文件系统问题。

如果它仍然存在,你应该能够用

rm -f ~.b 

命令。

问题是,如果这些努力的结果似乎表明存在 rootikit(而不是坏的驱动器或文件系统),您无论如何都需要格式化驱动器并完全恢复操作系统,因为您真的不能确定您是否已经将其全部清除。

答案2

最终设法将其删除。

LD_PRELOAD="/var/silver/~.a" chattr -sia "/etc/ld.so.preload";LD_PRELOAD="/var/silver/~.a" rm "/etc/ld.so.preload"

然后对该文件夹执行 chattr -sia 并将其删除。

相关内容