管理 Linux/Solaris 上的 GIS 服务器用户帐户

Linux/Solaris 上的 ArcGIS Server 用户管理不同于 Windows 上的 ArcGIS Server 用户管理。在 Linux/Solaris 上,ArcGIS Server 具有不同级别的用户帐户:

Linux/Solaris 上的 ArcGIS Server 帐户概述

下图列出了用于管理 Linux 上的 ArcGIS Server 的帐户。

OS 级别的用户帐户 - ArcGIS Server 在操作系统级别使用的帐户

本地 GIS 服务器用户 - 用于本地连接

对于本地连接,Linux/Solaris 上的 ArcGIS Server 在下图所示的安全环境中处理请求和响应:

Linux/Solaris 上的 ArcGIS Server 具有一个和 SOM 组件一起安装的嵌入式 Sun Directory Server。ArcGIS Server 使用该目录服务器来维护特定用户的资料档案库,这些用户可通过本地连接访问 ArcGIS Server。

存在两个级别的用户访问:用户(属于 agsuser 组)和管理(属于 agsadmin 组)。在运行过程中,当用户的请求进入系统时,SOM 使用目录服务器来验证用户的身份并确定该用户属于哪个组:agsuser 还是 agsadmin。然后,SOM 将该用户映射到相应的 OS 级别的帐户。根据用户所属的帐户接受或拒绝请求。

本地 GIS 服务器用户列表

本地 GIS 服务器用户由 SOM 通过和服务器一起安装的 Sun One Directory Server 进行管理和维护。ArcGIS Server 使用该目录服务器来维护特定用户的资料档案库,这些用户可通过本地连接使用和管理 ArcGIS Server。卸载 ArcGIS Server 后会清除目录服务器,并删除所有用户信息。这些不是 OS 级别的帐户。可以通过 ArcGIS Server 管理器来管理这些用户。

  • admin:该用户在安装过程中创建。它具有管理员 (agsadmin) 角色。admin 的默认密码是“admin”。首次登录管理器时,请以 admin 的身份登录。该用户无法从用户列表中移除。
  • agsadmin:如上所述,安装时在 OS 级别创建该用户。它也可以在 GIS 服务器级别创建。该用户无法从用户列表中移除。默认密码是“agsadmin”,这与 OS 级别相同。强烈建议完成 ArcGIS Server 的安装后立即更改密码。
  • agsuser:如上所述,安装时在 OS 级别创建该用户。它也可以在 GIS 服务器级别创建。该用户无法从 GIS 服务器用户列表中移除。默认密码是“agsuser”,这与 OS 级别相同。强烈建议完成 ArcGIS Server 的安装后立即更改密码。
  • 安装程序所有者:安装时,不会在 GIS 服务器级别创建该用户。对于分布式安装,或者想要从命令行创建/更新缓存,则必须在 GIS 服务器级别添加该用户。该用户的 GIS 服务器级别的密码必须与 OS 级别的密码匹配。
  • 其他用户:这些是安装并运行 ArcGIS Server 后由 agsadmin 组在管理器内添加的用户。虚拟用户可作为“agsadmin”或“agsuser”帐户组的成员添加。
    • agsadmin 组中的用户可以执行以下操作:
      1. 登录到 ArcGIS Server 管理器以管理 ArcGIS Server。添加或修改服务器属性。
      2. 访问和修改 GIS 服务的设置和配置,如:启动/停止服务,更改服务配置,例如服务器实例数、资源池设置等。
      3. 对服务(例如创建/更新缓存任务)运行服务器工具。
    • agsuser 组中的用户可以执行以下操作:
      1. 在 ArcCatalog 或 Web 应用程序中建立指向 ArcGIS Server 的 Internet 和 LAN 连接,以使用 GIS 服务。
警告警告:
强烈建议完成 ArcGIS Server 的初始安装后立即更改 admin、agsadmin 和 agsuser 帐户的密码。

在管理器中管理本地 GIS 服务器用户

在管理器中,可管理这些用户帐户,并将其分配给用户 (agsadmin) 或管理员 (agsuser) 用户组以访问 ArcGIS Server。

在 ArcGIS Server 管理器中,单击 GIS 服务器选项卡,然后在左侧面板中单击本地 GIS 用户,即可导航至“本地 GIS 用户”页面。

要添加新用户帐户,单击添加用户。也可以在此定义帐户所属的组。

要移除用户,可在“用户列表”页面中选中要移除的一个或多个用户旁边的复选框,然后单击删除

要编辑用户帐户,请单击要编辑的帐户的编辑按钮,然后更改密码、名称和/或用户组。

注意注意:

如果要编辑当前登录到管理器的用户的密码/组,则必须注销管理器,然后再次登录。

如何在两台 SOM 计算机之间设置本地用户故障转移

在 Linux/Solaris 上的 ArcGIS Server 中,SOC 组件会注册到一台 SOM 计算机上以进行用户管理。如果 SOM 计算机的用户管理功能失效,则其他任何 SOM 计算机都将无法使用已注册的 SOC 计算机。为了使用户管理可以持续工作,这些 SOC 计算机需要指向另一台 SOM 计算机(请参阅下图)。

Linux/Solaris 上的 ArcGIS Server 提供了一个脚本,如果主 SOM 计算机发生故障,此脚本能使 SOC 计算机自动指向辅助 SOM 计算机以便进行用户管理。要达到此目的,请输入以下内容:

cd <ArcGIS Server Installation Directory>/server10.0/servercore/tools/failover
./addIdentityServer.sh

如何在两台 SOM 计算机之间自动同步本地 ArcGIS Server 用户

如果已设置本地 GIS 服务器用户故障转移,则辅助 SOM 计算机中的本地用户需要与主 SOM 计算机同步,以确保用户身份验证可正常工作。在 Linux/Solaris 上的 ArcGIS Server 中,本地连接用户可自动在两台 SOM 计算机之间同步。在配置多机部署时,此功能非常有用。

在上图中,SOC 计算机 SOC1、SOC2、SOC3 和 SOC4 都注册到 SOM1 以便进行身份验证。设置本地用户身份验证故障转移后,如果 SOM1 出现故障,则这些 SOC 计算机将指向 SOM2 以便进行本地用户身份验证。SOM2 需要拥有这些 SOC 所需的信息。如果 SOM1 和 SOM2 中的用户/密码/用户组信息不同步,则这些 SOC 计算机可能无法正常工作。Linux/Solaris 中的 ArcGIS Server 具有一项功能,可以在 SOM1 和 SOM2 之间自动同步本地用户的身份验证信息。要达到此目的,请输入以下内容:

cd <ArcGIS Server Installation Directory>/server10.0/servercore/tools/failover/userautosync
./userautosync
usage: ./userautosync <command> [command options]
# There are five commands: add, remove, status, stop, and start.
			      remove - remove the automatic user synchronization SOM machine
			      status - list the SOM machine that is the automatic user synchronization partner
			      stop - stop automatic user synchronization with the partner SOM machine
			      start - start automatic user synchronization with the partner SOM machine
			      add - [The other SOM machine name]
  • userautosync add

添加命令将在两台 SOM 计算机之间设置用户自动同步。SOM1 和 SOM2 上的用户会在这两台 SOM 中进行合并。如果一个用户同时存在于这两台计算机上,那么将获取上次更新/添加的用户信息

userautosync add [The other SOM machine name]

例如,在 SOM1 上运行

<ArcGIS Server Installation Directory>/server10.0/servercore/tools/failover/userautosync/userautosync add SOM2

结果如下:

表 1 - 在 SOM1 上运行“userautosync add”时的初始本地用户同步

SOM1 上的本地用户

+

SOM2 上的本地用户

-->

设置自动同步后 SOM1 和 SOM2 上的本地用户

admin

admin

admin(与 SOM1 相同)

agsadmin

agsadmin

agsadmin(与 SOM1 相同)

agsuser

agsuser

agsuser(与 SOM1 相同)

cherry

Cherry

cherry(与 SOM1 相同)

david

david

david(与 SOM1 相同)

peter

anthony

peter(来自 SOM1)

anthony(来自 SOM2)

注意注意:
用户名不区分大小写。因此 SOM1 中的“cherry”和 SOM2 中的“Cherry”视为同一用户。

执行初始同步后对 SOM1 或 SOM2 所做的任何更改都将自动传递到另一台 SOM 计算机。例如,如果将一个新用户添加到 SOM2,则在 SOM2 上完成添加操作后,会立即将该用户的信息添加到 SOM1。如果在 SOM1 上更改一个用户的密码或用户组,则在 SOM1 上完成更改操作后,这些更改会立即在 SOM2 上生效。

  • userautosync.properties 文件

还可以通过 <ArcGIS Server 安装目录>/server10.0/servercore/tools/failover/userautosync/userautosync.properties 文件定义进行用户自动同步的时间范围,而不是在对任何一台 SOM 计算机做出更改后立即进行同步。可通过给定开始时间、完成时间,以及以星期日开头的一周时间来定义时间表。例如:

时间表 = 0400-0500 0123

表示只能在每个星期日、星期一、星期二和星期三的 4:00 a.m. 和 5:00 a.m. 之间进行同步。

修改此属性文件时,还需要在另一台计算机上对其进行修改。此属性文件需要在这两台计算机上为同一文件。

按照时间表运行用户自动同步时,对于在此同步时间表之前所做的更改,如果 SOM1 和 SOM2 之间存在冲突,那么将采取更新的更改。例如,如果时间表是从星期一的 4:00 a.m. 到 5:00 a.m.,则星期一 4:00 a.m. 之前所做的更改如下:

表 2 - 对于“时间表 = 0400-0500 1”(每个星期一的 4:00 a.m.–5:00 a.m.),在 2010 年 6 月 14 日 3:30 am,在 SOM 1 上运行“userautosync add”

SOM1 上的本地用户

+

SOM2 上的本地用户

-->

结果 - 2010 年 6 月 14 日(星期一)4:00 a.m. 以后,SOM1 和 SOM2 上的本地用户

admin/admin(agsadmin) --> admin/test(agsadmin),2010 年 6 月 10 日(星期四)

admin/admin(agsadmin)

admin/admin(agsadmin)

agsadmin/test(agsadmin)

agsadmin/test(agsadmin)

agsadmin/test(agsadmin)

agsuser/test(agsuser)

agsuser/test(agsuser)

agsuser/test(agsuser)

cherry/cherry(agsadmin) --> cherry/cherry(agsuser),2010 年 6 月 12 日(星期六)2:00 pm

cherry 在 2010 年 6 月 12 日(星期六)2:05 pm 删除

anthony/anthony(agsadmin)

peter/peter(agsadmin) 在 2010 年 6 月 13 日(星期日)3:00 pm 输入

peter/peter(agsadmin)-->peter/peter(agsuser),2010 年 6 月 13 日(星期日)3:05 pm

peter/test(agsadmin)

peter/peter(agsadmin) --> peter/test(agsadmin),2010 年 6 月 13 日(星期日)3:40 pm

anthony/anthony(agsadmin) 在 2010 年 6 月 9 日(星期三)输入

如果在时间表的范围之外运行“userautosync add”来开始自动同步,则在 SOM1 和 SOM2 上,这一时刻的初始同步的结果会有所不同。如果在 SOM1 上运行该命令,则 SOM1 上的初始本地用户将推送到 SOM2,但 SOM2 上的本地用户“不会”转到 SOM1。例如,对于“时间表 = 0400-0500 1”,在星期一的 4:00-5:00 am 以外的任何时间在 SOM1 上运行“userautosync add”(例如 2010 年 6 月 14 日 3:30 am),初始同步结果为:

表 3 - 对于“时间表 = 0400-0500 1”(每个星期一的 4:00 a.m.–5:00 a.m.),在 2010 年 6 月 14 日(星期一)3:30 am,在 SOM1 上运行“userautosync add”

在 3:30 am 运行“userautosync add”前 SOM1 上的本地用户

在 3:30 am 运行“userautosync add”前 SOM2 上的本地用户

-->

在 3:30 am 运行“userautosync add”后 SOM1 上的本地用户 在 3:30 am 运行“userautosync add”后 SOM2 上的本地用户

admin/test(agsadmin)

admin/test(agsadmin)

admin/test(agsadmin)

admin/test(agsadmin)

agsadmin/test(agsadmin)

agsadmin/agsadmin(agsadmin)

agsadmin/test(agsadmin)

agsadmin/test(agsadmin)

agsuser/test(agsuser)

agsuser/test(agsuser)

agsuser/test(agsuser)

agsuser/test(agsuser)

cherry/cherry(agsadmin)

adam/adam(agsuser)

cherry/cherry(agsadmin)

cherry/cherry(agsadmin)

peter/peter(agsuser)

ags/ags(agsadmin)

peter/peter(agsuser)

peter/peter(agsuser)

adam/adam(agsuser)

ags/ags(agsadmin)

然后在 4:00 am,用户自动同步将按照表 2 生效。

如果在规定时间内运行“userautosync add”,自动同步将立即按照表 1 生效。然后会仅在规定时间内进行自动同步。对于在其他时间所做的更改,效果如表 2 所示。

如果在正在运行用户自动同步时修改属性文件,则需要运行“userautosync stop”和“userautosync start”使其生效。运行“userautosync start”所得的结果将符合上述规则。

  • userautosync remove

此命令可移除与另一台 SOM 计算机的自动用户同步。

userautosync remove
  • userautosync status

此命令可显示自动同步设置的状态。如果已设置自动同步,则此命令可列出另一台 SOM 计算机以及是否正在运行自动同步

userautosync status
  • userautosync stop

如果已设置并正在运行自动同步,则此命令可以将其停止。仍然会配置自动同步。如果用户自动同步仅在一台计算机上出现故障,则另一台计算机将继续尝试访问出现故障的 SOM 计算机。重试模式如下:10 秒、20 秒、40 秒、80 秒,直到间隔达到 5 分钟为止。然后将继续每 5 分钟重试一次。如果两台计算机都已停止,那么当它们重新启动时,它们会尝试访问另一台计算机以自动同步用户。

userautosync stop
  • userautosync start

如果已设置但没有运行自动同步,则此命令可以将其启动。

userautosync start

“userautosync start”和“userautosync add”具有相同的效果。例如,如果在 SOM1 上运行“userautosync start”,将得到表 1 中的结果。

  • 日志文件。

在 <ArcGIS Server 安装目录>/server10.0/servercore/tools/failover/userautosync 文件夹下有一个名为 user_sync.log 的日志文件。本地用户管理中的更改会记录在此日志文件中。

如果 ArcGIS Server 出现故障,则会停止用户自动同步,但仍然会对其进行配置。用户自动同步的效果将和运行“userautosync stop”的效果相同。

用户自动同步使用的端口

用户自动同步进程使用的端口是 62001。此端口用于在这两台 SOM 的 identity server 之间发送同步信息。而“Identity server”使用端口 62000 侦听来自 SOC 的身份验证请求。

“监视器”进程使用 2422 作为默认端口。这一点在 <ArcGIS Server 安装目录>/server10.0/java/tools/monitor/monitor.xml 的监视器配置文件中有说明。通过取消注释和更新本地计算机的 monitor.xml 中的下列信息,系统管理员就可将此端口修改为任意端口。

 <!--<ListenerPort>2422</ListenerPort>-->

如果将此端口号修改为非默认值,并且如果该本地计算机当前是其他 SOM 主机的 SOC 主机,则对此端口号所做的修改必须在 SOM 主机上的 MonitorClient 属性文件 <ArcGIS Server 安装目录>/server10.0/java/tools/monitor/lib/monitor_client.xml 中注册。

<!-- <MonitorPorts>
	            <Machine name="[MACHINE-NAME]" port="[PORT#]" />										
 </MonitorPorts> -->

而且,如果本地主机已安装 SOM 和 SOC,那么也需要在本地主机上的 MonitorClient 属性文件中注册端口号的修改内容。这一点是 SOM 主机成功执行远程操作(例如通过监视器对本地计算机进行“诊断”)的必要条件。仅当 SOM 主机知道监视器所侦听的端口号时,上述情况才有可能实现。

要将默认端口值 62001 更改为其他值,请执行下面的步骤:

  1. 停止服务器
  2. 编辑 <ArcGIS Server 安装目录>/server10.0/servercore/agsidsvr/agsldap/slapd-<主机名>/config/dse.ldif
  3. 将 nsslapd-port 的值更改为要使用的新端口号。
  4. 编辑 /etc/remotesa/remotesa.config
  5. 将 MWR_LDAPPORT 的值更改为新值
  6. 重新启动服务器

如何手动同步本地 GIS 服务器用户 - 导入和导出 Linux/Solaris 上的本地 GIS 服务器用户

本地用户还可以通过一个由外壳脚本驱动的工具来同步,此脚本称为“import_export_users.sh”,位于 <ArcGIS Server 安装目录>/server10.0/scripts。可通过该脚本将本地 GIS 服务器用户导出到文本文件。然后,文本文件中的这些用户可利用同一工具导入到 Linux 或 Solaris 平台的 ArcGIS Server 的任何实例中。该工具仅用于 SOM 安装。然后,该文本文件中列出的用户可导入能使用这些工具的 ArcGIS Server for the Java Platform 的任何部署中。

也可以利用此功能保持本地 GIS 服务器用户的备份,或在服务器的多个实例之间复制用户信息。

如何导入和导出 Linux/Solaris 上的本地 GIS 服务器用户

可运行脚本“<ArcGIS Server 安装目录>/server10.0/scripts/import_export_users.sh”。如果在不使用任何输入参数的情况下运行此脚本,那么此脚本将打印工具的用法。

# ./import_export_users.sh
NAME 
   import_export_users.sh
SYNOPSIS
   ./import_export_users.sh [OPTION] FILENAME 
DESCRIPTION
   This utility is for exporting ArcGIS Server users to a file importing users into ArcGIS Server.
   -i
      import users from a file specified by FILENAME into ArcGIS Server
   -e
      export ArcGIS Servers users to a file specified by FILENAME
   -f
      overwrite user(s) if exist during import.
      This option can only be used with the import option.
   -w
      import users exported from Windows platform specified by FILENAME
      This option can only be used with the import option.
   -n
      no logging
   -o NEW_LOGFILE_PATH
      path to a directory in which the log file will be written (by default the utility will log results
      in /<ARCGISHOME>/server/user/log/import_export.log)

导出本地 GIS 服务器用户

可使用 -e 选项导出 ArcGIS Server 用户,此选项之后应附带含有用户的文件的名称。工具的输出汇总了导出结果。可检查提到的日志文件,以了解有关成功导出了哪些用户以及是否存在错误的详细信息。可通过 -n 选项关闭记录。默认情况下,日志位于 <ArcGIS Server 安装目录>/server10.0/server/user/log。不过可通过 -o 选项更改目录路径。

示例:

[user@machine <ArcGIS Server Installation directory>/server10.0/scripts]# 
./import_export_users.sh -e /tmp/users.dat
EXPORT SUMMARY
-------------------
5 users exported successfully.
Check log file for detailed information at /server/user/log/import_export_Sat_Sep_29_13-24-53_2007.log

[user@machine <ArcGIS Server 安装目录>/server10.0/scripts]# ./import_export_users.sh -e /tmp/users.dat

导入本地 GIS 服务器用户

由 Linux 或 Solaris 上的 ArcGIS Server 导出的用户可使用 -i 选项导入,此选项之后附带含有这些用户的文件的名称。工具的输出汇总了导入结果。可检查提到的日志文件,以了解有关成功导入了哪些用户以及是否存在错误的详细信息。可通过 -n 选项关闭记录。默认情况下,日志位于 <ArcGIS Server 安装目录>/server10.0/server/user/log。不过可通过 -o 选项更改目录路径。

示例:

[user@machine <ArcGIS Server Installation directory>/server10.0scripts]# 
./import_export_users.sh -i /tmp/users.dat
IMPORT SUMMARY
---------------------------
5 users imported successfully.
Check log file for detailed information at /server/user/log/import_export_Sat_Sep_29_13-24-53_2007.log


3/7/2012