Mailbox inaccessible after setaclmailbox with invalid identifier

Bron Gondwana brong at fastmailteam.com
Mon May 28 19:34:20 EDT 2018


https://github.com/cyrusimap/cyrus-imapd/issues/2378 to track the issue.
Sorry about the short comment earlier on my phone as I woke up - meant
to save it as a draft and add some detail!
# /usr/cyrus/bin/cyr_dbtool   
Usage: /usr/cyrus/bin/cyr_dbtool [-C altconfig] <db file> <db backend> <action> [<key>] [<value>]Usable Backends: flat, skiplist, quotalegacy, twoskip

Actions:
* show [<prefix>]
* get <key>
* set <key> <value>
* delete <key>
* dump - internal format dump
* consistent - check consistency
* repack - repack/checkpoint the DB (if supported)
* damage - start a commit then die during
* batch - read from stdin and execute commands
You may omit key or key/value and specify one per line on stdin
keys are terminated by tab or newline, values are terminated by newline
=====

<db file> will need to be your mailboxes.db (e.g. /var/imap/mailboxes.db
on many systems).  You'll have to run it as the cyrus user.  You can use
"show" to dump the whole file and grep for the individual mailbox, or
"get" on the mailbox key directly to get the one line.  Then "set" to
set it with a value with that group name removed.
You'll probably want to do another setacl on that mailbox with something
safe afterwards, just so the cyrus.header file gets cleaned up as well.
It contains a value which is a cache of the value in mailboxes.db.
Cheers,

Bron.


On Tue, May 29, 2018, at 07:55, Bron Gondwana wrote:
> If you use cyr_dbtool you can edit the offending line in mailboxes db.> 
> Clearly there's a bug here too, we should be sanitising group names!
> Or at least storing them in a reversible format> 
> 
> On Tue, May 29, 2018, at 00:33, Sven Schwedas wrote:
>> After running `setaclmailbox some/mailbox "group:name with
>> spaces" all`,>> all attempts to access the mailbox in any way either result in an
>> "Invalid identifier" error message, or can't even find the mailbox.
>> 
>> deleteaclmailbox with exactly the same parameters as set doesn't help>> (same "invalid identifier" error); cyrreconstruct doesn't even
>> find the>> mailbox. Deliveries are deferred as well.
>> 
>> Any ideas how I can recover the mailbox without rolling back
>> the whole>> server to an older backup?
>> 
>> (Cyrus 2.5.10 on Debian stretch, if that matters.)
>> 
>> --
>> Mit freundlichen Grüßen, / Best Regards,
>> Sven Schwedas, Systemadministrator
>>sven.schwedas at tao.at | ☎ +43 680 301 7167
>> TAO Digital   | Teil der TAO Beratungs- & Management GmbH
>> Lendplatz 45  | FN 213999f/Klagenfurt, FB-Gericht Villach
>> A8020 Graz    | https://www.tao-digital.at
>> 
>> ----
>> Cyrus Home Page: http://www.cyrusimap.org/
>> List Archives/Info: http://lists.andrew.cmu.edu/pipermail/info-cyrus/>> To Unsubscribe:
>> https://lists.andrew.cmu.edu/mailman/listinfo/info-cyrus
>> Email had 1 attachment:


>>  * signature.asc 1k (application/pgp-signature)> 
> --
>   Bron Gondwana, CEO, FastMail Pty Ltd
>   brong at fastmailteam.com
> 
> ----
> Cyrus Home Page: http://www.cyrusimap.org/
> List Archives/Info: http://lists.andrew.cmu.edu/pipermail/info-cyrus/> To Unsubscribe:
> https://lists.andrew.cmu.edu/mailman/listinfo/info-cyrus

--
  Bron Gondwana, CEO, FastMail Pty Ltd
  brong at fastmailteam.com


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.andrew.cmu.edu/pipermail/info-cyrus/attachments/20180529/4f67c4a0/attachment.html>


More information about the Info-cyrus mailing list