Sun ONE logo     上一章     目录     索引     下一章     
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[:calendar]

其中,userid 是用户 ID,而 calendar 是日历名称。

日历 ID 大小写有别。例如,JSMITHjsmith 是不同的。(这点与电子邮件地址不同,电子邮件地址的大小写没有差别。例如,jsmith@sesta.com 等同于 JSMITH@SESTA.COM。)

calid 不能含有空格,但可以包含下列字符:

  • 字母 (a-z, A-Z) 和数字 (0-9) 字符

  • 特殊字符:句点 (.)、下划线 (_)、连字符或破折号 (-)、at 符号 (@)、单引号 (')、百分号 (%)、正斜线 (/) 或感叹号 (!)

以下是日历 ID 的一些示例:jsmithjsmith:new-caljsmith: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 是否已启用日历安排功能,请执行以下命令:

csuser check JSmith

如果 check 命令指出用户不在 LDAP 目录服务器中,则您必须为该用户创建目录服务器项。

配置新用户

csuser 公用程序可以在 LDAP 目录服务器中创建项并启用用户的日历安排功能。在当前版本中,建议您使用目录服务公用程序或自定义用户配置工具来配置用户 LDAP 属性。

例如,使用 ldapsearchldapmodify 公用程序。有关这些公用程序的信息,请参见以下 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 会自动创建一个默认日历,其 calidJSmith

    对于 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

其中:

  • -n Hobbies 指定日历的可视名称。

  • -o JSmith 指定主要所有者的用户 ID。

  • Personal 则用作日历 ID (calid) 的第二部分。例如:JSmith:Personal

以下示例会创建一个与先前示例类似的新日历,但此新日历会与 sports 类别相关联,并且启用了双重预约功能,还指定了 RJones 作为另一所有者:

cscal -n Hobbies -o JSmith -g sports -k yes -y RJones create Personal

其中:

  • -g sports 将日历与 sports 类别相关联。

  • -y RJones 指定日历的另一所有者。

  • -k yes 启用双重预约功能。

以下示例会创建一个与于先前示例类似的日历,但此日历还会为组日程安排设置特定的访问控制设置:

cscal -n Hobbies -o JSmith -a "@@o^a^sfr^g" create Personal

其中,-a "@@o^a^sfr^g" 授予其他所有者对该日历的组件和日历属性进行安排、空闲/已占用以及读访问的权限,以进行组日程安排。


管理 Calendar Server 用户

配置完用户后,请使用 csuser 公用程序执行以下管理任务:

显示用户信息

要列出所有的日历用户或显示指定用户的日历属性,请使用 csuser 公用程序的 list 命令。

例如,要显示所有已启用日历安排功能的用户,请执行以下命令:

csuser list

要显示单个用户(比如 JSmith)的所有日历属性,请执行以下命令:

csuser -v list JSmith

禁用和启用用户

要禁止用户登录到 Calendar Server,请使用 csuser 公用程序的 disable 命令。disable 命令会禁止用户访问日历数据,但并不会从目录服务器或 Calendar Server 数据库中删除该用户的信息。

例如,要禁止 JSmith 访问 Calendar Server,请执行以下命令::

csuser disable JSmith

此命令会禁止 JSmith 登录到 Calendar Server 访问日历数据,但不会从日历数据库中删除 JSmith 的数据。但如果 JSmith 当前已登录到 Calendar Server,则 JSmith 仍有权访问日历数据,直到他注销为止。

若要使用户能够访问 Calendar Server 并且还可以选择分配特定的配置设置(如默认日历),请使用 csuser 公用程序的 enable 命令。

例如,要使 JSmith 能够访问(登录到 Calendar Server)并为 JSmith 分配默认日历,请执行以下命令:

csuser jsmith enable JSmith

删除用户

要删除 Calendar Server 用户,请使用 csuser 公用程序的 delete 命令。



警告

csuser 公用程序的 delete 命令会从 LDAP 服务器中删除用户的所有 Calendar Server 信息。如果您已经备份了日历数据库,则可以还原 Calendar Server 数据库信息。有关更多信息,请参见第 6 章 “备份和还原 Calendar Server 数据”

不过,只有在您指定备份了 LDAP 服务器信息时才能加以还原。



例如,要从 Calendar Server 中删除 JSmith,请执行以下命令:

csuser delete JSmith

重置用户属性

要还原特定用户所有日历的 LDAP 属性默认设置,请使用 csuser 公用程序的 reset 命令。

例如,要将 JSmith 的所有日历属性重置为默认配置设置,请执行下列命令:

csuser reset JSmith



备注 重置了日历用户后,所有日历属性都将从用户的 LDAP 项中删除,包括 icsCalendarUser(object class)、icsSubscribedicsCalendarOwnedicsCalendaricsDWPHost(如果在 LDAP CLD 设置中)。Calendar Server 管理员将无法以该用户的名义创建日历。

在下列情况中,这些属性会在用户的 LDAP 项中还原:

  • 用户重新登录到 Calendar Server 时,或者

  • Calendar Server 管理员为用户发出 csuser enable 命令时(但是,在这种情况下不会还原 icsDWPHost 属性)。




管理用户日历

创建用户日历后,请使用 cscal 公用程序执行以下管理任务:

显示日历

要显示所有日历、用户拥有的所有日历或特定日历的属性,请使用 cscal 公用程序的 list 命令。

例如,要列出日历数据库中的所有日历,请执行以下命令:

cscal list

要列出 JSmith 拥有的所有日历,请执行以下命令:

cscal -o JSmith list

要列出日历 ID 为 JSmith:meetings 的日历的所有属性,请执行以下命令:

cscal -v list JSmith:meetings

删除日历

最终用户可以通过 Calendar Express 取消预订日历,但最终用户不能从 Calendar Server 数据库中删除日历。删除日历必须由具有系统管理权限的管理员来完成。

要从 Calendar Server 中删除一个或多个日历,请使用 cscal 公用程序的 delete 命令。此公用程序会删除日历,但不会从目录服务器中删除用户。



警告

delete 命令会从日历数据库中删除日历的所有信息;此操作无法撤消。除非您已备份日历数据,否则在删除日历后,您将无法加以还原。有关更多信息,请参见第 6 章 “备份和还原 Calendar Server 数据”



cscal 公用程序允许您删除一个或多个日历。

例如,要删除日历 ID 为 JSmith:meetings 的特定日历,请执行以下命令:

cscal delete JSmith:meetings

要删除主要所有者为 JSmith 的全部日历,请执行以下命令:

cscal -o JSmith delete

禁用和启用日历

要禁止用户访问日历,请使用 cscal 公用程序的 disable 命令。disable 命令可禁止用户访问日历,但不会从日历数据库中删除信息。

例如,要禁止用户访问 JSmith:meetings,请执行以下命令:

cscal disable JSmith:meetings

要启用日历以供用户访问,请使用 cscal 公用程序的 enable 命令。例如,要使用默认配置设置来启用日历 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

其中:

  • -a "@@o^c^wd^g" 会将AllAdmins 组件(事件和任务)的写入和删除权限授予所有者。

  • -y RJones 会将该用户 ID 指定为另一所有者。

从日历中删除属性

要从日历中删除属性值,请使用 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 项来还原日历:

  • icsCalendar:default_calid

  • icsSubscribed:default_calid

其中,default_calid 是用户的默认日历 ID (calid)。


创建和管理资源日历

资源日历与资源(如会议室)或设备(如笔记本电脑或高架投影仪)有关。

要创建和管理资源日历,请使用 csresource 公用程序。要运行 csresource 命令,请在运行 Calendar Server 的系统上使用具有管理员权限的用户身份登录。

本节介绍如何创建和管理资源日历,包括:

设置资源日历配置参数

表 2-1 列出了 ics.conf 文件中的资源日历配置参数。

表 2-1    ics.conf中的资源日历配置参数 

参数

说明

resource.default.acl  

此参数指定创建资源日历时使用的默认访问控制权限。此默认权限由以下访问控制列表 (ACL) 指定:

"@@o^a^r^g;@@o^c^wdeic^g;@^a^rsf^g"

此 ACL 会授予所有日历用户对日历(包括组件和属性)的读取、安排和空闲/已占用访问权限。

要更改资源的权限,请在使用 csresource 公用程序的 create 命令创建日历时请添加 -a 选项。  

resource.allow.doublebook  

此参数确定资源日历是否允许双重预约。双重预约允许资源日历在同一时间安排多个事件。

默认值为 "no"-不允许双重预定。

要允许资源日历的双重预约功能,请在使用 csresource 公用程序的 create 命令创建日历时添加 -k 选项。  

表 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 属性的列表,请执行以下命令:

csresource list

要显示名为 Auditorium 的特定资源日历的所有 LDAP 属性列表,请执行以下命令:

csresource -v list Auditorium

修改资源日历

要修改资源日历,请使用 cscal 公用程序的 modify 命令(csresource 没有 modify 命令)。

例如,要将所有者设置为 tchang,并向名为 Auditorium 的资源日历中添加另一个名为 mwong 的所有者,请执行以下命令:

cscal -o tchang -y mwong modify aud100

在此示例中,cscal 公用程序需要的是 calid (aud100),而不是日历的名称 (Auditorium)。

禁用和启用资源日历

您可能需要禁用资源日历以防止用户安排事件。例如,会议室在装潢期间可能无法使用,或者高架投影仪可能已故障送修。

要禁用或启用资源日历,请使用 csresource 公用程序的 enabledisable 命令。

例如,要禁用名为 Auditorium 的资源日历,请执行以下命令:

csresource disable Auditorium

之后要启用该资源日历,可执行以下命令:

csresource enable Auditorium

删除资源日历

要删除资源日历,请使用 csresource 公用程序的 delete 命令。

例如,要删除 Auditorium 资源日历,请执行以下命令:

csresource delete Auditorium

Calendar Server 会显示下列消息:

Do you really want to delete this resource (y/n)?

输入“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

例如,要链接到 jsmith 的默认日历,则输入:

http://calendar.sesta.com:8080/?calid=jsmith

若要链接到 calidoverhead_projector10 的高架投影仪的资源日历,则输入:

http://calendar.sesta.com:8080/?calid=overhead_projector10

不过,若要链接到 jsmithtchang 的默认日历并以日视图显示日历,则应输入:

http://calendar.sesta.com:8080/command.shtml?calid=jsmith;tchang&view=dayview


上一章     目录     索引     下一章     
版权所有 2002 Sun Microsystems, Inc. 全权所有。

更新日期 2002 年 8 月 30 日