Думали, что хуже EvilFS ничего нет? Есть, конечно! Знакомьтесь, EvilFSv2:
https://pastebin.com/y3PrJvyu
Инструкция по применению аналогичная. Но, в отличие от своего менее коварного предшественника, EvilFSv2 содержит три файла:
a.txt, b.txt и c.txt. При этом, если открыть c.txt, то сама EvilFSv2 попытается сделать open('evil_fs/a.txt'), что приведет к попаданию процесса EvilFSv2 в состояние uninterruptible sleep. Это означает, что любые попытки завершить EvilFSv2 тщетны и напрасны. Вот такой вот Уроборос.Более того, EvilFSv2 не ждет, пока пользователь прочитает
c.txt и повесит ФС на самой себе, а действует проактивно: форкается и в форке пытается этот самый c.txt прочесть.Как же убить EvilFSv2? Выхода нет?
Оказывается, есть. Достаточно лишь сделать
for FILE in /sys/fs/fuse/connections/*/abort; doПравда, при этом отмонтируются все остальные основанные на FUSE файловые системы, но тем не менее с задачей завершить EvilFSv2 мы справились :)
echo 1 >$FILE
done