I’m still working through my quarantine folders. There are about 300 emails in each folder, and there are 62 folders. The folders are named 0-9, a-z, and A-Z. I don’t know why SpamAssassin / Amavisd on Debian does it that way, but it does.
Anyway going through them one at time with zless, and then rm was a bit of a pain. So I wrote a quick little one-liner to help:
for x in $(ls -1); do zless $x ; rm -i $x;done
The problem is, not all of the files are in gzip format, so it didn’t display those. And going in and out of the page system for Less was an annoying flash between the pager system and the normal terminal output.
So I improved it, using zcat, because I had some issues with zgrep not supporting some grep switches, like recursive.
for x in $(ls -1); do ls -1 | wc -l; echo -e "$x:"; zcat $x | \
egrep '^(To|From|Subject|Date)\: '; rm -i $x ; echo -e "\n" ; done
Now it didn’t launch the pager, so no flashing. The second thing it did was give me just the To, From, Subject, and Date fields, and I could decide to delete or not based on block of info provided. Downside was it still didn’t handle the non-gzip files.
So when I got up today, I thought why not create a shell script to do this. And I can add in the feature to release false positives that SpamAssassin put in the folders.
So I now have a Mail Administration script in my DFIR repository on GitHub, that will check if it is gzip or not. Use the right form of grep, show info, and ask what to do with the file, release or delete (or nothing if you don’t use r or d as the answer).
Still some minor issues with the script:
- Must be ran as root, or someone else that has access to the virusmail sub-directories. in my case that means root since the mail accounts have /bin/false set up for shells.
- To be more portable it has to be called from spam sub-directory. In my case spam is in /var/lib/amavis/virusmails/. Which means I have to go there, and then in to one of the 0-9, a-z, or A-Z directories first. Like so:
- I still have 300 or so emails in each folder so I’d rather work 1 folder at a time right now to clear them.
Future plans for the script:
Ask the user where their spam folder is, so the script can be called outside of those folders, and enumerate all the sub-folders.
I also have to find out if the 0-9a-zA-Z is the same for all versions of software or if that is just a Debian thing.