Sun Java System Calendar Server 管理指南 |
第 13 章
管理行事曆本章包含以下主題,說明如何使用 Calendar Server 指令行公用程式來佈建和管理行事曆:
行事曆管理簡介本小節包含以下主題:
行事曆類型
有兩種基本的行事曆類型。有關這兩種類型的資訊如下:
用於行事曆的模式 1 工具
在模式 1 模式中,有三種公用程式可供您使用:
用於行事曆的模式 2 工具
在模式 2 模式中,使用 cscal 建立和管理使用者行事曆和資源行事曆。
若要執行 cscal,您必須以對執行 Calendar Server 的系統具有管理權限的使用者身份登入。另請參閱附錄 D 「Calendar Server 指令行公用程式參照」中的非 commadmin 指令行公用程式參照。
建立行事曆唯一識別碼 (calid)Calendar Server 資料庫中的每個行事曆均由唯一行事曆識別碼 (ID) 或 calid 來識別。建立行事曆時,會要求您指定 calid。
本小節包含以下主題:
Calid 語法
資料庫中的每個行事曆均由唯一行事曆 ID (calid) 來識別。以下 calid 語法有三個部分:
userid[@domain][:calendar-name]
三個部分如下:
沒有託管網域時,網域部分為可選項,因為可以確定使用者所在的網域。
有託管網域時,如果未指定網域部分,Calendar Server 將使用 ics.conf 之參數 service.defaultdomain 中指定的值指定網域。如果使用者不在預設網域中,則必須指定網域部分。
如需有關託管網域 (亦稱為虛擬網域) 的更多資訊,請參閱第 5 章 「設定託管網域」和第 11 章 「管理網域」。
行事曆 ID 建立規則
建立 calid 時,請記住以下規則:
正確行事曆 ID 的範例為:
jsmith
jsmith:private_calendar
jsmith@calendar.sesta.com:new-cal將非託管 Calid 轉換為託管網域格式 Calid
如果您有在自己擁有託管網域之前建立的 calid,並且現在要將非託管網域 calid 轉換為託管網域 calid,公用程式 csvdmig 可用於將網域部分增加至您的現有 calid。請參閱 csvdmig,以取得有關如何使用該公用程式的說明。
自動佈建使用者行事曆自動佈建僅適用於使用者行事曆;資源行事曆必須明確地建立。
如果自動佈建已啟用,則不必明確地建立使用者行事曆。使用自動佈建功能可在使用者首次登入時建立預設行事曆。
Calendar Server 會從使用者 ID 為此新預設行事曆建立行事曆 ID (calid),除非以此為名稱的行事曆已存在。
例如,如果使用者 ID 為 jsmith 的 John Smith 首次登入 Calendar Server,Calendar Server 會自動建立預設行事曆,其 calid 為 jsmith。John Smith 建立的每個後續行事曆在行事曆名稱之前均具有包含 jsmith: 的 calid。例如,如果 John Smith 稍後建立名為 meetings 的新行事曆,則其新行事曆 (在非託管環境中) 的 calid 為 jsmith:meetings。
若要啟用自動佈建:
若要停用自動佈建:
行事曆存取控制Sun ONE Calendar Server 使用存取控制清單 (ACL) 決定行事曆、行事曆特性和行事曆元件 (例如事件及待辦事項 [工作]) 的存取控制。
本小節包含以下主題:
存取控制的配置參數
表格 13-1 說明 Calendar Server 用於存取控制的 ics.conf 檔案中的配置參數。如需更多資訊,請參閱附錄 A 「Calendar Server 配置參數」。
公開與私人事件和工作過濾器
建立新事件或工作時,使用者可指定該事件或工作是公開的、私人的,還是只有時間和日期 (機密的) 的事件或工作:
calstore.filterprivateevents 決定 Calendar Server 是否過濾 (辨識) 私人的以及只有時間和日期的 (機密的) 事件和工作。依預設,此參數設定為 "yes"。如果您將 calstore.filterprivateevents 設定為 "no",則 Calendar Server 會將私人的以及只有時間和日期的事件和工作視為公開的事件和工作。
存取控制的指令行公用程式
表格 13-2 說明 Calendar Server 指令行公用程式,它們允許您設定或修改存取控制的 ACL:
建立行事曆本小節包含以下主題:
使用 cscal 建立使用者行事曆
若要建立新行事曆,請使用 cscal 公用程式的 create 指令。使用者或資源項目必須已存在於 LDAP 目錄中。請參閱第 12 章 「管理使用者和資源」,以取得有關將使用者和資源增加至您的 LDAP 目錄的資訊。
如果您的站點使用的是 LDAP 行事曆查找資料庫 (CLD) Plug-in,您必須在同一後端伺服器上為特定使用者或資源建立所有的行事曆,如使用者或資源項目中的 icsDWPHost LDAP 屬性所指定。如果您嘗試在其他後端伺服器上建立行事曆,cscal 公用程式將傳回錯誤。如需有關 LDAP CLD Plug-in 的資訊,請參閱第 9 章 「配置行事曆查找資料庫 Plug-in」。
例如,建立行事曆 ID (calid) 為 jsmith 的新行事曆:
cscal -o jsmith -n JohnSmithCalendar create jsmith
其中:
建立可檢視名稱為 Hobbies 且由 John Smith 所有,並對群組排程使用預設存取控制設定的行事曆:
cscal -n Hobbies -o jsmith create Personal
其中:
以下範例會建立一個與上述範例類似的新行事曆,但該行事曆還會與名為 sports 的類別相關聯,該範例還啟用雙預定功能,並且指定 Ron Jones 為另一位所有者:
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" 授予其他所有者對該行事曆的元件和行事曆特性的排程、空閒/忙碌以及讀取等存取權限,以進行群組排程。
準備建立資源行事曆
資源行事曆與可排程的事項相關聯,例如,會議室、筆記型電腦、高射投影機和其他設備。資源行事曆需要存取控制清單。
ics.conf 檔案中的兩個配置參數適用於資源行事曆:
若要變更這些參數 (如表格 13-3 中所示) 的預設值,請編輯 ics.conf 檔案。對預設值的變更將僅適用於新的資源行事曆;不會變更現有資源的值。如果要變更現有資源行事曆的值,您需要使用 cscal 公用程式或 commadmin resource modify 指令。csresource 公用程式沒有 modify 指令。
如需更多資訊,請參閱附錄 A 「Calendar Server 配置參數」。
建立資源行事曆
Calendar Server 無法自動佈建資源行事曆。對於您的站點所需要的每個資源,您必須使用 csresource 公用程式的 create 指令手動佈建資源 LDAP 項目並在行事曆資料庫中建立其行事曆。以下是建立資源行事曆時的數條注意事項:
例如,建立行事曆 ID 為 aud100、可檢視名稱為 Auditorium (LDAP cn 屬性) 以及預設設定如表格 13-3 中所示的資源行事曆:
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 參數的值。
管理使用者行事曆建立使用者行事曆後,請使用 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 指令會從行事曆資料庫中移除行事曆的所有資訊,並且無法復原。刪除某個行事曆後,僅當您曾備份該行事曆資料時才可回復該資料。如需更多資訊,請參閱第 15 章 「備份與復原 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 modify 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)。
您可以使用 ldapmodify Directory Server 公用程式、csuser reset 指令或 commadmin user modify。對於模式 1,您可以使用 csattribute add 指令升級這些屬性。
管理資源行事曆顯示資源行事曆和屬性
若要顯示資源行事曆,請使用 csresource 公用程式的 list 指令。
例如,顯示所有 Calendar Server 資源行事曆及其相應 LDAP 屬性的清單:
csresource list
顯示名為 Auditorium 的特定資源行事曆的所有 LDAP 屬性清單:
csresource -v list Auditorium
修改資源行事曆
若要修改資源行事曆,請使用 cscal 公用程式的 modify 指令 (csresource 沒有 modify 指令)。
例如,將所有者設定為 tchang,並將另一位名為 mwong 的所有者增加至名為 Auditorium 的資源行事曆:
cscal -o tchang -y mwong modify aud100
在此範例中,cscal 公用程式需要 calid (aud100),而非行事曆名稱 (Auditorium)。
停用和啟用資源行事曆
您可能需要停用某個資源行事曆,以防止使用者排程事件。例如,某間會議室在改建期間可能無法使用,或者某台高射投影機可能已送去修理。
若要停用或啟用資源行事曆,請使用 csresource 公用程式的 enable 或 disable 指令。
例如,停用名為 Auditorium 的資源行事曆:
csresource disable Auditorium
稍後啟用該資源行事曆:
csresource enable Auditorium
刪除資源行事曆
若要刪除資源行事曆,請使用 csresource 公用程式的 delete 指令。
例如,刪除 Auditorium 資源行事曆:
csresource delete Auditorium
Calendar Server 會顯示以下訊息:
您確實要刪除該資源嗎 (y/n)?
輸入「y」可刪除該行事曆,輸入「n」可取消該作業。
如果輸入「y」,則 Calendar Server 會刪除該行事曆並顯示一條訊息,指明該行事曆已被刪除。
連結至行事曆只要使用者行事曆或資源行事曆的許可權被設定為允許使用讀取權,您便可以建立指向一個或多個使用者行事曆或資源行事曆的連結。例如,您可以將行事曆連結嵌入網頁或電子郵件訊息中。這樣,其他使用者無需登入 Calendar Server,即可匿名檢視該行事曆。
若要建立指向一個或多個使用者行事曆的連結,請使用以下語法:
http://hostname:port/[command.shtml]?calid=calid-1;calid-2; ... ;calid-n&view=viewname
用分號 (;) 分隔各行事曆 ID (calid)。
viewname 可以為 overview、dayview、weekview 或 monthview。(檢視還可以為 yearview,但是很少使用。)
注意:如果您不使用 view (或其他) 選項,且僅連結至一個行事曆,請省略 command.shtml。
例如,若要連結至 jsmith 的預設行事曆,請輸入:
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
匯入和匯出行事曆資料若要匯出行事曆資料至檔案及從檔案中匯入行事曆資料,請分別使用 csexport 和 csimport 公用程式。行事曆資料可以是 iCalendar (.ics) 或 XML (.xml) 格式。
您必須在安裝 Calendar Server 的機器上本機執行 csexport 和 csimport。Calendar Server 可以執行,也可以停止。
匯出行事曆資料
若要將行事曆資料匯出至檔案,請使用 csexport。您為輸出檔案指定的檔案副檔名 (.ics 或 .xml) 決定使用何種格式。
例如,若要以 iCalendar (text/calendar MIME) 格式將行事曆 ID (calid) 為 jsmithcal 的行事曆匯出至名為 jsmith.ics 的檔案:
csexport -c jsmithcal calendar jsmith.ics
若要以 XML (text/xml MIME) 格式將行事曆 jsmithcal 匯出至名為 jsmith.xml 的檔案:
csexport -c jsmithcal calendar jsmith.xml
匯入行事曆資料
若要從先前使用 csexport 公用程式儲存的檔案匯入行事曆資料,請使用 csimport。匯入檔案的檔案副檔名 (.ics 或 .xml) 指明該檔案的儲存格式。
例如,若要從以 iCalendar (text/calendar MIME) 格式儲存的檔案 jsmith.ics 匯入行事曆資料至行事曆 ID (calid) jsmithcal:
csimport -c jsmithcal calendar jsmith.ics
若要從以 XML (text/xml MIME) 格式儲存的名為 jsmith.xml 的檔案將資料匯入至行事曆 jsmithcal:
csimport -c jsmithcal calendar jsmith.xml
如果指定的行事曆 ID (calid) 已經存在,將在匯入新資料之前清除它的資料。