Chinaunix首页 | 论坛 | 博客
  • 博客访问: 181458
  • 博文数量: 8
  • 博客积分: 210
  • 博客等级: 入伍新兵
  • 技术积分: 92
  • 用 户 组: 普通用户
  • 注册时间: 2010-09-26 16:01
文章分类

全部博文(8)

文章存档

2012年(1)

2011年(7)

我的朋友

分类: 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管理工具为用户创建邮件信箱

cyradm管理工具位于/usr/bin/目录中,使用下面的命令可运行该管理工具。

 
图9-22  为Cyrus-IMAP管理员设置密码

/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

列出邮件信箱的配额


阅读(8803) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~