Sun Java System Message Queue 3.7 UR1 管理指南

使用平面文件用户系统信息库

Message Queue 提供了一个平面文件用户系统信息库和一个命令行工具,即用户管理器实用程序 (imqusermgr),您可以使用它来填充和管理平面文件用户系统信息库。以下各节介绍平面文件用户系统信息库以及如何使用用户管理器实用程序来填充和管理该系统信息库。

创建用户系统信息库

平面文件用户系统信息库是特定于实例的。默认的用户系统信息库(名为 passwd)是为启动的每个代理实例自动创建的。此用户系统信息库所在的目录由与该系统信息库相关联的代理实例的名称标识(请参见附录 A, Message QueueTM 数据在特定平台上的位置):

   …/instances/instanceName/etc/passwd

创建的系统信息库具有两个条目。表 7–1 中的每一行显示一个条目。

表 7–1 用户系统信息库中的初始条目

用户名 

密码 

组 

状态 

admin

admin

admin

处于活动状态

guest

guest

anonymous

处于活动状态

这些初始条目使 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 组。应按如下方式指定组:

要更改用户所属的组,必须删除该用户的条目,然后为该用户添加另一个条目并为其指定新组。

您不能重命名或删除这些系统创建的组,也不能创建新组。但是,您可以指定访问规则,以定义该组的成员可以执行的操作。有关详细信息,请参见用户授权:访问控制属性文件

用户状态

向系统信息库中添加用户时,用户的默认状态是活动的。要使用户处于非活动状态,您必须使用 update 命令。例如,以下命令将使用户 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 管理工具(包含管理控制台)时都应该提供新密码。