CLAMFS(1)

πŸ’– CLAMFS πŸ’–

okay so bestie, welcome to the clamfs(1) manual page, General Commands Manual edition, and honestly? it's giving antivirus but make it a file system. let's get into it πŸ¦‹


✨ NAME ✨

clamfs β€” an anti-virus protected file system πŸ›‘οΈ

no like literally, that's the whole vibe. it's a file system with a bouncer.


🌸 SYNOPSIS 🌸

clamfs <configuration.file>

that's it. one (1) argument. that's the whole synopsis. slay. πŸ’…


πŸŽ€ DESCRIPTION πŸŽ€

so this manual page is here to briefly document the ClamFS user-space file system, periodt. ✨

clamfs is a program that mounts an anti-virus protected file system into an existing directory tree. that's the whole thing. it just. moves in. πŸ‘‘

🧚 Features 🧚

  • User-space file system (no kernel patches, no recompilation, none of that cursed energy, etc.) 🫢
  • Configuration stored in XML files πŸ“„
  • FUSE (and libfuse) used as file system back-end πŸ”§
  • Scan files using ClamAV 🦠
  • ScanCache (LRU with time-based and out-of-memory expiration) speeds up file access ⚑
  • Sends mail to administrator when it detects a virus πŸ“§πŸ˜­

πŸ’œ Idea πŸ’œ

ClamFS is completely a user-space anti-virus solution for Linux, no cap. it uses libfuse and the Linux kernel module to provide the file system. ClamAV is used as the anti-virus scanner. 🦠✨

so normally, a program (or a library) uses the glibc open() call to obtain a file descriptor. glibc calls kernel VFS to open the file regardless of which file system is used. but β€” plot twist β€” if the file is on a ClamFS file system, the open call from VFS is directed to user-space by FUSE. then ClamFS calls libfuse to communicate with FUSE and, through it, with VFS. it's giving middle school telephone game but make it kernel architecture πŸ“žπŸ’«

🌈 Internals 🌈

ClamFS is split into four parts:

  • libfuse bindings β€” used to communicate with FUSE (and with VFS through it) πŸ”Œ
  • ScanCache β€” stores (per file) results of anti-virus scanning to speed up future open() requests πŸ—‚οΈ
  • ScanQueue β€” queues files for scanning πŸ“‹
  • clamd / libclamav bindings β€” communicates with the anti-virus scanner πŸ“‘

four parts. iconic quartet energy. πŸ‘‘


✨ OPTIONS ✨

This program uses only one command line argument β€” the configuration file name. that's it bestie, no flags to memorise, no -x that means three different things depending on the phase of the moon. just the config file. we love a low-maintenance icon. πŸ’…


πŸ¦‹ SEE ALSO πŸ¦‹

ClamFS Project Page: https://github.com/burghardt/clamfs β€” go look, iykyk πŸ‘€


πŸ’– AUTHOR πŸ’–

ClamFS and this manual page was written by Krzysztof Burghardt <krzysztof@burghardt.pl> and may be freely distributed under the terms of the GNU General Public License. 🫢


and that's the whole page bestie, no notes. shoutout to the 09 Feb 2007 date stamp at the bottom β€” vintage, retro, genuinely main character energy. πŸŒŸπŸ’…βœ¨