I get errors about unblessed references from Razor. Help!

TheoVanDinter wrote a great mail explaining this, and how to fix it:

The problem is that spamd can't write to the razor-agents.log file.
The reason for this is that 2.4x spamd looks at the HOME environment variable when it gets started.
So for most people, it remembers root's home directory.
That saved variable is what spamd sets HOME to before running Razor, DCC, etc.

The problem is that things like .razor/razor-agents.log are not world writable.
So when spamd switches UID to the spamc user, that user doesn't have write access to the original razor-agents.log file, and you get the error.

So, if you do the link to /dev/null trick, and generic users can access that file, the problem goes away because /dev/null is world writable.
Unfortunately, on systems like Linux where root's home directory is /root and likely has permissions 700, the link trick doesn't work since you can't get to the file to try writing to it, even though the end file is world-writable.

A patch was included for 2.41 which adds a -H option to spamd.
This options lets you override the default remembering of the $HOME variable from above.
Basically, "-H /directory" specifies that spamd should use a specific directory to get the Razor, DCC, etc, config files.
It's the same idea as the default setting, except it's a different location.
This is useful if the admin wants to have a central configuration for SA, Razor, and DCC.

If you specify "-H" with no parameter, spamd will dynamically switch to the spamd user's home directory.
This solves the permissions problem, but may not work in all configurations.
The default takes the conservative approach since $HOME from the user running spamd is almost guaranteed to exist.

This bug is fixed in Razor-Agents 2.22.

  • No labels