After a nightly rkhunter --cronjob run I got a "Suspect files: 4" line in the report. Rootkit checks came back clean (0 rootkits, 498 checked), but four hidden paths were flagged as potentially suspicious:
/usr/.qwen/dev/shm/PostgreSQL.*/root/.local/bin/env/usr/bin/.summarizer-*
I panicked for about ten minutes, then realized every single one was something I put there myself:
-
/usr/.qwenis a model cache directory a local Qwen run created. -
/dev/shm/PostgreSQL.*is Postgres using a tmpfs mount for shared memory — completely normal, it just happens to look like a "hidden file in /dev/shm". -
/root/.local/bin/envis a tiny wrapper script I dropped in my own bin. -
/usr/bin/.summarizer-*is a temp binary my summarizer helper writes while it runs.
The point: rkhunter's "suspect files" check is a heuristic, not a verdict. It flags anything that looks hidden or unusual, and self-hosters are exactly the kind of people who have dotfiles, tmpfs mounts and helper scripts everywhere. A flagged path is a prompt to investigate, not to assume compromise.
The right move is to whitelist the ones you own and can account for, then re-run the property update so the noise goes away:
# /etc/rkhunter.conf ALLOWHIDDENDIR="/usr/.qwen" ALLOWHIDDENFILE="/dev/shm/PostgreSQL.*" ALLOWHIDDENFILE="/root/.local/bin/env" ALLOWHIDDENFILE="/usr/bin/.summarizer-*" Then:
rkhunter --propupd After that the next --cronjob run reports 0 suspects, and anything NEW that shows up is actually worth your attention — which is the whole reason to keep rkhunter running in the first place. The signal is only useful once you've cleared your own noise.
Full write-up (including how I verified each path was legit before whitelisting): https://igornews.com/2026/11/08/rkhunter-false-positives-whitelist/


