从伪造的 /proc/meminfo 中恢复

从伪造的 /proc/meminfo 中恢复

因此,我没有考虑太多,就运行了这个脚本:

#!/bin/bash
SWAP="${1:-512}"
NEW="$[SWAP*1024]"; TEMP="${NEW//?/ }"; OLD="${TEMP:1}0"
sed "/^Swap\(Total\|Free\):/s,$OLD,$NEW," /proc/meminfo > /etc/fake_meminfo
mount --bind /etc/fake_meminfo /proc/meminfo

从这里:http://linux-problem-solver.blogspot.com.ee/2013/08/create-fake-swap-in-openvz-vps-if-you-get-swapon-failed-operation-not-permissed-error。 html

它对于撒谎我的交换空间非常有效,但现在我想要像这样的好旧命令

free -m

再次工作,但 /proc/meminfo 完全是空的,服务器似乎不再知道有关它的 RAM 的任何信息,即使有 atop 或类似的东西。

谢谢阅读。

答案1

只需卸载它:umount /proc/meminfo

所有这些程序(freetopatop等)都必须从某个地方获取它们的信息。那是某处/proc/meminfo

如果您想为一个程序提供虚假信息,请在挂载命名空间:

$ unshare -m bash
$$ mount --bind … /proc/meminfo
$$ myprogram

如果您只想对交换空间撒谎,请将伪造meminfo文件设为通过 FUSE 文件系统的动态文件。 (注意:命名管道也可以工作,但前提是一次只能由一个程序访问。)

相关内容