sieve-filter ignores -u argument

Андрей Куницын abyss at fox5.ru
Thu Jan 27 04:20:58 UTC 2022


I have found the problem

auth debug helped me

sieve-filter -u test

```
Jan 27 03:38:03 mail dovecot: auth: Debug: master in:
USER#0111#011test#011service=sieve-filter
Jan 27 03:38:03 mail dovecot: auth: Debug: ldap(test at domain.tld):
Performing userdb lookup
Jan 27 03:38:03 mail dovecot: auth: Debug: ldap(test at domain.tld): user
search: base=o=domains,dc=mail,dc=domain,dc=tld scope=subtree
filter=(&(objectClass=mailUser)(accountStatus=active)(!(domainStatus=disabled))(enabledService=mail)(enabledService=sieve-filter)(|(mail=test at domain.tld
)(&(enabledService=shadowaddress)(shadowAddress=test at domain.tld))))
fields=mail,mail,homeDirectory,mailboxFormat,mailboxFolder,mailQuota
Jan 27 03:38:03 mail dovecot: auth: Debug: ldap(test at domain.tld): no fields
returned by the server
Jan 27 03:38:03 mail dovecot: auth: ldap(test at domain.tld): unknown user
Jan 27 03:38:03 mail dovecot: auth: Debug: ldap(test at domain.tld): Finished
userdb lookup
Jan 27 03:38:03 mail dovecot: auth: Debug: userdb out: NOTFOUND#0111
```

doveadm user test

```
Jan 27 03:38:08 mail dovecot: auth: Debug: master in:
USER#0111#011test#011service=doveadm#011debug
Jan 27 03:38:08 mail dovecot: auth: Debug: ldap(test at domain.tld):
Performing userdb lookup
Jan 27 03:38:08 mail dovecot: auth: Debug: ldap(test at domain.tld): user
search: base=o=domains,dc=mail,dc=domain,dc=tld scope=subtree
filter=(&(objectClass=mailUser)(accountStatus=active)(!(domainStatus=disabled))(enabledService=mail)(enabledService=doveadm)(|(mail=test at domain.tld
)(&(enabledService=shadowaddress)(shadowAddress=test at domain.tld))))
fields=mail,mail,homeDirectory,mailboxFormat,mailboxFolder,mailQuota
Jan 27 03:38:08 mail dovecot: auth: Debug: ldap(test at domain.tld): result:
mail=test at domain.tld
homeDirectory=/var/vmail/vmail1/domain.tld/t/r/a/test-2022.01.21.10.09.47/
mailQuota=1073741824 mailboxFolder=sdbox mailboxFormat=sdbox;
mailboxFormat,homeDirectory,mailQuota,mail,mailboxFolder unused
Jan 27 03:38:08 mail dovecot: auth: Debug: ldap(test at domain.tld): Finished
userdb lookup
Jan 27 03:38:08 mail dovecot: auth: Debug: userdb out:
USER#0111#011test at domain.tld#011master_user=test at domain.tld
#011home=/var/vmail/vmail1/domain.tld/t/r/a/test-2022.01.21.10.09.47/#011mail=sdbox:~/sdbox/#011quota_rule=*:bytes=1073741824
```

`(enabledService=sieve-filter)` is absent for users by default



вт, 25 янв. 2022 г. в 20:21, Андрей Куницын <abyss at fox5.ru>:

> Hm, looks like I misunderstood initial error sieve-filter(root): Fatal:
> Unknown user
> filter-sieve do not understand -u postmater at domain.tld
> Where (root) is about who runs the command, not who is not found
>
> Anyway I've tried
>
> # cd
> /var/vmail/vmail1/domain.tld/t/e/s/test-2022.01.22.05.55.26/sdbox/mailboxes/
> #sieve-filter -c /etc/dovecot/dovecot.conf -v
> /var/vmail/sieve/dovecot.sieve INBOX
> sieve-filter(root): Error: stat(/root/Maildir/tmp) failed: Permission
> denied (euid=2000(vmail) egid=2000(vmail) missing +x perm: /root, dir owned
> by 0:0 mode=0700)
> sieve-filter(root): Fatal: Couldn't open source mailbox 'INBOX': Internal
> error occurred. Refer to server log for more information. [2022-01-25
> 14:46:35]
>
> sudo -u vmail sieve-filter -c /etc/dovecot/dovecot.conf -v
> /var/vmail/sieve/dovecot.sieve INBOX
>
> sieve-filter(vmail): Info: Mailbox created: INBOX
>
> /home/vmail/Maildir was created after that and  not in the current
> directory
>
> I've tried  '-u test', '-u test at domain.tld', '-u test at mail.domain.tld' and
> passed config  '-c /etc/dovecot/dovecot.conf.'
> And still got
> Fatal: Unknown user
>
> How do sieve-filters understand virtual users?
>
> вт, 25 янв. 2022 г. в 18:31, Eric Wood <eric at interplas.com>:
>
>> I read the sieve-filter man page so I'll speculate.   Granted, I still
>> don't fully understand how sieve and virtual users work as I have never set
>> this up.
>>
>> "postmaster" is an alias of root and "vmail" is probably just a directory
>> name.   So, from the root's command prompt, the environment variables
>> probably aren't totally set up for sieve-filter to understand virtual users.
>>
>> So, working from the command prompt, you probably have to explicitly
>> specify the .sieve path and leave off the -u argument
>>
>> # cd /location_of_virtual_user_INBOX
>> # sieve-filter -v /opt/some_global_rules/sieve/managesieve.sieve INBOX
>>
>> Would is be great if seive-filter had an argument to understand the
>> system's virual user's settings?  Of course.  I don't know why the
>> developer haven't included it.
>>
>> -Eric
>>
>> On 1/24/2022 7:59 AM, Андрей Куницын wrote:
>>
>> Hello
>> I try to test my sieve script, but found out that it is impossible to use
>> a sieve-filter tool with virtual mail users. It always uses a real user
>> name instead of passed via -u argument.
>>
>>
>> # sieve-filter -v -u postmaster at domain.tld ~/sieve/managesieve.sieve
>> INBOX
>> sieve-filter(root): Fatal: Unknown user
>>
>> sudo -u vmail sieve-filter -u postmaster at domain.tld
>> ~/sieve/managesieve.sieve INBOX
>> sieve-filter(vmail): Fatal: Unknown user
>>
>> Also there is the same question on serverfault, but without an answer.
>>
>> https://serverfault.com/questions/1055407/how-to-make-sieve-filter-use-virtual-users
>>
>> My environment is Ubuntu 20.04
>> dovecot --version
>> 2.3.7.2 (3c910f64b)
>>
>> --
>> Sincerely, Andrey Kunitsyn
>>
>>
>>
>
> --
> С уважением, Куницын Андрей.
>


-- 
С уважением, Куницын Андрей.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://dovecot.org/pipermail/dovecot/attachments/20220127/255fbb5c/attachment.htm>


More information about the dovecot mailing list