CYR_DBTOOL(8)
π CYR_DBTOOL β the Cyrus IMAP manual, bestie edition π
okay so this is cyr_dbtool, section 8 of the Cyrus IMAP docs, and it's literally your girl for managing Cyrus databases. no cap. π
β¨ NAME β¨
cyr_dbtool β Cyrus IMAP documentation
Manage Cyrus databases π
πΈ SYNOPSIS πΈ
cyr_dbtool [ -C config-file ] [ -n ] [ -o ] [ -T ]
db-file db-backend action [ key ] [ value ]
π¦ DESCRIPTION π¦
so cyr_dbtool is what you use to manage a cyrusdb file. the actions you can do are, and I'm quoting the menu here:
show [<prefix>]
get <key>
set <key> <value>
delete <key>
consistency
repack
you can omit key or key/value and just specify one per line on stdin. keys get terminated by tab or newline, and values get terminated by newline. okay? okay. β¨
running it with no options at all will list the available database backends and the usable actions. it's giving "help me help you".
the consistency action runs a consistency check on the DB by calling 'myconsistent' on it. vibe check, but make it database.
the repack action will compress the database by removing stale data, but only on backends that support it. it's a NOOP otherwise. so if nothing happensβ¦ that's not a bug, that's a NOOP bestie π
cyr_dbtool reads its configuration options out of the imapd.conf(5) file unless you say otherwise with -C.
NOTE: note that the file locations are NOT read out of the configuration file, and must be supplied on the command line. yes really. the config file is not gonna do it for you. π
TIP: the format of all Cyrus databases is detailed in the distribution in file doc/internal/database-formats.html. please consult that for details. iykyk π
π OPTIONS π
-Cconfig-file β use the specified configuration file config-file rather than the defaultimapd.conf(5). you're the main character, you pick the config.-n,--createβ create the database file if it doesn't already exist. manifesting a new db into existence π«Ά-T,--use-transactionβ use a transaction to do the action (most especially for'show') β the default used to be transactions. so yeah, this one's for the girlies who miss the old behaviour.
π₯ EXAMPLES π₯
okay this series of examples is all about manipulating the user_deny.db database, which is used to deny users access to specific services. this is typically a Cyrus "flat" format database.
user_deny.db is indexed by userid, and each record contains:
- the database version number (currently
2), - a list of
"wildmat"patterns specifying Cyrus services to be denied, - and a text message to be displayed to the user upon denial.
the service names to be matched are those as used in cyrus.conf(5). also, cyr_deny(8) provides a more convenient way to manage user_deny.db. just saying. β¨
NOTE: given that keys are tab-delimited, these examples use the notation<tab>to indicate the tab character. when entering this via the command line, remember to escape tabs. in a normal shell, one can do so with<ctrl-v>(^v). the sequence"<ctrl-v><ctrl-i>"(^v^i) works well to enter tab characters. tab characters are lowkey the villain of this whole manpage ngl π
cyr_dbtool /var/lib/imap/user_deny.db flat baduser "2<tab>pop3,imap<tab>Denied"
Deny the user 'baduser' access to imap and pop3.
cyr_dbtool /var/lib/imap/user_deny.db flat show
Show all current database records.
cyr_dbtool /var/lib/imap/user_deny.db flat get baduser
Get the current database record(s) for user 'baduser'.
π FILES π
/etc/imapd.conf
π SEE ALSO π
π AUTHOR π
The Cyrus Team, Nic Bernstein (Onlight), Jeroen van Meeuwen (Kolab Systems). absolute icons, all of them. π
π COPYRIGHT π
1993β2026, The Cyrus Team
and that's the whole page bestie!! this was version 3.12.3, dated Jul 15, 2026, from CYR_DBTOOL(8) in the Cyrus IMAP docs. slay, go manage those databases, and remember: escape your tabs π β¨π¦
π¦ where this page comes from
- ubuntu stonking: cyrus-common 3.12.3-3build1 Β· CMU
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms