Sun Java System Calendar Server 管理ガイド |
第 13 章
カレンダーの管理この章で説明する内容は次のとおりです。カレンダーのプロビジョニングや管理を行うための Calendar Server コマンド行ユーティリティの使用方法を説明します。
カレンダー管理の概要ここで説明する内容は次のとおりです。
カレンダーのタイプ
カレンダーには 2 つの基本タイプがあります。2 つのタイプについて、以下に説明します。
カレンダー用の Schema 1 ツール
Schema 1 モードのときに使用するユーティリティは以下の 3 つです。
カレンダー用の Schema 2 ツール
Schema 2 モードの場合は、cscal を使用して、ユーザーカレンダーとリソースカレンダーの両方を作成し、管理します。
cscal を実行するには、Calendar Server が稼動しているシステムの管理者権限を持つユーザーとしてログインする必要があります。commadmin 以外のコマンド行ユーティリティについては、付録 D 「Calendar Server のコマンド行ユーティリティのリファレンス」を参照してください。
カレンダーの一意の識別子 (calid) の作成Calendar Server データベース内の各カレンダーは、一意のカレンダー識別子 (ID) または calid によって識別されます。カレンダーを作成するとき、calid を指定する必要があります。
ここで説明する内容は次のとおりです。
Calid 構文
データベース内の各カレンダーは、一意のカレンダー ID (calid) によって識別されます。次のcalid 構文には、指定する項目が 3 つあります。
userid[@domain][:calendar-name]
指定する 3 つの項目は次のとおりです。
ホストされたドメインがない場合、ユーザーが属しているドメインには曖昧さがないため、ドメインの部分は省略可能です。
ホストされたドメインがあり、ドメインの部分が指定されていない場合は、Calendar Server では ics.conf の service.defaultdomain で指定された値をドメインに使用します。ユーザーがデフォルトのドメインに属していない場合は、ドメイン部分を指定する必要があります。
ホストされたドメイン (仮想ドメインとも言う) の詳細については、第 5 章「ホストされたドメインの設定」と第 11 章「ドメインの管理」を参照してください。
- calendar-name : このユーザーにとって一意となるカレンダーの名前で、省略可能です。所有者のデフォルトカレンダーは 1 つだけですが、さまざまな目的の他のカレンダーを所有することが可能です。このようなデフォルト以外の各カレンダーは、カレンダー名によって識別されます。たとえば、ユーザー John Doe の uid が jdoe である場合、そのデフォルトカレンダーは jdoe@sesta.com になります。たとえば、リトルリーグチームのコーチが試合の記録をとるために使用する補助カレンダーは、calid: jdoe@sesta.com:baseball として識別されることもあります。
カレンダー ID の作成規則
calid を作成する場合、次の規則を念頭に置いてください。
以下に適切なカレンダー ID の例を示します。
jsmith
jsmith:private_calendar
jsmith@calendar.sesta.com:new-calホストしていない Calid からホストされたドメイン形式の Calid への変換
ホストされたドメインを持つ前に作成された calid があり、ホストされていないドメインの calid からホストされたドメインの calid へ変換する場合、既存の calid にドメイン部分を追加するために使用できる csvdmig というユーティリティがあります。このユーティリティの使用方法については、「csvdmig」を参照してください。
ユーザーカレンダーの自動プロビジョニング自動プロビジョニングはユーザーカレンダーだけを対象としています。リソースカレンダーは明示的に作成する必要があります。
自動プロビジョニングが有効になっている場合は、ユーザーカレンダーを明示的に作成する必要はありません。自動プロビジョニングを使用すると、ユーザーが最初にログインしたときにデフォルトカレンダーが作成されます。
Calendar Server は、その名前のカレンダーが存在しない限り、ユーザー ID からこの新しいデフォルトカレンダーのカレンダー ID (calid) を作成します。
たとえば、ユーザー ID が jsmith の John Smith が初めて Calendar Server にログインするときに、Calendar Server は calid として jsmith が設定されたデフォルトカレンダーを自動的に作成します。それ以降に John Smith が作成する各カレンダーの calid は、カレンダー名の先頭に jsmith: が追加されます。たとえば、John Smith があとで meetings という名前の新しいカレンダーを作成する場合、ホストしていない環境内の新しいカレンダーの calid は jsmith:meetings です。
自動プロビジョニングを有効にするには、以下のようにします。
- デフォルトで自動プロビジョニングが有効になっている、つまり、デフォルトで ics.conf パラメータの local.autoprovision が "yes" に設定される
- ユーザーの LDAP エントリがカレンダーに対して有効になっていることを検証する。このエントリには、icsCalendarUser オブジェクトクラスが含まれている必要がある。ユーザーの LDAP エントリにクラスがない場合は、追加する
- サイトでホストされたドメインを使用している場合、ユーザーのドメインでカレンダーの自動プロビジョニングが有効になっている、つまり、ドメインエントリに icsCalendarDomain オブジェクトクラスが含まれている必要がある
自動プロビジョニングを無効にするには、以下のようにします。
カレンダーのアクセス制御SunTM ONE Calendar Server は、アクセス制御リストを使用して、カレンダー、カレンダープロパティ、予定や仕事 (作業) などのカレンダーコンポーネントへのアクセスを制御します。
ここで説明する内容は次のとおりです。
アクセス制御の設定パラメータ
表 13-1 は、Calendar Server がアクセス制御に使用する、ics.conf ファイル内の設定パラメータを示しています。詳細については、付録 E 「Calendar Server の設定パラメータ」を参照してください。
公開、非公開の予定と仕事、およびフィルタ
新しい予定または仕事を作成するときに、ユーザーは予定または仕事に公開、非公開、または時刻と日付のみの公開 (極秘) を指定できます。
Calendar Server フィルタが非公開の、および時刻と日付のみが公開される (極秘の) 予定と仕事を認識できるかどうかは、calstore.filterprivateevents によって決定されます。このパラメータはデフォルトで yes に設定されます。calstore.filterprivateevents を no に設定すると、Calendar Server は非公開の、および時刻と日付のみが公開される予定と仕事を、公開されているものと同様に扱います。
アクセス制御のためのコマンド行ユーティリティ
表 13-2 は、アクセス制御用の ACL を設定または変更するための Calendar Server コマンド行ユーティリティを示しています。
カレンダーの作成ここで説明する内容は次のとおりです。
cscal を使用したユーザーカレンダーの作成
新しいカレンダーを作成するには、cscal ユーティリティの create コマンドを使用します。ユーザーまたはリソースのエントリは、LDAP ディレクトリ内にすでに存在している必要があります。LDAP ディレクトリへのユーザーやリソースの追加については、第 12 章「ユーザーとリソースの管理」を参照してください。
サイトで LDAP カレンダー検索データベース (CLD) プラグインを使用している場合、ユーザーまたはリソースのエントリの icsDWPHost LDAP 属性で指定されているのと同じバックエンドサーバー上で特定のユーザーまたはリソースのすべてのカレンダーを作成する必要があります。別のバックエンドサーバーにカレンダーを作成しようとすると、cscal ユーティリティはエラーを返します。LDAP CLD プラグインについては、第 9 章「カレンダー検索データベースプラグインの設定」を参照してください。
たとえば、jsmith というカレンダー ID (calid) を持つカレンダーを新規作成するには、次のように実行します。
cscal -o jsmith -n JohnSmithCalendar create jsmith
John Smith が所有する Hobbies という表示名のカレンダーを作成し、グループスケジュール機能のアクセス制御設定を適用するには、次のように実行します。
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" は、このカレンダーのコンポーネントとカレンダーの両方のプロパティに対するグループスケジュール機能のスケジュール権限、空き時間 / 予定ありの設定権限、読み取りアクセス権限を、他の所有者に与えます。
リソースカレンダーの作成準備
リソースカレンダーは、スケジューリングが可能な会議室、ノートパソコン、OHP、その他の機器などに関連付けられます。リソースカレンダーにはアクセス制御リストが必要です。
ics.conf ファイルの 2 つの設定用パラメータがリソースカレンダーに適用されます。
表 13-3 に示すように、これらのパラメータのデフォルト値を変更するには、ics.conf ファイルを編集します。デフォルト値の変更は、新しいリソースカレンダーだけに適用されます。既存のリソースの値は変更されません。既存のリソースカレンダーの値を変更する場合は、 cscal ユーティリティまたは commadmin resource modify コマンドを使用する必要があります。csresource ユーティリティには modify コマンドはありません。
詳細については、付録 E 「Calendar Server の設定パラメータ」を参照してください。
新しいリソースカレンダーの作成
Calendar Server では、リソースカレンダーの自動プロビジョニングが行われることはありません。サイトに必要なリソースごとに、csresource ユーティリティの create コマンドを使用して手動でリソースの LDAP エントリのプロビジョニングを行い、カレンダーデータベースにカレンダーを作成する必要があります。リソースカレンダーを作成するときは、次の点に注意してください。
- デフォルトでは、Calendar Server はリソースカレンダーでの複数のユーザーからの予約 (resource.allow.doublebook パラメータ) を許可しません。このデフォルト設定は、部屋や装置などのリソースで予定の競合が生じることを防ぎます。ただし、リソースカレンダーでの複数のユーザーからの予約を可能にするには、カレンダーの作成時に csresource -k オプションを「yes」に設定します。
- 特定のリソースの予定を指定できるユーザーを制御するには、リソースカレンダーに対して書き込みアクセス権を持つユーザーを制限してください。たとえば、会議室の予定設定や機器の使用予約を特定のユーザーに限定することができます。
たとえば、カレンダー 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 から 1 つまたは複数のカレンダーを削除するには、cscal ユーティリティの delete コマンドを使用します。このユーティリティはカレンダーを削除しますが、ディレクトリサーバーからユーザーを削除することはありません。
警告
delete コマンドはすべてのカレンダー情報をカレンダーデータベースから削除します。実行した処理を取り消すことはできません。カレンダーを削除すると、それを復元できるのはカレンダーデータがバックアップされている場合だけです。詳細については、第 15 章「Calendar Server データのバックアップと復元」を参照してください。
cscal ユーティリティを使用して、1 つのカレンダーまたは複数のカレンダーを削除できます。
たとえば、jsmith:meetings というカレンダー ID を持つカレンダーを削除するには、次のように実行します。
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 コマンドを使用し、オプションの値を 2 つの二重引用符 ("") で指定することで対象となるオプションを指定します。
たとえば、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 を使用できます。Schema 1 の場合は、csattribute add コマンドを使用して属性を更新できます。
リソースカレンダーの管理リソースカレンダーと属性の表示
リソースカレンダーを表示するには、csresource ユーティリティの list コマンドを使用します。
たとえば、Calendar Server のすべてのリソースカレンダーと、それに対応する LDAP 属性を表示するには、次のように実行します。
csresource list
Auditorium という特定のリソースカレンダーのすべての LDAP 属性を表示するには、次のように実行します。
csresource -v list Auditorium
リソースカレンダーの変更
リソースカレンダーを変更するには、cscal ユーティリティの modify コマンドを使用します。csresource には modify コマンドはありません。
たとえば、Auditorium というリソースカレンダーに所有者として tchang を設定し、もう一人の所有者として mwong を設定するには、次のように実行します。
cscal -o tchang -y mwong modify aud100
この例では、cscal ユーティリティはカレンダー名 (Auditorium) ではなく、calid (aud100) を必要とします。
リソースカレンダーの無効化と有効化
ユーザーが予定をスケジュール設定できないようにするには、リソースカレンダーを無効化する必要があります。たとえば、改修中で会議室を利用できない場合や、OHP が修理中の場合などがこれに該当します。
リソースカレンダーの無効化と有効化には、csresource ユーティリティの enable コマンドまたは disable コマンドを使用します。
たとえば、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 はカレンダーを削除し、削除が完了したことを示すメッセージを表示します。
カレンダーへのリンク設定各カレンダーに対する読み取りアクセスが許可されている場合は、1 つまたは複数のユーザーカレンダーまたはリソースカレンダーへのリンクを作成することができます。たとえば、カレンダーへのリンクを Web ページや電子メールメッセージに埋め込むことができます。その他のユーザーは、Calendar Server にアクセスすることなく匿名でカレンダーを表示できます。
1 つまたは複数のユーザーカレンダーへのリンクを作成するには、次の構文を使用します。
http://hostname:port/[command.shtml]?calid=calid-1;calid-2; ... ;calid-n&view =viewname
複数のカレンダー ID (calid) を区切るときは、セミコロンを使用します。
viewname には、overview、dayview、weekview、または monthview を指定できます。yearview を指定することもできますが、これは便利ではありません。
注 : ビュー (またはその他の) オプションを指定せずに 1 つのカレンダーだけに対するリンクを設定するときは、command.shtml を省略します。
たとえば、jsmith のデフォルトカレンダーへのリンクは、次のようになります。
http://calendar.sesta.com:8080/?calid=jsmith
calid が overhead_projector10 の OHP のリソースカレンダーへのリンクは、次のようになります。
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) です。
csexport と csimport は、Calendar Server がインストールされているマシンでローカルに実行する必要があります。Calendar Server は稼動中でも停止していても構いません。
カレンダーデータのエクスポート
カレンダーデータをファイルにエクスポートするときは、csexport を使用します。ファイルの形式は、出力ファイルに指定する拡張子 (.ics または .xml) によって決定されます。
たとえば、カレンダー ID (calid) が jsmithcal のカレンダーを iCalendar 形式 (text/calendar MIME) の jsmith.ics というファイルにエクスポートするには、次のように実行します。
csexport -c jsmithcal calendar jsmith.ics
この jsmithcal カレンダーを XML 形式 (text/xml MIME) の jsmith.xml というファイルにエクスポートするには、次のように実行します。
csexport -c jsmithcal calendar jsmith.xml
カレンダーデータのインポート
csexport ユーティリティを使用して作成したファイルからカレンダーデータをインポートするときは、csimport を使用します。保存されているインポートファイルの形式は、そのファイルの拡張子 (.ics または .xml) で示されます。
たとえば、カレンダー ID (calid) が jsmithcal のカレンダーに iCalendar 形式 (text/calendar MIME) で保存された jsmith.ics というファイルからデータをインポートするには、次のように実行します。
csimport -c jsmithcal calendar jsmith.ics
この jsmithcal カレンダーに XML 形式 (text/xml MIME) で保存された jsmith.xml というファイルからデータをインポートするには、次のように実行します。
csimport -c jsmithcal calendar jsmith.xml
指定したカレンダー ID (calid) がすでに存在する場合、そこに含まれる古いデータは新しいデータのインポート前にクリアされます。