上一章 目录 索引 下一章 |
Sun ONE Calendar Server 管理员指南 |
第 2 章 管理 Calendar Server 用户和日历
本章介绍如何使用 Calendar Server 命令行公用程序来配置和管理用户和日历(包括用户日历和资源日历)。
要配置和管理 Calendar Server 用户和日历,请使用下列命令行公用程序:
csuser 公用程序可管理存储在 LDAP 目录服务器和日历数据库中的日历用户信息。
cscal 公用程序可管理日历数据库中的日历及其属性。
csresource 公用程序可管理存储在 LDAP 服务器和日历数据库中的资源(如会议室或设备)日历。 要运行命令行公用程序,请在运行 Calendar Server 的系统上使用具有管理员权限的用户身份登录。有关更多信息,请参见第 7 章 “Calendar Server 命令行公用程序”。
配置新的 Calendar Server 用户
本节提供以下有关配置新的 Calendar Server 用户的信息:
目录服务器要求
Calendar Server 要求将日历用户存储在目录服务器中。随后,Calendar Server 即可将目录服务器用于用户身份验证以及存储和检索用户首选项。
Calendar Server 的默认安装仅支持在 LDAP 目录(如 Netscape Directory Server)中定义的用户。如果用户已存储在 LDAP 目录中,您只需将目录服务器升级到 Netscape Directory Server 4.12(或更高版本)即可支持架构扩展,以允许用户访问 Calendar Server。
有关安装和配置 Netscape Directory Server 的信息,请参见:
http://docs.sun.com/db/prod/s1dirsrv
您也可以手动修改目录架构以允许用户访问 Calendar Server 数据。有关信息,请参见《Sun ONE Calendar Server 安装指南》。
日历标识符 (calid)
Calendar Server 数据库中的每个日历都通过唯一的日历标识符 (ID) 或 calid 来标识。calid 的格式为:
其中,userid 是用户 ID,而 calendar 是日历名称。
日历 ID 大小写有别。例如,JSMITH 与 jsmith 是不同的。(这点与电子邮件地址不同,电子邮件地址的大小写没有差别。例如,jsmith@sesta.com 等同于 JSMITH@SESTA.COM。)
字母 (a-z, A-Z) 和数字 (0-9) 字符
特殊字符:句点 (.)、下划线 (_)、连字符或破折号 (-)、at 符号 (@)、单引号 (')、百分号 (%)、正斜线 (/) 或感叹号 (!) 以下是日历 ID 的一些示例:jsmith、jsmith:new-cal 和 jsmith:private_calendar。
由于用户 ID 是 calid 的一部分,因此用户 ID 中不能含有空格(例如,j smith)。含有空格的用户 ID 仍可登录到 Calendar Server,但当该用户随后尝试创建事件或任务时,Calendar Server 会返回“请求错误”的错误消息。
Calendar 查找数据库 (CLD) 插件
如果日历数据库分布于多个后端服务器上(如图 1-5 中所示),则Calendar Server 会使用插件来确定实际存储日历的服务器。Calendar Server 可通过分布式连线协议 (DWP) 访问后端服务器上的日历数据。DWP 是一个内部协议,它会以 csdwpd 服务的形来运行,并为日历数据库提供联网功能。
Calendar Server 根据 ics.conf 文件中的 caldb.cld.type 参数值载入特定的插件:
local(默认值)指定将所有日历存储在运行 Calendar Server 的本地服务器上,并且不载入任何插件。
algorithmic 指定 CLD 算法插件,该插件使用 ics.conf 文件中的正则表达式来确定存储指定日历的服务器。此表达式使用以下参数指定:
caldb.cld.server.[hostname].regexpr = "expression"
其中,hostname 指定服务器的名称,expression 识别服务器上的日历。有关更多信息,请参见“配置日历查找数据库 (CLD) 插件”。
directory 指定 LDAP CLD 插件,该插件使用日历所有者的 icsDWPHost LDAP 属性来确定存储指定日历的服务器。 检查用户是否启用日历安排功能
要确定目录服务器中是否已存在特定的用户以及该用户是否能访问 Calendar Server 数据,请使用 csuser 公用程序的 check 命令。
例如,要检查 JSmith 是否已启用日历安排功能,请执行以下命令:
如果 check 命令指出用户不在 LDAP 目录服务器中,则您必须为该用户创建目录服务器项。
配置新用户
csuser 公用程序可以在 LDAP 目录服务器中创建项并启用用户的日历安排功能。在当前版本中,建议您使用目录服务公用程序或自定义用户配置工具来配置用户 LDAP 属性。
例如,使用 ldapsearch 和 ldapmodify 公用程序。有关这些公用程序的信息,请参见以下 Web 站点中的 iPlanet Directory Server 文档:
http://docs.sun.com/db/prod/s1dirsrv
如果用户已在 LDAP 目录中,可以通过手动或自动方式为该用户创建新日历:
手动-使用 cscal 公用程序的 create 命令为用户创建新日历。请参见“创建新日历”。
自动 -新用户第一次登录到 Calendar Server 时,Calendar Server 会自动为该用户创建新的默认日历。除非已有相同名称的日历存在,否则 Calendar Server 会使用该用户的 ID 作为新日历的 日历 ID (calid) 。
在当前版本中,当新用户第一次登录到 Calendar Server 时,Calendar Server 恒会为该用户创建默认日历,此功能是无法禁用的。
例如,如果 JSmith 第一次登录到 Calendar Server,则 Calendar Server 会自动创建一个默认日历,其 calid 为 JSmith。
对于 JSmith 后来创建的每一个日历的 calid,Calendar Server 也会指定前缀 JSmith。例如,如果 JSmith 后来创建一个名为 meetings 的新日历,则其 calid 将为 JSmith:meetings。
如果某个用户向另一个没有启用日历安排功能的用户(即该用户没有默认日历)发送请求,则Calendar Server 会向发出请求的用户返回“找不到日历”的错误消息。
创建新日历
要创建新日历,请使用 cscal 公用程序的 create 命令。目录服务器中必须已存在该用户(用户 ID)。
如果您的站点使用的是 LDAP 日历查找数据库 (CLD) 插件,则必须在放置(或将要放置)用户日历的同一后端服务器(由用户的 icsDWPHost LDAP 属性指明)上创建新日历。如果试图在其他后端服务器上创建日历,Calendar Server 将返回错误。有关 LDAP CLD 插件的信息,请参见“LDAP 日历查找数据库 (CLD) 插件”。
例如,要创建日历 ID (calid) 为 JSmith 的新日历,请执行以下命令:
cscal -o JSmith -n JohnSmithCalendar create JSmith
-o JSmith 指定新日历的主要所有者。
-n JohnSmithCalendar 指定新日历的可视名称。
默认的访问控制设置是由 ics.conf 文件中的 calstore.calendar.default.acl 所定义。 要创建可视名称为 Hobbies、由 JSmith 所有并对组日程安排使用默认访问控制设置的日历,请执行以下命令:
cscal -n Hobbies -o JSmith create Personal
以下示例会创建一个与先前示例类似的新日历,但此新日历会与 sports 类别相关联,并且启用了双重预约功能,还指定了 RJones 作为另一所有者:
cscal -n Hobbies -o JSmith -g sports -k yes -y RJones create Personal
以下示例会创建一个与于先前示例类似的日历,但此日历还会为组日程安排设置特定的访问控制设置:
cscal -n Hobbies -o JSmith -a "@@o^a^sfr^g" create Personal
其中,-a "@@o^a^sfr^g" 授予其他所有者对该日历的组件和日历属性进行安排、空闲/已占用以及读访问的权限,以进行组日程安排。
管理 Calendar Server 用户
配置完用户后,请使用 csuser 公用程序执行以下管理任务:
显示用户信息
要列出所有的日历用户或显示指定用户的日历属性,请使用 csuser 公用程序的 list 命令。
要显示单个用户(比如 JSmith)的所有日历属性,请执行以下命令: 禁用和启用用户
要禁止用户登录到 Calendar Server,请使用 csuser 公用程序的 disable 命令。disable 命令会禁止用户访问日历数据,但并不会从目录服务器或 Calendar Server 数据库中删除该用户的信息。
例如,要禁止 JSmith 访问 Calendar Server,请执行以下命令::
此命令会禁止 JSmith 登录到 Calendar Server 访问日历数据,但不会从日历数据库中删除 JSmith 的数据。但如果 JSmith 当前已登录到 Calendar Server,则 JSmith 仍有权访问日历数据,直到他注销为止。
若要使用户能够访问 Calendar Server 并且还可以选择分配特定的配置设置(如默认日历),请使用 csuser 公用程序的 enable 命令。
例如,要使 JSmith 能够访问(登录到 Calendar Server)并为 JSmith 分配默认日历,请执行以下命令: 删除用户
要删除 Calendar Server 用户,请使用 csuser 公用程序的 delete 命令。
csuser 公用程序的 delete 命令会从 LDAP 服务器中删除用户的所有 Calendar Server 信息。如果您已经备份了日历数据库,则可以还原 Calendar Server 数据库信息。有关更多信息,请参见第 6 章 “备份和还原 Calendar Server 数据”。
不过,只有在您指定备份了 LDAP 服务器信息时才能加以还原。
例如,要从 Calendar Server 中删除 JSmith,请执行以下命令: 重置用户属性
要还原特定用户所有日历的 LDAP 属性默认设置,请使用 csuser 公用程序的 reset 命令。
例如,要将 JSmith 的所有日历属性重置为默认配置设置,请执行下列命令:
备注 重置了日历用户后,所有日历属性都将从用户的 LDAP 项中删除,包括 icsCalendarUser(object class)、icsSubscribed、icsCalendarOwned、icsCalendar 和 icsDWPHost(如果在 LDAP CLD 设置中)。Calendar Server 管理员将无法以该用户的名义创建日历。
管理用户日历
创建用户日历后,请使用 cscal 公用程序执行以下管理任务:
显示日历
要显示所有日历、用户拥有的所有日历或特定日历的属性,请使用 cscal 公用程序的 list 命令。
要列出日历 ID 为 JSmith:meetings 的日历的所有属性,请执行以下命令: 删除日历
最终用户可以通过 Calendar Express 取消预订日历,但最终用户不能从 Calendar Server 数据库中删除日历。删除日历必须由具有系统管理权限的管理员来完成。
要从 Calendar Server 中删除一个或多个日历,请使用 cscal 公用程序的 delete 命令。此公用程序会删除日历,但不会从目录服务器中删除用户。
delete 命令会从日历数据库中删除日历的所有信息;此操作无法撤消。除非您已备份日历数据,否则在删除日历后,您将无法加以还原。有关更多信息,请参见第 6 章 “备份和还原 Calendar Server 数据”。
例如,要删除日历 ID 为 JSmith:meetings 的特定日历,请执行以下命令:
要删除主要所有者为 JSmith 的全部日历,请执行以下命令: 禁用和启用日历
要禁止用户访问日历,请使用 cscal 公用程序的 disable 命令。disable 命令可禁止用户访问日历,但不会从日历数据库中删除信息。
例如,要禁止用户访问 JSmith:meetings,请执行以下命令:
要启用日历以供用户访问,请使用 cscal 公用程序的 enable 命令。例如,要使用默认配置设置来启用日历 JSmith:meetings,请使用以下命令:
要启用日历 JSmith:meetings 但不允许双重预约,请使用以下命令:
cscal -k no enable JSmith:meetings
修改日历属性
要修改日历属性,请使用 cscal 公用程序的 modify 命令。
例如,要更改AllAdmins 的组日程安排访问控制设置,并将 RJones 指定为另一所有者,请执行以下命令:
cscal -a "@@o^c^wd^g" -y RJones AllAdmins
从日历中删除属性
要从日历中删除属性值,请使用 cscal 公用程序的 modify 命令,并以两个双引号 ("") 指定选项的值。
例如,要从 JSmith:meetings 删除说明,请执行以下命令:
cscal -d "" modify JSmith:meetings
从 JSmith:meetings 中删除所有类别,请执行以下命令:
cscal -g "" modify JSmith:meetings
从 JSmith:meetings 中删除“其他所有者”,请执行以下命令:
cscal -y "" modify JSmith:meetings 还原“丢失的”日历
如果用户的默认日历没有出现在 Calendar Express 的“视图”选项卡或“日历”选项卡,但仍然存在于数据库中,则您可以通过用以下属性更新用户的 LDAP 项来还原日历:
其中,default_calid 是用户的默认日历 ID (calid)。
创建和管理资源日历
资源日历与资源(如会议室)或设备(如笔记本电脑或高架投影仪)有关。
要创建和管理资源日历,请使用 csresource 公用程序。要运行 csresource 命令,请在运行 Calendar Server 的系统上使用具有管理员权限的用户身份登录。
设置资源日历配置参数
表 2-1 列出了 ics.conf 文件中的资源日历配置参数。
表 2-1 中显示的默认值会应用于新资源日历,但您可通过编辑 ics.conf 文件更改这些默认值。有关更多信息,请参见“编辑 ics.conf 配置文件”。
创建资源日历
Calendar Server 不会自动创建资源日历,因此您必须使用 csresource 公用程序的 create 命令,手动创建您所需的每个资源日历。此命令会在 LDAP 目录服务器和日历数据库中创建新日历的项。以下是创建日历时的几个注意事项:
默认情况下,Calendar Server 将不允许资源日历的双重预约功能(resource.allow.doublebook 参数)。此默认值可避免资源(如会议室和设备)的日程安排发生冲突。不过,如果您希望允许资源日历的双重预约功能,请在创建日历时请将 csresource -k 选项设置为 "yes"。
要控制有权安排特定资源的人,您可以对拥有资源日历写访问权限的用户加以限制。例如,您可能只想允许特定的用户安排会议室或预定设备。 例如,要创建日历 ID 为 aud100、可视名称为 Auditorium(LDAP cn 属性)以及默认设置如表 2-1中所示的资源日历,请执行以下命令:
csresource -c aud100 create Auditorium
下列命令所执行的操作与先前示例相同,但 -k 选项将允许在日历上进行双重预约,-o 选项将 bkamdar 指定为日历的所有者,而 -y 选项则将 jsmith 指定为另一个所有者:
csresource -c aud100 -k yes -o bkamdar -y jsmith create Auditorium
如果没有指定资源日历的所有者,则该值将取自 ics.conf 文件中的 service.admin.calmaster.userid 参数。
显示资源日历和属性
要显示资源日历,请使用 csresource 公用程序的 list 命令。
例如,要显示所有 Calendar Server 资源日历及其相应的 LDAP 属性的列表,请执行以下命令:
要显示名为 Auditorium 的特定资源日历的所有 LDAP 属性列表,请执行以下命令: 修改资源日历
要修改资源日历,请使用 cscal 公用程序的 modify 命令(csresource 没有 modify 命令)。
例如,要将所有者设置为 tchang,并向名为 Auditorium 的资源日历中添加另一个名为 mwong 的所有者,请执行以下命令:
cscal -o tchang -y mwong modify aud100
在此示例中,cscal 公用程序需要的是 calid (aud100),而不是日历的名称 (Auditorium)。
禁用和启用资源日历
您可能需要禁用资源日历以防止用户安排事件。例如,会议室在装潢期间可能无法使用,或者高架投影仪可能已故障送修。
要禁用或启用资源日历,请使用 csresource 公用程序的 enable 或 disable 命令。
例如,要禁用名为 Auditorium 的资源日历,请执行以下命令: 删除资源日历
要删除资源日历,请使用 csresource 公用程序的 delete 命令。
例如,要删除 Auditorium 资源日历,请执行以下命令:
Do you really want to delete this resource (y/n)?
如果输入“y”,则 Calendar Server 会删除日历并显示一条消息指出日历已删除。
链接到日历
只要用户日历或资源日历的权限设置为允许读访问,您就可以创建指向一个或多个这些日历的链接。例如,可以将日历链接嵌入网页或电子邮件中。这样,其他用户不必登录到 Calendar Server 就可以匿名查看日历。
http://hostname:port/[command.shtml]?calid=calid-1;calid-2;...;calid-n&view =viewname
视图名称 (viewname) 可以为总览,日视图,周视图或月视图。(视图也可以为年视图,但很少使用。)
备注:如果不使用 view(或其他)选项并且只链接到一个用户日历,则去掉 command.shtml。
http://calendar.sesta.com:8080/?calid=jsmith
若要链接到 calid 为 overhead_projector10 的高架投影仪的资源日历,则输入:
http://calendar.sesta.com:8080/?calid=overhead_projector10
不过,若要链接到 jsmith 和 tchang 的默认日历并以日视图显示日历,则应输入:
http://calendar.sesta.com:8080/command.shtml?calid=jsmith;tchang&view=dayview
上一章 目录 索引 下一章
版权所有 2002 Sun Microsystems, Inc. 全权所有。
更新日期 2002 年 8 月 30 日