Re: Mailbox inaccessible after setaclmailbox with invalid identifier

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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@xxxxxx | ☎ +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@xxxxxxxxxxxxxxxx

----
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@xxxxxxxxxxxxxxxx


----
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

[Index of Archives]     [Cyrus SASL]     [Squirrel Mail]     [Asterisk PBX]     [Video For Linux]     [Photo]     [Yosemite News]     [gtk]     [KDE]     [Gimp on Windows]     [Steve's Art]

  Powered by Linux