Domino V11.0.1 FP3から強化されたnserver -cの実行権限
Domino V11.0.1 FP3から、Windowsのnserver -cでのServer Command実行権限の強化が行われました。
Technoteで情報が公開されていますが、Unixと同様のSecurityが採用されたということですが、皆さんの環境でも影響がある場合があります。
例えば、DefaultではDominoはSYSTEMでService起動されていますが、夜間のメンテナンス処理などでWindows Task Schedulerから別Accountからnserver -c "Domino_Command"を発行するCaseもあるでしょうし、別のJob Schedulerから別のAccountでCommandを発行している場合もあるでしょう。
そのようなProgramは一切動作しなくなります。
簡単に、現象を試すためには、Domino AdministratorのServer Console画面をLive Console状態にして、Domino ServiceをSYSTEMで動作させた状態で、DOS Commandから、
<Domino_Program_Path>nserver -c "sh tasks"
を実行すると、Domino Console上で何も反応が無いことが分かります。
回避策は、Domino Service起動ユーザとTask実行Userを一致させることですが、Taskが多い場合などは、変更も大変になります。
そのため、Technoteに記載されているように、HCLでは、 SMAclAccess.ini ファイルで制御する方法を提供しています。
このファイルにDomino Commandを許可するUserを記載することで、nserver -cによるDomino Command発行が可能になります。
実際にファイルを配置して、DOS Commandから上記のコマンドを投げることで実行されることが分かります。
ただ、注意点は、このファイルはDominoを停止した状態でしかメンテナンス出来ない点です。
※外部Programからnserver -cを実行していない時間であれば、ファイル置き換え可能なのではないかと思い、HCLに確認したところ不可との回答でしたが、私が試す限りは、ファイルを変更しても、Serverを再起動しない限り変更が反映されないだけで、それ以外の弊害はありませんでした。
実在するUserであれば設定が可能と言うことですので、外部ProgramからDomino Commandを発行するUserは事前に登録しておくことで余計なServer停止をせずに済みます。
notes.iniのように、Set Config Commandで動的に変更できれば便利なのですが、notes.iniとは全く別のファイルで実装してしまったことが残念で仕方ありません。
V11.0.1 FP3以上に上げられる際は、この制限に注意して、影響範囲を把握した上でVersion Upしてください。