名 前
rmid − RMI 起 動 シ ス テ ム デ ー モ ン
形 式
rmid [ options ]
機 能 説 明
rmid ツ ー ル は 、 起 動 シ ス テ ム デ ー モ ン を 開 始 し ま す 。 起 動 可 能 な オ ブ ジ ェ ク ト を 起 動 シ ス テ ム に 登 録 し た り 、 Java VM で ア ク テ ィ ブ に し た り す る に は 、 あ ら か じ め 起 動 シ ス テ ム デ ー モ ン を 開 始 し て お く 必 要 が あ り ま す 。 起 動 可 能 な リ モ ー ト オ ブ ジ ェ ク ト を 使 っ た プ ロ グ ラ ム の 作 成 方 法 に つ い て の 詳 細 は 、 RMI の 仕 様 お よ び 起 動 の チ ュ ー ト リ ア ル を 参 照 し て く だ さ い 。
起 動 シ ス テ ム デ ー モ ン は 、 次 の よ う に セ キ ュ リ テ ィ ポ リ シ ー フ ァ イ ル を 指 定 し て rmid コ マ ン ド を 実 行 す る こ と に よ っ て 開 始 で き ま す 。
example% rmid −J−Djava.security.policy=rmid.policy
注 : Sun の rmid 実 装 を 実 行 す る 場 合 、 デ フ ォ ル ト で は セ キ ュ リ テ ィ ポ リ シ ー フ ァ イ ル を 指 定 す る 必 要 が あ り ま す 。 そ う す る こ と で 、 起 動 グ ル ー プ 用 の JVM の 起 動 に 、 各 ActivationGroupDesc 内 の 情 報 を 使 用 で き る か ど う か を rmid が 確 認 で き ま す 。 特 に 、 CommandEnvironment に よ り 指 定 さ れ る コ マ ン ド や オ プ シ ョ ン 、 お よ び ActivationGroupDesc の コ ン ス ト ラ ク タ に 渡 さ れ る す べ て の プ ロ パ テ ィ は 、 rmid 用 の セ キ ュ リ テ ィ ポ リ シ ー フ ァ イ ル で 明 示 的 に 許 可 す る こ と が 必 要 に な り ま し た 。 sun.rmi.activation.execPolicy プ ロ パ テ ィ の 値 は 、 起 動 グ ル ー プ の JVM の 起 動 に ActivationGroupDesc 内 の 情 報 を 使 用 で き る か ど う か の 判 断 に rmid が 使 用 す る ポ リ シ ー を 定 義 し ま す 。
rmid を デ フ ォ ル ト 設 定 で 実 行 す る こ と に よ り 、 以 下 が 行 わ れ ま す 。
• |
こ の コ マ ン ド は ア ク テ ィ ベ ー タ を 起 動 す る と と も に デ フ ォ ル ト ポ ー ト の 1098 で 内 部 レ ジ ス ト リ を 開 始 し 、 | ||
• |
ActivationSystem を java.rmi.activation.ActivationSystem と い う 名 前 に 内 部 レ ジ ス ト リ 上 で バ イ ン ド し ま す 。 |
レ ジ ス ト リ に ほ か の ポ ー ト を 指 定 す る に は 、 rmid の 起 動 時 に -port オ プ シ ョ ン を 指 定 し な け れ ば な り ま せ ん 。 た と え ば 、 次 の よ う に し ま す 。
rmid −J−Djava.security.policy=rmid.policy −port 1099
こ の コ マ ン ド は 、 起 動 シ ス テ ム デ ー モ ン を 開 始 し 、 レ ジ ス ト リ の デ フ ォ ル ト ポ ー ト 1099 で レ ジ ス ト リ を 開 始 し ま す 。
オ プ シ ョ ン
以 下 の
オ プ シ ョ ン が
使 用 で き ま す
。
−CsomeCommandLineOption
rmid の 子 プ ロ セ ス (起 動 グ ル ー プ ) が 作 成 さ れ た と き に 、 各 子 プ ロ セ ス に コ マ ン ド 行 引 数 と し て 渡 さ れ る オ プ シ ョ ン を 指 定 し ま す 。 た と え ば 、 次 の よ う に 指 定 す る と 、 起 動 シ ス テ ム デ ー モ ン に よ っ て 生 成 さ れ る 各 Java Virtual Machine に プ ロ パ テ ィ を 渡 す こ と が で き ま す 。
rmid −C−Dsome.property=value
コ マ ン ド 行 引 数 を 子 プ ロ セ ス に 渡 す 機 能 は 、 デ バ ッ グ を 行 う 際 に 便 利 で す 。 た と え ば 、 次 の よ う な コ マ ン ド を 実 行 で き ま す 。
rmid −C−Djava.rmi.server.logCalls=true
こ の コ マ ン ド に よ っ て 、 す べ て の 子 JVM で サ ー バ 呼 び 出 し の ロ グ が 残 る よ う に な り ま す 。
−JsomeCommandLineOption
rmid を 実 行 中 の java イ ン タ プ リ タ に 渡 す オ プ シ ョ ン を 指 定 し ま す 。 た と え ば 、 rmid で rmid.policy と い う 名 前 の ポ リ シ ー フ ァ イ ル を 使 用 す る 場 合 、 rmid の コ マ ン ド 行 で −J オ プ シ ョ ン を 使 っ て java.security.policy プ ロ パ テ ィ を 定 義 し ま す 。 次 に 例 を 示 し ま す 。
rmid −J−Djava.security.policy=rmid.policy
−J−Dsun.rmi.activation.execPolicy=policy
起 動 グ ル ー プ の 実 行 対 象 と な る JVM の 起 動 に 使 用 す る コ マ ン ド お よ び コ マ ン ド 行 オ プ シ ョ ン を 検 査 す る た め に 、 rmid が 採 用 す る ポ リ シ ー を 指 定 し ま す 。 こ の オ プ シ ョ ン は 、 Sun の RMI 起 動 デ ー モ ン 実 装 だ け に 存 在 す る こ と に 注 意 し て く だ さ い 。 コ マ ン ド 行 に こ の プ ロ パ テ ィ を 指 定 し な い 場 合 、 結 果 は −J-Dsun.rmi.activation.execPolicy=default を 指 定 し た 場 合 と 同 じ に な り ま す 。 policy に 指 定 可 能 な 値 は 、 default 、 policyClassName 、 ま た は none で す 。
• |
default (ま た は 、 こ の プ ロ パ テ ィ を 指 定 し な い 場 合 )。 デ フ ォ ル ト の execPolicy で は 、 使 用 す る セ キ ュ リ テ ィ ポ リ シ ー フ ァ イ ル 内 の コ マ ン ド お よ び オ プ シ ョ ン を 実 行 す る 権 限 が rmid に 与 え ら れ る 場 合 に の み 、 rmid は 特 定 の コ マ ン ド 行 オ プ シ ョ ン を 指 定 し て コ マ ン ド を 実 行 で き ま す 。 default の 実 行 ポ リ シ ー を 使 用 で き る の は 、 デ フ ォ ル ト の 起 動 グ ル ー プ 実 装 だ け で す 。 |
rmid は 、 起 動 グ ル ー プ の JVM を 起 動 す る 際 、 そ の 登 録 さ れ た 起 動 グ ル ー プ 記 述 子 で あ る ActivationGroupDesc 内 の 情 報 を 使 用 し ま す 。 グ ル ー プ 記 述 子 で は 、 オ プ シ ョ ン の ActivationGroupDesc.CommandEnvironment を 指 定 し ま す 。 こ れ に は 、 起 動 グ ル ー プ を 開 始 す る 「 コ マ ン ド 」 、 お よ び コ マ ン ド 行 に 追 加 す る 任 意 の コ マ ン ド 行 「 オ プ シ ョ ン 」 が 含 ま れ ま す 。 デ フ ォ ル ト で は 、 rmid は java.home に あ る java コ マ ン ド を 使 用 し ま す 。 グ ル ー プ 記 述 子 に は 、 次 に 示 す よ う に 、 オ プ シ ョ ン と し て コ マ ン ド 行 に 追 加 さ れ る 「 プ ロ パ テ ィ 」 オ ー バ ー ラ イ ド も 含 ま れ ま す 。
−Dproperty=value
ア ク セ ス 権 com.sun.rmi.rmid.ExecPermission を 使 用 す る と 、 rmid に 対 し 、 グ ル ー プ 記 述 子 の CommandEnvironment で 指 定 さ れ た コ マ ン ド を 実 行 し て 起 動 グ ル ー プ を 開 始 す る 権 限 を 与 え る こ と が で き ま す 。 ア ク セ ス 権 com.sun.rmi.rmid.ExecOptionPermission を 使 用 す る と 、 起 動 グ ル ー プ を 開 始 す る と き に 、 グ ル ー プ 記 述 子 で プ ロ パ テ ィ オ ー バ ー ラ イ ド と し て 指 定 さ れ た コ マ ン ド 行 オ プ シ ョ ン 、 ま た は CommandEnvironment で オ プ シ ョ ン と し て 指 定 さ れ た コ マ ン ド 行 オ プ シ ョ ン を rmid か ら 使 用 で き ま す 。
rmid
に さ ま ざ ま な
コ マ ン ド お よ
び オ プ シ ョ ン
を 実 行 す る 権
限 を 与 え る 場
合 、 ア ク セ ス
権 ExecPermission お よ び
ExecOptionPermission を 普 遍
的 に (つ ま り 、
す べ て の コ ー
ド ソ ー ス に 対
し て ) 許 可 す る
必 要 が あ り ま
す 。
ExecPermission
ExecPermission ク ラ ス は 、 起 動 グ ル ー プ を 開 始 す る た め に rmid が 特 定 の 「 コ マ ン ド 」 を 実 行 す る 権 限 を 表 し ま す 。
構
文
ExecPermission の 「 名 前
」 は 、 rmid に 実
行 権 限 を 与 え
る コ マ ン ド の
パ ス 名 で す 。
「 /*」 (「 /」 は フ
ァ イ ル 区 切 り
文 字 、 つ ま り
File.separatorChar ) で 終 わ
る パ ス 名 は 、
そ の デ ィ レ ク
ト リ に 含 ま れ
る す べ て の フ
ァ イ ル を 表 し
ま す 。 「 /-」 で
終 わ る パ ス 名
は 、 そ の デ ィ
レ ク ト リ に 含
ま れ る す べ て
の フ ァ イ ル と
サ ブ デ ィ レ ク
ト リ (再 帰 的 に )
を 表 し ま す 。
パ ス 名 に 特 別
な ト ー ク ン 「
<<ALL FILES>>」 を 指 定
し た 場 合 は 、
任 意 の フ ァ イ
ル に 一 致 し ま
す 。
注 : 「 *」 が 1 つ だ け 指 定 さ れ た パ ス 名 は 、 現 在 の デ ィ レ ク ト リ 内 の す べ て の フ ァ イ ル を 表 し 、 「 -」 が 1 つ だ け 指 定 さ れ た パ ス 名 は 、 現 在 の デ ィ レ ク ト リ 内 の す べ て の フ ァ イ ル と 、 現 在 の デ ィ レ ク ト リ に 含 ま れ る す べ て の フ ァ イ ル と サ ブ デ ィ レ ク ト リ (再 帰 的 に ) を 表 し ま す 。
ExecOptionPermission
ExecOptionPermission ク ラ ス は 、 起 動 グ ル ー プ の 開 始 時 に rmid が 特 定 の コ マ ン ド 行 「 オ プ シ ョ ン 」 を 使 用 す る 権 限 を 表 し ま す 。 ExecOptionPermission の 「 名 前 」 は 、 コ マ ン ド 行 オ プ シ ョ ン の 値 で す 。
構
文
オ プ シ ョ ン で
は 、 制 限 付 き
ワ イ ル ド カ ー
ド 指 定 が サ ポ
ー ト さ れ ま す
。 ア ス タ リ ス
ク は 、 ワ イ ル
ド カ ー ド マ ッ
チ ン グ を 指 定
し ま す 。 ア ス
タ リ ス ク は 、
オ プ シ ョ ン 名
自 体 を 表 す (つ
ま り 、 す べ て
の オ プ シ ョ ン
に 一 致 す る ) た
め に 使 用 で き
ま す 。 ま た 、
「 .」 お よ び 「
=」 の 次 に 指 定
す る 場 合 に の
み 、 オ プ シ ョ
ン 名 の 最 後 に
ア ス タ リ ス ク
を 使 用 で き ま
す 。
例 を 示 し ま す 。 「 *」 、 「 -Dfoo.*」 、 「 -Da.b.c=*」 は 有 効 で す 。 「 *foo」 、 「 -Da*b」 、 「 ab*」 は 無 効 で す 。
rmid の ポ リ シ ー フ ァ イ ル
rmid に さ ま ざ ま な コ マ ン ド お よ び オ プ シ ョ ン を 実 行 す る 権 限 を 与 え る 場 合 は 、 ア ク セ ス 権 ExecPermission お よ び ExecOptionPermission を 普 遍 的 に (つ ま り 、 す べ て の コ ー ド ソ ー ス に 対 し て ) 許 可 す る 必 要 が あ り ま す 。 こ れ ら の ア ク セ ス 権 を 検 査 す る の は rmid だ け で あ る た め 、 普 遍 的 に 許 可 し て も 安 全 で す 。
rmid に さ ま ざ ま な 実 行 権 限 を 許 可 す る ポ リ シ ー フ ァ イ ル の 例 を 、 次 に 示 し ま す 。
grant {
permission com.sun.rmi.rmid.ExecPermission
"/files/apps/java/jdk1.2.2/bin/java";
permission
com.sun.rmi.rmid.ExecPermission
"/files/apps/rmidcmds/*";
permission
com.sun.rmi.rmid.ExecOptionPermission
"−Djava.security.policy=/files/policies/group.policy";
permission
com.sun.rmi.rmid.ExecOptionPermission
"−Djava.security.debug=*";
permission
com.sun.rmi.rmid.ExecOptionPermission
"−Dsun.rmi.*";
};
最 初 の ア ク セ ス 権 は 、 rmid に 対 し 、 パ ス 名 に よ り 明 示 さ れ た 1.2.2 バ ー ジ ョ ン の java コ マ ン ド を 実 行 す る 許 可 を 与 え ま す 。 デ フ ォ ル ト で は 、 java.home に あ る java コ マ ン ド の バ ー ジ ョ ン ( rmid が 使 用 す る の と 同 じ も の ) が 使 用 さ れ る た め 、 ポ リ シ ー フ ァ イ ル で 指 定 す る 必 要 は あ り ま せ ん 。 3 番 目 の ア ク セ ス 権 は 、 rmid に 対 し 、 デ ィ レ ク ト リ /files/apps/rmidcmds 内 の 任 意 の コ マ ン ド を 実 行 す る 権 限 を 与 え ま す 。
4 番 目 に 許 可 さ れ た ア ク セ ス 権 ExecOptionPermission は 、 rmid に 対 し 、 セ キ ュ リ テ ィ ポ リ シ ー フ ァ イ ル を /files/policies/group.policy に 定 義 す る 起 動 グ ル ー プ を 開 始 す る 権 限 を 与 え ま す 。 次 の ア ク セ ス 権 は 、 起 動 グ ル ー プ が java.security.debug プ ロ パ テ ィ を 使 用 す る 権 限 を 与 え ま す 。 最 後 の ア ク セ ス 権 は 、 起 動 グ ル ー プ が sun.rmi プ ロ パ テ ィ 名 階 層 内 の 任 意 の プ ロ パ テ ィ を 使 用 す る 権 限 を 与 え ま す 。
ポ リ シ ー フ ァ イ ル を 使 っ て rmid を 起 動 す る に は 、 rmid の コ マ ン ド 行 で java.security.policy プ ロ パ テ ィ を 指 定 す る 必 要 が あ り ま す 。 次 に 例 を 示 し ま す 。
rmid −J−Djava.security.policy=rmid.policy
• |
policyClassName |
デ フ ォ ル ト の 動 作 で は 十 分 な 柔 軟 性 が 得 ら れ な い 場 合 、 管 理 者 は rmid の 起 動 時 に 、 checkExecCommand メ ソ ッ ド が 実 行 さ れ る ク ラ ス の 名 前 を 指 定 す る こ と に よ り 、 rmid が 実 行 す る コ マ ン ド を 検 査 で き ま す 。
policyClassName に は 、 public で 引 数 を 必 要 と し な い コ ン ス ト ラ ク タ と と も に public ク ラ ス を 指 定 し ま す 。 ま た 、 次 の checkExecCommand メ ソ ッ ド 実 装 も 指 定 し ま す 。
public void
checkExecCommand(ActivationGroupDesc desc,
String[] command)
throws SecurityException;
起 動 グ ル ー プ を 開 始 す る 前 に 、 rmid は 、 ポ リ シ ー の checkExecCommand メ ソ ッ ド を 呼 び 出 し て 、 起 動 グ ル ー プ の 記 述 子 お よ び 起 動 グ ル ー プ を 開 始 す る 完 全 な コ マ ン ド を 含 む 配 列 を 渡 し ま す 。 checkExecCommand が SecurityException を ス ロ ー す る 場 合 、 rmid は 起 動 グ ル ー プ を 開 始 せ ず 、 オ ブ ジ ェ ク ト の 起 動 を 試 み て い る 呼 び 出 し 側 に ActivationException が ス ロ ー さ れ ま す 。
• |
none |
sun.rmi.activation.execPolicy プ ロ パ テ ィ の 値 が 「 none」 の 場 合 、 rmid は 、 起 動 グ ル ー プ の 開 始 コ マ ン ド の 検 証 を 一 切 行 い ま せ ん 。
−log dir
起 動 シ ス テ ム デ ー モ ン が デ ー タ ベ ー ス お よ び 関 連 情 報 を 書 き 込 む の に 使 う 、 デ ィ レ ク ト リ の 名 前 を 指 定 し ま す 。 デ フ ォ ル ト で は 、 rmid コ マ ン ド を 実 行 し た デ ィ レ ク ト リ に log と い う ロ グ デ ィ レ ク ト リ が 作 成 さ れ ま す 。
−port port
rmid の レ
ジ ス ト リ が 使
う ポ ー ト を 指
定 し ま す 。 起
動 シ ス テ ム デ
ー モ ン は 、
java.rmi.activation.ActivationSystem と
い う 名 前 で
ActivationSystem を レ ジ ス
ト リ に バ イ ン
ド し ま す 。 し
た が っ て 、 ロ
ー カ ル マ シ ン
の ActivationSystem は 、 次
の よ う に Naming.lookup
メ ソ ッ ド を 呼
び 出 す こ と に
よ っ て 取 得 で
き ま す 。
import java.rmi.*;
import java.rmi.activation.*;
ActivationSystem
system;
system = (ActivationSystem)
Naming.lookup("//:port/java.rmi.activation.ActivationSystem");
−stop |
-port オ プ シ ョ ン に よ っ て 指 定 さ れ た ポ ー ト の 、 現 在 の rmid の 呼 び 出 し を 停 止 し ま す 。 ポ ー ト の 指 定 が な い 場 合 は 、 ポ ー ト 1098 で 実 行 さ れ て い る rmid を 停 止 し ま す 。 |
環 境
CLASSPATH |
ユ ー ザ 定 義 ク ラ ス へ の パ ス を シ ス テ ム に 通 知 す る た め に 使 用 し ま す 。 デ ィ レ ク ト リ は コ ロ ン で 区 切 り ま す 。 以 下 に 例 を 示 し ま す 。 |
example% .:/usr/local/java/classes
関 連 項 目
rmic(1)
次 に つ い て は
、 java.sun.com を 参 照
ま た は 検 索 し
て く だ さ い 。
RMI の 仕 様 @
http://java.sun.com/j2se/1.4/docs/guide/rmi/spec/rmiTOC.html : 英 語 版