---
name: "cyradm"
section: "1"
platform: "linux"
package: "cyrus-admin"
version: "1.5.19-20+sarge1"
release: "Debian 3.1 (Sarge)"
platforms: ["linux"]
url: "https://new.carta.tech/cyradm"
---

# cyradm(1)

Cyrus administrative client

```

```

## NAME

cyradm - Cyrus administrative client

## SYNOPSIS

**cyradm -file** *script*\
 **cyradm** \[**-user** *user*\] \[**-protection** *prot*\] *host* \[*port*\]

```

```

## OPTIONS

- **-file** *script*

  Execute commands from *script*.

- **-user** *user*

  Log in to the server as *user*.

- **-u** *user*

  Short form of **-user** *user*.

- **-protection** *prot*

  Specify allowable protection mechanisms for the connection. *prot* is one or more of the letters **n** (no protection), **i** (integrity protection), or **p** (privacy protection). The best available protection mechanism is used. Default is **nip**, allowing any available protection mechanism.

- **-p** *prot*

  Short form of **-protection** *prot*.

## DESCRIPTION

**Cyradm** is a simple Tcl-based administrative client for the Cyrus IMAP server.  If invoked with a script, **cyradm** reads Tcl commands from the file *script* and evaluates them.

If invoked with *host*, **cyradm** runs in interactive mode, connecting to *host* on port *port*, authenticating, and then reading commands from the standard input and evaluating them. *Port* defaults to the standard IMAP port.  **Cyradm** runs until the **exit** command is invoked or until it reaches end-of-file on its standard input.  If the file **.cyradmrc**  is in the home directory of the user, **cyradm** evaluates the file as a Tcl script just before reading the first command from standard input, after connecting and authenticating to *server*.

## INTERACTIVE COMMANDS

The following commands are available only in interactive mode. In all commands, a *mailbox* or *root* of \`\`.'' specifies the same mailbox used previously in that connection.

- **createmailbox** *mailbox* \[*partition*\]

  The **createmailbox** (or **cm**) command creates a new mailbox named *mailbox*.  The optional *partition* argument specifies the partition name on which to create the mailbox.

- **deletemailbox** *mailbox*

  The **deletemailbox** (or **dm**) command deletes the named mailbox.

-

  Since administrators don't have implicit delete rights on all mailboxes, they may need to use **setaclmailbox**  to give themselves delete rights before trying to delete a mailbox.

- **renamemailbox** *mailbox newmailbox* \[*partition*\]

  The **renamemailbox** (or **renm**) command renames the named mailbox to *newmailbox*.  The optional *partition* argument specifies the partition name on which to move the mailbox.

- **listmailbox \[***-subscribed*\] \[*pattern*\] \[*reference*\]

  The **listmailbox** (or **lm**) command returns a list of mailbox names matching the string *pattern*.  If *pattern* is omitted, it defaults to \`\`\*''.  The optional *reference* argument specifies the reference name relative to which *pattern* is then interpreted.

-

  Two wildcard characters are defined in *pattern*.  The \`\`\*'' wildcard matches zero or more characters.  The \`\`%'' wildcard is like the \`\`\*'' wildcard except that it will not match the hierarchy separator, \`\`.''.  For example, if \`\`listmailbox user.foo.%'' is specified, and the mailboxes \`\`user.foo.bar'' and \`\`user.foo.bar.old'' both exist, then \`\`user.foo.bar'' is listed, but \`\`user.foo.bar.old'' is not.

-

  In some cases, where \`\`%'' is used as the last character of a pattern, non-mailbox names are listed in parentheses.  This indicates that the name is not actually a mailbox, yet there are sub-mailboxes underneath that name.  For example, if \`\`listmailbox user.foo.%'' is specified, and the mailbox \`\`user.foo.bar.old'' exists, but \`\`user.foo.bar'' does **not** exist, then \`\`(user.foo.bar)'' is listed.

- **setaclmailbox** *mailbox identifier rights* \[*identifier rights*\]...

  The **setaclmailbox** (or **sam**) command modifies the access control list of the mailbox *mailbox*.  One or more *identifier*-*rights* pairs may be given after *mailbox*, each sets the ACL for *identifier* to *rights*.

-

  *Rights* may be a set of access right letters:

  - **l**

    lookup (mailbox is visible to LIST/LSUB/UNSEEN commands)

  - **r**

    read (SELECT the mailbox, perform CHECK, FETCH, PARTIAL, SEARCH, COPY from mailbox)

  - **s**

    keep seen/unseen information across sessions (STORE \\SEEN flag)

  - **w**

    write (STORE flags other than \\SEEN and \\DELETED)

  - **i**

    insert (perform APPEND, COPY into mailbox)

  - **p**

    post (send mail to submission address for mailbox)

  - **c**

    create (CREATE new sub-mailboxes in any implementation-defined hierarchy)

  - **d**

    delete (STORE \\DELETED flag, perform EXPUNGE)

  - **a**

    administer (perform SETACL)

  or one of the following words:

  - **none**

    ""

  - **read**

    lrs

  - **post**

    lrsp

  - **append**

    lrsip

  - **write**

    lrswipcd

  - **all**

    lrswipcda

- **deleteaclmailbox** *mailbox identifier* \[*identifier*\]...

  The **deleteaclmailbox** (or **dam**) command modifies the access control list of *mailbox*.  One or more *identifier*s may be specified, each *identifier* has its access control entry removed.

- **listaclmailbox** *mailbox*

  The **listaclmailbox** (or **lam**) command returns a string containing the access control list of the mailbox *mailbox*.

- **setquota** *root quota*...

  The **setquota** (or **sq**) command sets the limit on the quota root *root* to *quota*.  The *quota* is one of the following:

  - \-

    A single numeric value, limiting the use of storage to that value

  - \-

    A list of one or more *resource*-*value* pairs, limiting the use of each given *resource* to the given numeric *value*. The Cyrus server does not support resources other than storage.

  - \-

    **none**, specifying no limits whatsoever

- **listquota** *root*

  The **listquota** (or **lq**) command returns a string listing the quotas on the quota root *root*.

- **listquotaroot** *mailbox*

  The **listquotaroot** (or **lqr** or **lqm**) command returns a string listing the quota roots and quotas on the mailbox *mailbox*.

- **quit**

  Same as the Tcl command **exit**.  Close the connection and exit **cyradm**.

## COMMANDS FOR TCL SCRIPTS

**Cyradm** adds one command to the standard Tcl command set.

- **cyradm connect** *connection* \[*host*\] \[*port*\]

  The **cyradm connect** command opens a connection to *host* and creates a new Tcl command *connection* that may be used to invoke various operations on the connection.  *Host* defaults to *connection* and *port* defaults to the standard IMAP port.

-

  The **cyradm connect** command returns its *connection* argument.

- *connection* **servername**

  Returns the name of the host that *connection* is connected to.

- *connection* **authenticate** \[*switches***\]**

  Authenticates the connection.  Switches are:

  - **-user** *user*

    Log in to the server as *user*.

  - **-pwcommand** *script*

    Attempt a plaintext password login if strong authentication fails. The argument is a Tcl script which is executed to obtain the login information--the script must return a list with two elements, the username and the password.  Before executing the script, the authenticate command will replace %-sequences as follows:

    - %%

      replaced with a single %

    - %h

      replaced with the hostname of the server

    - %u

      replaced with the value of the **-user** switch, or the empty string if the **-user** switch was not given

  - **-protection** *prot*

    Specify allowable protection mechanisms for the connection. *prot* is one or more of the letters **n** (no protection), **i** (integrity protection), or **p** (privacy protection). The best available protection mechanism is used. Default is "**nip**", allowing any available protection mechanism. If \`\`no protection'' is not allowable, a plaintext password login will not be attempted, even if the **-pwcommand** switch is given.

- *connection* **createmailbox** *mailbox* \[*partition*\]

  Creates a mailbox on *connection*.  Arguments are the same as for the interactive version of the command.

- *connection* **deletemailbox** *mailbox*

  Delete a mailbox on *connection*.  Arguments are the same as for the interactive version of the command.

- *connection* **renamemailbox** *mailbox newmailbox* \[*partition*\]

  Renames a mailbox on *connection*.  Arguments are the same as for the interactive version of the command.

- *connection* **listmailbox \[***-subscribed*\] *pattern* \[*reference*\]

  Returns a list describing mailboxes on *connection* matching *pattern*.  The optional *reference* argument specifies the reference name relative to which *pattern* is then interpreted.

-

  The **-subscribed** switch limits the returned mailboxes to those to which the user has subscribed.

-

  The returned value contains a list with one entry for each matching mailbox.  Each entry is a list containing three elements, the name, a list of mailbox attributes, and the hierarchy delimiter.  If there is no hierarchy delimiter, the third element is the empty string.

- *connection* **setaclmailbox** *mailbox identifier rights* \[...\]

  Modifies an access control list on *connection*.  Arguments are the same as for the interactive version of the command.

- *connection* **deleteaclmailbox** *mailbox identifier* \[...\]

  Modifies an access control list on *connection*.  Arguments are the same as for the interactive version of the command.

- *connection* **listaclmailbox** *mailbox*

  Returns a list containing the access control list of the mailbox *mailbox* on *connection*.  The returned list contains alternating *identifier right* pairs.

- *connection* **setquota** *root* \[*resource limit*\]...

  Sets the limit on the quota root *root* on *connection*.  Zero or more *resource limit* pairs may be specified, specifying the limit for each resource.

- *connection* **listquota** *root*

  Returns a list containing the quotas of the quota root *root* on *connection*.  The returned list contains zero or more *resource* *usage limit* triplets.

- *connection* **listquotaroot** *mailbox*

  Returns a list containing the quota roots and quotas on the mailbox *mailbox* on *connection*.  The returned list contains zero or more sublists; each sublist contains the name of a quota root followed by zero or more *resource usage limit* triplets.
