[prev in list] [next in list] [prev in thread] [next in thread]
List: amavis-user
Subject: Re: Per user spamassassin bayes_path
From: Damian <amavis () arcsin ! de>
Date: 2024-01-10 14:12:06
Message-ID: 9fb9e335-c5a7-4501-9005-f8c6ea45e810 () arcsin ! de
[Download RAW message or body]
> A harder way would also be highly appreciated 🙂 I'd go some lengths for avoiding \
> a postgres/mariadb instance.
> I suppose just whitelisting the "bayes_path" property in the user-settings would \
> impose a trove of new problems?
I don't know what you mean by whitelisting the property. The reason for
bayes_path "not parsing, administrator setting" seems hardcoded in
SpamAssassin. A dirty solution would be to change it into a non-admin
property, but it requires knowledge of SA internals which can change any
time, so here be dragons.
> root@e5ddc15080cb:~# cat /etc/amavis/conf.d/50-user
> use strict;
> package Amavis::SpamControl::SpamAssassin::Coderdude {
> use base 'Amavis::SpamControl::SpamAssassin';
> sub new_SpamAssassin_instance {
> my $instance = $_[0]->SUPER::new_SpamAssassin_instance(@_);
> $instance->{spamassassin_obj}{conf}{parser}{command_luts}{bayes_path}{is_admin}
> = 0;
> $instance;
> }
> }
> $sa_debug = 'all';
> @spam_scanners = (['SpamAssassin',
> 'Amavis::SpamControl::SpamAssassin::Coderdude']);
> @sa_userconf_maps = ({
> 'user1@example.com' => '/tmp/sa_user1/user.cf',
> 'user2@example.com' => '/tmp/sa_user2/user.cf',
> });
> 1;
>
> root@e5ddc15080cb:~# cat /tmp/sa_user1/user.cf
> bayes_path /tmp/sa_user1/bayes
> root@e5ddc15080cb:~# cat /tmp/sa_user2/user.cf
> bayes_path /tmp/sa_user2/bayes
>
> root@e5ddc15080cb:~# amavisd debug 2>&1 | grep "SA dbg" | grep
> "tie-ing to DB"
> [Testmail -> user1@example.com]
> ... SA dbg: bayes: tie-ing to DB file R/O /tmp/sa_user1/bayes_toks
> ... SA dbg: bayes: tie-ing to DB file R/O /tmp/sa_user1/bayes_seen
> ... SA dbg: bayes: tie-ing to DB file R/W /tmp/sa_user1/bayes_toks
> ... SA dbg: bayes: tie-ing to DB file R/W /tmp/sa_user1/bayes_seen
> [Mail -> user2@example.com]
> ... SA dbg: bayes: tie-ing to DB file R/O /tmp/sa_user2/bayes_toks
> ... SA dbg: bayes: tie-ing to DB file R/O /tmp/sa_user2/bayes_seen
> ... SA dbg: bayes: tie-ing to DB file R/W /tmp/sa_user2/bayes_toks
> ... SA dbg: bayes: tie-ing to DB file R/W /tmp/sa_user2/bayes_seen
[Attachment #3 (text/html)]
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<blockquote type="cite"
cite="mid:20240110131227.40b5f928@taurus.nifty.lan">
<pre>A harder way would also be highly appreciated 🙂 I'd go some lengths for \
avoiding a postgres/mariadb instance.
I suppose just whitelisting the "bayes_path" property in the user-settings would \
impose a trove of new problems?</pre> </blockquote>
<p>I don't know what you mean by whitelisting the property. The
reason for bayes_path "not parsing, administrator setting" seems
hardcoded in SpamAssassin. A dirty solution would be to change it
into a non-admin property, but it requires knowledge of SA
internals which can change any time, so here be dragons.<br>
</p>
<p>
<blockquote type="cite">root@e5ddc15080cb:~# cat
/etc/amavis/conf.d/50-user<br>
use strict;<br>
package Amavis::SpamControl::SpamAssassin::Coderdude {<br>
use base 'Amavis::SpamControl::SpamAssassin';<br>
sub new_SpamAssassin_instance {<br>
my $instance =
$_[0]->SUPER::new_SpamAssassin_instance(@_);<br>
$instance->{spamassassin_obj}{conf}{parser}{command_luts}{bayes_path}{is_admin}
= 0;<br>
$instance;<br>
}<br>
}<br>
$sa_debug = 'all';<br>
@spam_scanners = (['SpamAssassin',
'Amavis::SpamControl::SpamAssassin::Coderdude']);<br>
@sa_userconf_maps = ({<br>
'<a class="moz-txt-link-abbreviated" \
href="mailto:user1@example.com">user1@example.com</a>' => \
'/tmp/sa_user1/user.cf',<br>
'<a class="moz-txt-link-abbreviated" \
href="mailto:user2@example.com">user2@example.com</a>' => \
'/tmp/sa_user2/user.cf',<br> });<br>
1;<br>
<br>
root@e5ddc15080cb:~# cat /tmp/sa_user1/user.cf<br>
bayes_path /tmp/sa_user1/bayes<br>
root@e5ddc15080cb:~# cat /tmp/sa_user2/user.cf<br>
bayes_path /tmp/sa_user2/bayes<br>
<br>
root@e5ddc15080cb:~# amavisd debug 2>&1 | grep "SA dbg" |
grep "tie-ing to DB"<br>
[Testmail -> <a class="moz-txt-link-abbreviated" \
href="mailto:user1@example.com">user1@example.com</a>]<br>
... SA dbg: bayes: tie-ing to DB file R/O
/tmp/sa_user1/bayes_toks<br>
... SA dbg: bayes: tie-ing to DB file R/O
/tmp/sa_user1/bayes_seen<br>
... SA dbg: bayes: tie-ing to DB file R/W
/tmp/sa_user1/bayes_toks<br>
... SA dbg: bayes: tie-ing to DB file R/W
/tmp/sa_user1/bayes_seen<br>
[Mail -> <a class="moz-txt-link-abbreviated" \
href="mailto:user2@example.com">user2@example.com</a>]<br>
... SA dbg: bayes: tie-ing to DB file R/O
/tmp/sa_user2/bayes_toks<br>
... SA dbg: bayes: tie-ing to DB file R/O
/tmp/sa_user2/bayes_seen<br>
... SA dbg: bayes: tie-ing to DB file R/W
/tmp/sa_user2/bayes_toks<br>
... SA dbg: bayes: tie-ing to DB file R/W
/tmp/sa_user2/bayes_seen<br>
</blockquote>
</p>
</body>
</html>
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic