分类: LINUX
2011-07-22 15:08:05
cyrus-imapd服务的实现
1.cyrus-imapd服务的安装
Red Hat Enterprise Linux安装程序默认没有安装cyrus-imapd服务。可使用下面的命令检查系统是否已经安装了cyrus-imapd服务。
rpm -qa | grep cyrus-imapd |
该命令的执行情况如图9-19所示。
图9-19 检查系统是否已经安装了cyrus-imapd服务
从图9-19中可见,系统当前还没有安装cyrus-imapd服务。可将Red Hat Enterprise Linux 5的第2和第3张安装光盘放入光驱,加载光驱后在光盘的Server目录下找到以下与cyrus-imapd服务相关的RPM包文件:
cyrus-imapd-perl-2.3.7-1.1.el5.i386.rpm
cyrus-imapd-utils-2.3.7-1.1.el5.i386.rpm
db4-utils-4.3.29-9.fc6.i386.rpm
lm_sensors-2.10.0-3.1.i386.rpm
cyrus-imapd-2.3.7-1.1.el5.i386.rpm
cyrus-imapd-devel-2.3.7-1.1.el5.i386.rpm
然后,可使用rpm -ivh命令分别进行安装。例如,要安装cyrus-imapd服务包,可使用下面的命令:
rpm -ivh /mnt/Server/cyrus-imapd-2.3.7-1.1.el5.i386.rpm |
命令执行后,如果出现如图9-20所示的结果,则表示cyrus-imapd服务安装成功。
图9-20 安装cyrus-imapd服务
2.cyrus-imapd服务的基本配置
cyrus-imapd服务的配置文件有以下3个。
/etc/sysconfig/cyrus-imapd:用于启动cyrus-imapd服务的配置文件。
/etc/cyrus.conf:是cyrus-imapd服务的主要配置文件,其中包含该服务中各个组件(IMAP、POP3、sieve和NNTP等)的设置参数。
/etc/imapd.conf:是cyrus-imapd服务中的IMAP服务的配置文件。
默认情况下,这些配置文件已经基本设置好,只要启动cyrus-imapd服务,就可以同时提供POP和IMAP服务。但是,由于Postfix默认并不支持Cyrus-IMAP信箱,因此为了使Postfix与cyrus-imapd整合在一起,必须在Postfix的主配置文件/etc/postfix/main.cf中加入以下内容。
mailbox_transport = lmtp:unix:/var/lib/imap/socket/lmtp |
3.启动cyrus-imapd服务并设置自动运行
默认情况下,利用RPM包文件安装cyrus-imapd服务后,该服务是被停用的,所以用户必须手动启动它。如果需要开机自动运行,也必须手动启用。使用下面的命令可启动cyrus-imapd服务并设置其开机时自动运行。
service cyrus-imapd start chkconfig cyrus-imapd on |
命令的执行情况如图9-21所示。
图9-21 启动cyrus-imapd服务并设置自动运行
小心:如果已经安装了dovecot服务,则应该先关掉dovecot服务及开机时自启动,或者将dovecot服务卸载掉,然后启动cyrus-imapd服务并设置其开机时自启动。
4.用户邮件信箱的管理
Cyrus-IMAP的一个优点就是它可以为每个用户创建一个邮件信箱,而且这种信箱可具有层次结构。默认情况下,Cyrus-IMAP的邮件信箱位于/var/spool/imap目录下。创建邮件信箱时,为每一个邮件信箱命名的格式为:
信箱类型.名称[.文件夹名称[.文件夹名称]]… |
例如,用户lbt的主要邮件信箱(即收件箱)的命名为user.lbt,其中关键字user表示信箱类型为用户信箱,lbt是Linux系统中的用户账户名。如果需要为用户lbt创建发件箱、垃圾箱和草稿箱,则可以分别用名称user.lbt.Sent(发件箱)、user.lbt.Trash(垃圾箱)和user.lbt.Drafts(草稿箱)。
值得注意的是,用户lbt的收件箱为user.lbt,用户lbt的其他所有文件夹都必须以user.lbt为基础来创建。
下面介绍创建和管理用户邮件信箱的具体方法。
(1)为Cyrus-IMAP管理员账户cyrus设置密码
passwd cyrus |
该命令的执行情况如图9-22所示。
Cyrus-IMAP管理员账户cyrus是安装cyrus-imapd服务时自动创建的。在第一次为用户创建邮件信箱前,必须为该账户设置一个密码,供以后管理用户信箱时验证用户身份。
(2)使用cyradm管理工具为用户创建邮件信箱
/usr/bin/cyradm -u cyrus localhost |
命令中必须用参数-u指定运行该管理工具的用户账户,通常为管理员账户cyrus。命令执行时,会提示输入用户密码,确认无误后就可以进入管理命令行状态。
RHEL5> |
然后使用下面的命令就可为用户lbt创建一个邮件信箱。
createmailbox user.lbt |
为用户创建邮件信箱后,可以使用listmailbox命令列出Cyrus-IAMP系统中已有的用户邮件信箱,上述命令的执行情况如图9-23所示。
图9-23 为用户创建信箱
(3)在用户邮件信箱下添加其他文件夹
在cyradm管理命令行状态下,可以使用下面的命令为用户lbt在其邮件信箱下创建发件箱、垃圾箱和草稿箱等其他文件夹。
createmailbox user.lbt.Send createmailbox user.lbt.Trash createmailbox user.lbt.Drafts |
命令执行情况如图9-24所示。
图9-24 在用户信箱下建立其他文件夹
(4)为用户邮件信箱设置配额
为用户信箱设置配额,可以限制用户信箱使用磁盘空间的容量。例如,在cyradm管理命令行状态下,如果要为用户lbt的信箱user.lbt设置5MB的配额,可使用下面的命令。
setquota user.lbt 5210 |
其中,5120的单位为kB,设置后可用listquota命令查看该邮件信箱的使用情况。上述命令的执行情况如图9-25所示。
图9-25 为用户建立信箱配额
此外,在Linux系统提示符状态下,还可以用下面的命令查看用户邮箱的使用情况。
su -l cyrus -c /usr/lib/cyrus-imapd/quota |
命令的执行情况如图9-26所示。
图9-26 查看用户信箱的使用情况
(5)为用户邮件信箱设置权限
默认情况下,当Cyrus-IMAP管理员为用户创建了一个邮件信箱时,只有该用户对该邮件信箱具有完全控制的权限。在Cyrus-IMAP中,要为用户信箱设置访问权限,通常可采用表9-1所示的6种缩写形式。
表9-1 Cyrus-IMAP中设置用户信箱权限的6种缩写形式
权 限 缩 写 | 描 述 |
none | 无任何权限 |
read | 允许读取信箱的内容 |
post | 允许读取和向信箱中张贴信息(如发邮件) |
append | 允许读取和向信箱中张贴与插入信息 |
write | 除具有append权限外,还具有在信箱中删除邮件的权限,但不具有变更信箱的权限 |
all | 具有所有权限 |
例如,如图9-27所示,在创建了用户信箱user.lbt后,想直接用deletemailbox命令来删除该邮箱,即使是管理员cyrus也无权(Permission denied)。要想删除它,必须先用下面的命令为管理员cyrus自己授予完全控制的权限(all)。
setacl user.lbt cyrus all |
然后,可用listacl命令查看用户对该信箱所拥有的访问权限。从图9-27中可见,用户lbt和管理员cyrus都具有所有权限,即lrswipcda(实际上信箱的访问权限是由l、r、s、w、i、p、c、d和a共9种权限组合而成的)。
图9-27 设置使用信箱的权限
当用户cyrus取得了对信箱user.lbt的所有权限后,就可以用deletemailbox命令来删除该邮箱了。
最后还需要说明的是,在cyradm管理命令行状态下,由于各条管理命令比较长,因此在实际使用时通常采用这些命令的缩写形式,如listmailbox可缩写为lm。常用的cyradm管理命令及其缩写形式如表9-2所示。
表9-2 常用的cyradm管理命令及其缩写形式
命 令 | 缩 写 | 描 述 |
listmailbox | lm | 列出与给定字符串相匹配的所有邮件信箱的名称 |
createmailbox | cm | 创建一个新的邮件信箱 |
deletemailbox | dm | 删除一个邮件信箱及其下层的所有文件夹 |
renamemailbox | renm | 为邮件信箱更名 |
setaclmailbox | sam | 为邮件信箱设置用户的访问权限 |
deleteaclmailbox | dam | 删除用户访问邮件信箱的部分或全部权限 |
listaclmailbox | lam | 列出邮件信箱的访问权限列表 |
setquota | sq | 为邮件信箱设置配额 |
listquota | lq | 列出邮件信箱的配额 |