Sun Java System Message Queue 3.7 UR1 管理指南

使用平面檔案使用者儲存庫

Message Queue 提供平面檔案使用者儲存庫和指令行工具,即使用者管理員公用程式 (imqusermgr),您可以使用此工具寫入和管理平面檔案使用者儲存庫。以下各節描述平面檔案使用者儲存庫,以及您如何使用使用者管理員公用程式寫入和管理儲存庫。

建立使用者儲存庫

平面檔案使用者儲存庫是針對實例的。您啟動的每個代理程式實例,都會自動建立預設的使用者儲存庫 (稱為 passwd)。此使用者儲存庫的所在目錄名稱,與此儲存庫相關聯之代理程式實例名稱相同 (請參閱附錄 AMessage QueueTM 資料的特定平台位置):

   …/instances/instanceName/etc/passwd

此儲存庫在建立時就有兩個項目。表 7–1 的每一列表示一個項目。

表 7–1 使用者儲存庫中的初始項目

使用者名稱 

密碼 

群組 

狀態 

admin

admin

admin

active

guest

guest

anonymous

active

這些初始項目可讓 Message Queue 代理程式在安裝之後立即使用,而無需管理員的介入:

以下各節介紹如何寫入和管理平面檔案使用者儲存庫。

使用者管理員公用程式

Message Queue 使用者管理員公用程式 (imqusermgr) 可讓您編輯或寫入平面檔案使用者儲存庫。本節介紹使用者管理員公用程式。後續各節介紹如何使用 imqusermgr 子指令完成特定的工作。

如需 imqusermgr 指令的完整參考資訊,請參閱第 13 章, 指令行參照

操作使用者管理員之前,請注意以下事項:


備註 –

以下各節中的範例均假設為預設的代理程式實例。


子指令

imqusermgr 指令有子指令 adddeletelistupdate

指令選項

表 7–2 列出了 imqusermgr 指令的選項。

表 7–2 imqusermgr 選項

選項 

說明 

-a activeState

指定使用者的狀態是否應為使用中 (true/false)。值 true 表示狀態為使用中。這是預設值。

-f

未經使用者確認即執行動作。 

-h

顯示用法說明。不執行指令行上的其他任何指令。 

-i instanceName

指定要套用指令的代理程式實例名稱。如果未指定,則使用預設實例名稱 imqbroker

-p passwd

指定使用者密碼。 

-g group

指定使用者群組。有效值為 adminuseranonymous

-s

設定無訊息模式。 

-u userName

指定使用者名稱。 

-v

顯示版本資訊。不執行指令行上的其他任何指令。 

群組

為代理程式實例的使用者儲存庫增加使用者項目時,您可以指定三個預先定義群組中的任一項:adminuseranonymous。如果未指定群組,則預設為指定群組 user請遵照以下說明指定群組:

若要變更使用者的群組,您必須刪除此使用者項目,然後為此使用者增加其他項目,指定新的群組。

您不能將系統建立的群組重新命名或刪除,也不能建立新群組。但是,您可以指定用來定義群組成員可執行作業的存取規則。如需更多資訊,請參閱使用者授權:存取控制特性檔案

使用者狀態

增加使用者至儲存庫時,使用者的狀態預設為使用中。若要讓此使用者變成非使用中狀態,您必須使用更新指令。例如,以下指令可讓使用者 JoeD 的狀態變成非使用中:

imqusermgr update -u JoeD -a false

已變成非使用中使用者的項目會保留在儲存庫中;但是,非使用中的使用者無法開啟新的連線。如果使用者為非使用中,且您新增具有相同名稱的其他使用者,則作業將失敗。您必須刪除非使用中使用者項目或變更新使用者的名稱,或者為新使用者命名其他名稱。這可防止您新增重複的使用者名稱。

使用者名稱與密碼的格式

使用者名稱與密碼必須遵循以下準則:

寫入和管理使用者儲存庫

使用 add 子指令可增加使用者至儲存庫。例如,以下指令可將使用者 Katharine 和密碼 sesame,增加到預設的代理程式實例使用者儲存庫。

imqusermgr add -u Katharine -p sesame -g user

使用 delete 子指令可從儲存庫刪除使用者。例如,以下指令可刪除使用者 Bob

imqusermgr delete -u Bob

使用 update 子指令可變更使用者的密碼或狀態。例如,以下指令將 Katharine 的密碼變更為 aladdin

imqusermgr update -u Katharine -p aladdin

若要列出有關一個或所有使用者的資訊,請使用 list 指令。以下指令顯示名為 isa 的使用者之相關資訊:

imqusermgr list -u isa

% imqusermgr list -u isa

User repository for broker instance: imqbroker
----------------------------------
User Name    Group    Active State
----------------------------------
isa          admin    true

以下指令列出所有使用者的相關資訊:

imqusermgr list

% imqusermgr list

User repository for broker instance: imqbroker
--------------------------------------
User Name    Group        Active State
--------------------------------------
admin        admin        true
guest        anonymous    true
isa          admin        true
testuser1    user         true
testuser2    user         true
testuser3    user         true
testuser4    user         false
testuser5    user         false

變更預設管理員密碼

為了安全性起見,您應將 admin 的預設密碼變更為只有您自己知道的密碼。以下指令將 mybroker 代理程式實例的預設管理員密碼 admin 變更為 grandpoobah

imqusermgr update mybroker -u admin -p grandpoobah

當代理程式實例正在執行時,您可以透過執行任一指令行工具,以快速確認此變更是否生效。例如,下列指令會提示您提供密碼:

imqcmd list svc mybroker -u admin

輸入新密碼 (grandpoobah) 即生效,輸入舊密碼即失敗。

變更密碼後,使用任一 Message Queue 管理工具 (包括管理主控台) 時,您均應提供新的密碼。